summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrollsafe <rollsafe@users.noreply.github.com>2019-06-11 20:21:29 -0400
committerrollsafe <rollsafe@users.noreply.github.com>2019-06-13 17:49:44 -0400
commitde3add71f81a45a587deb470519e0dc8c2acffcc (patch)
treefab3b941e2637842b86cb2c2f3e733a38cf91789
parent1f885d1482d0d4e91f84c6d171672bf0d545923e (diff)
Add notification callbacks for when data-only metadata is updated
-rw-r--r--binaryninjaapi.h2
-rw-r--r--binaryninjacore.h1
-rw-r--r--binaryview.cpp9
-rw-r--r--ui/flowgraphwidget.h1
-rw-r--r--ui/linearview.h1
-rw-r--r--ui/tokenizedtextview.h1
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;