From 71a11edd4f4bf05b35d9d845bf313f109f3db0be Mon Sep 17 00:00:00 2001 From: Peter LaFosse Date: Fri, 19 Jul 2019 14:42:35 -0400 Subject: Add BinaryDataNotifications for Symbols --- binaryview.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'binaryview.cpp') diff --git a/binaryview.cpp b/binaryview.cpp index 97f4a542..7806c656 100644 --- a/binaryview.cpp +++ b/binaryview.cpp @@ -122,6 +122,33 @@ void BinaryDataNotification::DataMetadataUpdatedCallback(void* ctxt, BNBinaryVie } +void BinaryDataNotification::SymbolAddedCallback(void* ctxt, BNBinaryView* object, BNSymbol* symobj) +{ + BinaryDataNotification* notify = (BinaryDataNotification*)ctxt; + Ref view = new BinaryView(BNNewViewReference(object)); + Ref sym = new Symbol(BNNewSymbolReference(symobj)); + notify->OnSymbolAdded(view, sym); +} + + +void BinaryDataNotification::SymbolUpdatedCallback(void* ctxt, BNBinaryView* object, BNSymbol* symobj) +{ + BinaryDataNotification* notify = (BinaryDataNotification*)ctxt; + Ref view = new BinaryView(BNNewViewReference(object)); + Ref sym = new Symbol(BNNewSymbolReference(symobj)); + notify->OnSymbolUpdated(view, sym); +} + + +void BinaryDataNotification::SymbolRemovedCallback(void* ctxt, BNBinaryView* object, BNSymbol* symobj) +{ + BinaryDataNotification* notify = (BinaryDataNotification*)ctxt; + Ref view = new BinaryView(BNNewViewReference(object)); + Ref sym = new Symbol(BNNewSymbolReference(symobj)); + notify->OnSymbolRemoved(view, sym); +} + + void BinaryDataNotification::StringFoundCallback(void* ctxt, BNBinaryView* object, BNStringType type, uint64_t offset, size_t len) { BinaryDataNotification* notify = (BinaryDataNotification*)ctxt; @@ -170,6 +197,9 @@ BinaryDataNotification::BinaryDataNotification() m_callbacks.dataVariableRemoved = DataVariableRemovedCallback; m_callbacks.dataVariableUpdated = DataVariableUpdatedCallback; m_callbacks.dataMetadataUpdated = DataMetadataUpdatedCallback; + m_callbacks.symbolAdded = SymbolAddedCallback; + m_callbacks.symbolUpdated = SymbolUpdatedCallback; + m_callbacks.symbolRemoved = SymbolRemovedCallback; m_callbacks.stringFound = StringFoundCallback; m_callbacks.stringRemoved = StringRemovedCallback; m_callbacks.typeDefined = TypeDefinedCallback; -- cgit v1.3.1