diff options
| author | rollsafe <rollsafe@users.noreply.github.com> | 2019-06-11 20:21:29 -0400 |
|---|---|---|
| committer | rollsafe <rollsafe@users.noreply.github.com> | 2019-06-13 17:49:44 -0400 |
| commit | de3add71f81a45a587deb470519e0dc8c2acffcc (patch) | |
| tree | fab3b941e2637842b86cb2c2f3e733a38cf91789 | |
| parent | 1f885d1482d0d4e91f84c6d171672bf0d545923e (diff) | |
Add notification callbacks for when data-only metadata is updated
| -rw-r--r-- | binaryninjaapi.h | 2 | ||||
| -rw-r--r-- | binaryninjacore.h | 1 | ||||
| -rw-r--r-- | binaryview.cpp | 9 | ||||
| -rw-r--r-- | ui/flowgraphwidget.h | 1 | ||||
| -rw-r--r-- | ui/linearview.h | 1 | ||||
| -rw-r--r-- | ui/tokenizedtextview.h | 1 |
6 files changed, 15 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h index 096f089d..258d1d8a 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -893,6 +893,7 @@ namespace BinaryNinja static void DataVariableAddedCallback(void* ctxt, BNBinaryView* data, BNDataVariable* var); static void DataVariableRemovedCallback(void* ctxt, BNBinaryView* data, BNDataVariable* var); static void DataVariableUpdatedCallback(void* ctxt, BNBinaryView* data, BNDataVariable* var); + static void DataMetadataUpdatedCallback(void* ctxt, BNBinaryView* object, uint64_t offset); static void StringFoundCallback(void* ctxt, BNBinaryView* data, BNStringType type, uint64_t offset, size_t len); static void StringRemovedCallback(void* ctxt, BNBinaryView* data, BNStringType type, uint64_t offset, size_t len); static void TypeDefinedCallback(void* ctxt, BNBinaryView* data, BNQualifiedName* name, BNType* type); @@ -914,6 +915,7 @@ namespace BinaryNinja virtual void OnDataVariableAdded(BinaryView* view, const DataVariable& var) { (void)view; (void)var; } virtual void OnDataVariableRemoved(BinaryView* view, const DataVariable& var) { (void)view; (void)var; } virtual void OnDataVariableUpdated(BinaryView* view, const DataVariable& var) { (void)view; (void)var; } + virtual void OnDataMetadataUpdated(BinaryView* view, uint64_t offset) { (void)view; (void)offset; } virtual void OnStringFound(BinaryView* data, BNStringType type, uint64_t offset, size_t len) { (void)data; (void)type; (void)offset; (void)len; } virtual void OnStringRemoved(BinaryView* data, BNStringType type, uint64_t offset, size_t len) { (void)data; (void)type; (void)offset; (void)len; } virtual void OnTypeDefined(BinaryView* data, const QualifiedName& name, Type* type) { (void)data; (void)name; (void)type; } diff --git a/binaryninjacore.h b/binaryninjacore.h index 903ea473..c4b90f7e 100644 --- a/binaryninjacore.h +++ b/binaryninjacore.h @@ -1064,6 +1064,7 @@ extern "C" void (*dataVariableAdded)(void* ctxt, BNBinaryView* view, BNDataVariable* var); void (*dataVariableRemoved)(void* ctxt, BNBinaryView* view, BNDataVariable* var); void (*dataVariableUpdated)(void* ctxt, BNBinaryView* view, BNDataVariable* var); + void (*dataMetadataUpdated)(void* ctxt, BNBinaryView* view, uint64_t offset); void (*stringFound)(void* ctxt, BNBinaryView* view, BNStringType type, uint64_t offset, size_t len); void (*stringRemoved)(void* ctxt, BNBinaryView* view, BNStringType type, uint64_t offset, size_t len); void (*typeDefined)(void* ctxt, BNBinaryView* view, BNQualifiedName* name, BNType* type); diff --git a/binaryview.cpp b/binaryview.cpp index f95bf2fd..7fcf8253 100644 --- a/binaryview.cpp +++ b/binaryview.cpp @@ -114,6 +114,14 @@ void BinaryDataNotification::DataVariableUpdatedCallback(void* ctxt, BNBinaryVie } +void BinaryDataNotification::DataMetadataUpdatedCallback(void* ctxt, BNBinaryView* object, uint64_t offset) +{ + BinaryDataNotification* notify = (BinaryDataNotification*)ctxt; + Ref<BinaryView> view = new BinaryView(BNNewViewReference(object)); + notify->OnDataMetadataUpdated(view, offset); +} + + void BinaryDataNotification::StringFoundCallback(void* ctxt, BNBinaryView* object, BNStringType type, uint64_t offset, size_t len) { BinaryDataNotification* notify = (BinaryDataNotification*)ctxt; @@ -161,6 +169,7 @@ BinaryDataNotification::BinaryDataNotification() m_callbacks.dataVariableAdded = DataVariableAddedCallback; m_callbacks.dataVariableRemoved = DataVariableRemovedCallback; m_callbacks.dataVariableUpdated = DataVariableUpdatedCallback; + m_callbacks.dataMetadataUpdated = DataMetadataUpdatedCallback; m_callbacks.stringFound = StringFoundCallback; m_callbacks.stringRemoved = StringRemovedCallback; m_callbacks.typeDefined = TypeDefinedCallback; diff --git a/ui/flowgraphwidget.h b/ui/flowgraphwidget.h index bc755025..baf93829 100644 --- a/ui/flowgraphwidget.h +++ b/ui/flowgraphwidget.h @@ -181,6 +181,7 @@ public: virtual void OnAnalysisFunctionUpdated(BinaryNinja::BinaryView* data, BinaryNinja::Function* func) override; virtual void OnAnalysisFunctionUpdateRequested(BinaryNinja::BinaryView* data, BinaryNinja::Function* func) override; + virtual void OnDataMetadataUpdated(BinaryNinja::BinaryView* data, uint64_t offset) override; void setInitialGraph(FlowGraphRef graph); void setInitialGraph(FlowGraphRef graph, uint64_t addr); diff --git a/ui/linearview.h b/ui/linearview.h index 5e550319..85586ca8 100644 --- a/ui/linearview.h +++ b/ui/linearview.h @@ -205,6 +205,7 @@ public: virtual void OnDataVariableAdded(BinaryNinja::BinaryView* view, const BinaryNinja::DataVariable& var) override; virtual void OnDataVariableRemoved(BinaryNinja::BinaryView* view, const BinaryNinja::DataVariable& var) override; virtual void OnDataVariableUpdated(BinaryNinja::BinaryView* view, const BinaryNinja::DataVariable& var) override; + virtual void OnDataMetadataUpdated(BinaryNinja::BinaryView* view, uint64_t offset) override; virtual void updateFonts() override; diff --git a/ui/tokenizedtextview.h b/ui/tokenizedtextview.h index 2a64d971..e54b5842 100644 --- a/ui/tokenizedtextview.h +++ b/ui/tokenizedtextview.h @@ -136,6 +136,7 @@ public: virtual void OnDataVariableAdded(BinaryNinja::BinaryView* view, const BinaryNinja::DataVariable& var) override; virtual void OnDataVariableRemoved(BinaryNinja::BinaryView* view, const BinaryNinja::DataVariable& var) override; virtual void OnDataVariableUpdated(BinaryNinja::BinaryView* view, const BinaryNinja::DataVariable& var) override; + virtual void OnDataMetadataUpdated(BinaryNinja::BinaryView* view, uint64_t offset) override; virtual void updateFonts() override; |
