summaryrefslogtreecommitdiff
path: root/binaryview.cpp
diff options
context:
space:
mode:
authorRusty Wagner <dontpanic@binaryninja.com>2015-03-21 20:46:38 -0400
committerRusty Wagner <dontpanic@binaryninja.com>2015-03-21 20:46:38 -0400
commita8eb816d382a138c8ea4b535dcf104590424095f (patch)
tree5d3ff3a260cb2ca931acc57ee6a25993b3e6a36d /binaryview.cpp
parentc85cae0d74c2c32b23f5e1422f230bebd61f1b1e (diff)
Auto update graph when file contents change
Diffstat (limited to 'binaryview.cpp')
-rw-r--r--binaryview.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/binaryview.cpp b/binaryview.cpp
index a965d67c..8d75e7a7 100644
--- a/binaryview.cpp
+++ b/binaryview.cpp
@@ -46,6 +46,15 @@ void BinaryDataNotification::FunctionRemovedCallback(void* ctxt, BNBinaryView* o
}
+void BinaryDataNotification::FunctionUpdatedCallback(void* ctxt, BNBinaryView* object, BNFunction* func)
+{
+ BinaryDataNotification* notify = (BinaryDataNotification*)ctxt;
+ Ref<BinaryView> view = new BinaryView(BNNewViewReference(object));
+ Ref<Function> funcObj = new Function(BNNewFunctionReference(func));
+ notify->OnAnalysisFunctionUpdated(view, funcObj);
+}
+
+
BinaryDataNotification::BinaryDataNotification()
{
m_callbacks.context = this;
@@ -54,6 +63,7 @@ BinaryDataNotification::BinaryDataNotification()
m_callbacks.dataRemoved = DataRemovedCallback;
m_callbacks.functionAdded = FunctionAddedCallback;
m_callbacks.functionRemoved = FunctionRemovedCallback;
+ m_callbacks.functionUpdated = FunctionUpdatedCallback;
}
@@ -238,6 +248,24 @@ bool BinaryView::PerformIsValidOffset(uint64_t offset)
}
+void BinaryView::NotifyDataWritten(uint64_t offset, size_t len)
+{
+ BNNotifyDataWritten(m_view, offset, len);
+}
+
+
+void BinaryView::NotifyDataInserted(uint64_t offset, size_t len)
+{
+ BNNotifyDataInserted(m_view, offset, len);
+}
+
+
+void BinaryView::NotifyDataRemoved(uint64_t offset, uint64_t len)
+{
+ BNNotifyDataRemoved(m_view, offset, len);
+}
+
+
bool BinaryView::IsModified() const
{
return BNIsViewModified(m_view);