diff options
| author | Rusty Wagner <rusty@vector35.com> | 2018-03-07 18:10:55 -0500 |
|---|---|---|
| committer | Rusty Wagner <rusty@vector35.com> | 2018-03-07 18:11:24 -0500 |
| commit | 1c7349fcf125994f2e577361626fe1fb02eac029 (patch) | |
| tree | 9855e97a3572c41af9f07f27e6b12eb1f117bf5d /binaryview.cpp | |
| parent | 352949f41ea0b66c833f272d2a2a1e5a77a9507c (diff) | |
Add APIs for skipping analysis of functions that are too large, and overriding this behavior
Diffstat (limited to 'binaryview.cpp')
| -rw-r--r-- | binaryview.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/binaryview.cpp b/binaryview.cpp index 96fd161d..0dcf6bc3 100644 --- a/binaryview.cpp +++ b/binaryview.cpp @@ -78,6 +78,15 @@ void BinaryDataNotification::FunctionUpdatedCallback(void* ctxt, BNBinaryView* o } +void BinaryDataNotification::FunctionUpdateRequestedCallback(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->OnAnalysisFunctionUpdateRequested(view, funcObj); +} + + void BinaryDataNotification::DataVariableAddedCallback(void* ctxt, BNBinaryView* object, BNDataVariable* var) { BinaryDataNotification* notify = (BinaryDataNotification*)ctxt; @@ -148,6 +157,7 @@ BinaryDataNotification::BinaryDataNotification() m_callbacks.functionAdded = FunctionAddedCallback; m_callbacks.functionRemoved = FunctionRemovedCallback; m_callbacks.functionUpdated = FunctionUpdatedCallback; + m_callbacks.functionUpdateRequested = FunctionUpdateRequestedCallback; m_callbacks.dataVariableAdded = DataVariableAddedCallback; m_callbacks.dataVariableRemoved = DataVariableRemovedCallback; m_callbacks.dataVariableUpdated = DataVariableUpdatedCallback; @@ -1949,6 +1959,19 @@ uint64_t BinaryView::GetUIntMetadata(const string& key) return data->GetUnsignedInteger(); } + +uint64_t BinaryView::GetMaxFunctionSizeForAnalysis() +{ + return BNGetMaxFunctionSizeForAnalysis(m_object); +} + + +void BinaryView::SetMaxFunctionSizeForAnalysis(uint64_t size) +{ + BNSetMaxFunctionSizeForAnalysis(m_object, size); +} + + BinaryData::BinaryData(FileMetadata* file): BinaryView(BNCreateBinaryDataView(file->GetObject())) { } |
