diff options
| -rw-r--r-- | binaryninjaapi.h | 24 | ||||
| -rw-r--r-- | binaryninjacore.h | 20 | ||||
| -rw-r--r-- | binaryview.cpp | 4 | ||||
| -rw-r--r-- | database.cpp | 16 | ||||
| -rw-r--r-- | filemetadata.cpp | 20 | ||||
| -rw-r--r-- | python/binaryview.py | 2 | ||||
| -rw-r--r-- | python/filemetadata.py | 10 | ||||
| -rw-r--r-- | rust/src/filemetadata.rs | 2 |
8 files changed, 49 insertions, 49 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h index 62d5d839..b33f49f8 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -918,9 +918,9 @@ __attribute__ ((format (printf, 1, 2))) DataBuffer GetFileContents(); DataBuffer GetFileContentsHash(); std::vector<UndoEntry> GetUndoEntries(); - std::vector<UndoEntry> GetUndoEntries(const std::function<void(size_t, size_t)>& progress); + std::vector<UndoEntry> GetUndoEntries(const std::function<bool(size_t, size_t)>& progress); Ref<KeyValueStore> ReadData(); - Ref<KeyValueStore> ReadData(const std::function<void(size_t, size_t)>& progress); + Ref<KeyValueStore> ReadData(const std::function<bool(size_t, size_t)>& progress); bool HasAncestor(Ref<Snapshot> other); }; @@ -935,7 +935,7 @@ __attribute__ ((format (printf, 1, 2))) std::vector<Ref<Snapshot>> GetSnapshots(); void SetCurrentSnapshot(int64_t id); Ref<Snapshot> GetCurrentSnapshot(); - int64_t WriteSnapshotData(std::vector<int64_t> parents, Ref<BinaryView> file, const std::string& name, const Ref<KeyValueStore>& data, bool autoSave, const std::function<void(size_t, size_t)>& progress); + int64_t WriteSnapshotData(std::vector<int64_t> parents, Ref<BinaryView> file, const std::string& name, const Ref<KeyValueStore>& data, bool autoSave, const std::function<bool(size_t, size_t)>& progress); void RemoveSnapshot(int64_t id); std::vector<std::string> GetGlobalKeys() const; @@ -1016,24 +1016,24 @@ __attribute__ ((format (printf, 1, 2))) bool IsBackedByDatabase(const std::string& binaryViewType = "") const; bool CreateDatabase(const std::string& name, BinaryView* data, Ref<SaveSettings> settings); bool CreateDatabase(const std::string& name, BinaryView* data, - const std::function<void(size_t progress, size_t total)>& progressCallback, Ref<SaveSettings> settings); + const std::function<bool(size_t progress, size_t total)>& progressCallback, Ref<SaveSettings> settings); Ref<BinaryView> OpenExistingDatabase(const std::string& path); Ref<BinaryView> OpenExistingDatabase(const std::string& path, - const std::function<void(size_t progress, size_t total)>& progressCallback); + const std::function<bool(size_t progress, size_t total)>& progressCallback); Ref<BinaryView> OpenDatabaseForConfiguration(const std::string& path); bool SaveAutoSnapshot(BinaryView* data, Ref<SaveSettings> settings); bool SaveAutoSnapshot(BinaryView* data, - const std::function<void(size_t progress, size_t total)>& progressCallback, Ref<SaveSettings> settings); + const std::function<bool(size_t progress, size_t total)>& progressCallback, Ref<SaveSettings> settings); void GetSnapshotData(Ref<KeyValueStore> data, Ref<KeyValueStore> cache, - const std::function<void(size_t, size_t)>& progress); + const std::function<bool(size_t, size_t)>& progress); void ApplySnapshotData(BinaryView* file, Ref<KeyValueStore> data, Ref<KeyValueStore> cache, - const std::function<void(size_t, size_t)>& progress, bool openForConfiguration = false, bool restoreRawView = true); + const std::function<bool(size_t, size_t)>& progress, bool openForConfiguration = false, bool restoreRawView = true); Ref<Database> GetDatabase(); bool Rebase(BinaryView* data, uint64_t address); - bool Rebase(BinaryView* data, uint64_t address, const std::function<void(size_t progress, size_t total)>& progressCallback); + bool Rebase(BinaryView* data, uint64_t address, const std::function<bool(size_t progress, size_t total)>& progressCallback); - MergeResult MergeUserAnalysis(const std::string& name, const std::function<void(size_t, size_t)>& progress, + MergeResult MergeUserAnalysis(const std::string& name, const std::function<bool(size_t, size_t)>& progress, const std::vector<std::string> excludedHashes = {} ); void BeginUndoActions(); @@ -1662,9 +1662,9 @@ __attribute__ ((format (printf, 1, 2))) bool IsAnalysisChanged() const; bool CreateDatabase(const std::string& path, Ref<SaveSettings> settings = new SaveSettings()); bool CreateDatabase(const std::string& path, - const std::function<void(size_t progress, size_t total)>& progressCallback, Ref<SaveSettings> settings = new SaveSettings()); + const std::function<bool(size_t progress, size_t total)>& progressCallback, Ref<SaveSettings> settings = new SaveSettings()); bool SaveAutoSnapshot(Ref<SaveSettings> settings = new SaveSettings()); - bool SaveAutoSnapshot(const std::function<void(size_t progress, size_t total)>& progressCallback, Ref<SaveSettings> settings = new SaveSettings()); + bool SaveAutoSnapshot(const std::function<bool(size_t progress, size_t total)>& progressCallback, Ref<SaveSettings> settings = new SaveSettings()); void BeginUndoActions(); void AddUndoAction(UndoAction* action); diff --git a/binaryninjacore.h b/binaryninjacore.h index c45729a0..f1505ad1 100644 --- a/binaryninjacore.h +++ b/binaryninjacore.h @@ -2849,16 +2849,16 @@ __attribute__ ((format (printf, 1, 2))) BINARYNINJACOREAPI bool BNCreateDatabase(BNBinaryView* data, const char* path, BNSaveSettings* settings); BINARYNINJACOREAPI bool BNCreateDatabaseWithProgress(BNBinaryView* data, const char* path, - void* ctxt, void (*progress)(void* ctxt, size_t progress, size_t total), BNSaveSettings* settings); + void* ctxt, bool (*progress)(void* ctxt, size_t progress, size_t total), BNSaveSettings* settings); BINARYNINJACOREAPI BNBinaryView* BNOpenExistingDatabase(BNFileMetadata* file, const char* path); BINARYNINJACOREAPI BNBinaryView* BNOpenExistingDatabaseWithProgress(BNFileMetadata* file, const char* path, - void* ctxt, void (*progress)(void* ctxt, size_t progress, size_t total)); + void* ctxt, bool (*progress)(void* ctxt, size_t progress, size_t total)); BINARYNINJACOREAPI BNBinaryView* BNOpenDatabaseForConfiguration(BNFileMetadata* file, const char* path); BINARYNINJACOREAPI bool BNSaveAutoSnapshot(BNBinaryView* data, BNSaveSettings* settings); BINARYNINJACOREAPI bool BNSaveAutoSnapshotWithProgress(BNBinaryView* data, void* ctxt, - void (*progress)(void* ctxt, size_t progress, size_t total), BNSaveSettings* settings); - BINARYNINJACOREAPI void BNGetSnapshotData(BNFileMetadata* file, BNKeyValueStore* data, BNKeyValueStore* cache, void* ctxt, void (*progress)(void* ctxt, size_t current, size_t total)); - BINARYNINJACOREAPI void BNApplySnapshotData(BNFileMetadata* file, BNBinaryView* view, BNKeyValueStore* data, BNKeyValueStore* cache, void* ctxt, void (*progress)(void* ctxt, size_t current, size_t total), bool openForConfiguration, bool restoreRawView); + bool (*progress)(void* ctxt, size_t progress, size_t total), BNSaveSettings* settings); + BINARYNINJACOREAPI void BNGetSnapshotData(BNFileMetadata* file, BNKeyValueStore* data, BNKeyValueStore* cache, void* ctxt, bool (*progress)(void* ctxt, size_t current, size_t total)); + BINARYNINJACOREAPI void BNApplySnapshotData(BNFileMetadata* file, BNBinaryView* view, BNKeyValueStore* data, BNKeyValueStore* cache, void* ctxt, bool (*progress)(void* ctxt, size_t current, size_t total), bool openForConfiguration, bool restoreRawView); BINARYNINJACOREAPI BNDatabase* BNGetFileMetadataDatabase(BNFileMetadata* file); // Key value store @@ -2889,7 +2889,7 @@ __attribute__ ((format (printf, 1, 2))) BINARYNINJACOREAPI BNSnapshot* BNGetDatabaseCurrentSnapshot(BNDatabase* database); BINARYNINJACOREAPI BNSnapshot** BNGetDatabaseSnapshots(BNDatabase* database, size_t* count); BINARYNINJACOREAPI BNSnapshot* BNGetDatabaseSnapshot(BNDatabase* database, int64_t id); - BINARYNINJACOREAPI int64_t BNWriteDatabaseSnapshotData(BNDatabase* database, int64_t* parents, size_t parentCount, BNBinaryView* file, const char* name, BNKeyValueStore* data, bool autoSave, void* ctxt, void(*progress)(void*, size_t, size_t)); + BINARYNINJACOREAPI int64_t BNWriteDatabaseSnapshotData(BNDatabase* database, int64_t* parents, size_t parentCount, BNBinaryView* file, const char* name, BNKeyValueStore* data, bool autoSave, void* ctxt, bool(*progress)(void*, size_t, size_t)); BINARYNINJACOREAPI bool BNRemoveDatabaseSnapshot(BNDatabase* database, int64_t id); BINARYNINJACOREAPI char** BNGetDatabaseGlobalKeys(BNDatabase* database, size_t* count); BINARYNINJACOREAPI int BNDatabaseHasGlobal(BNDatabase* database, const char* key); @@ -2915,16 +2915,16 @@ __attribute__ ((format (printf, 1, 2))) BINARYNINJACOREAPI BNDataBuffer* BNGetSnapshotFileContents(BNSnapshot* snapshot); BINARYNINJACOREAPI BNDataBuffer* BNGetSnapshotFileContentsHash(BNSnapshot* snapshot); BINARYNINJACOREAPI BNKeyValueStore* BNReadSnapshotData(BNSnapshot* snapshot); - BINARYNINJACOREAPI BNKeyValueStore* BNReadSnapshotDataWithProgress(BNSnapshot* snapshot, void* ctxt, void (*progress)(void* ctxt, size_t progress, size_t total)); + BINARYNINJACOREAPI BNKeyValueStore* BNReadSnapshotDataWithProgress(BNSnapshot* snapshot, void* ctxt, bool (*progress)(void* ctxt, size_t progress, size_t total)); BINARYNINJACOREAPI BNUndoEntry* BNGetSnapshotUndoEntries(BNSnapshot* snapshot, size_t* count); - BINARYNINJACOREAPI BNUndoEntry* BNGetSnapshotUndoEntriesWithProgress(BNSnapshot* snapshot, void* ctxt, void (*progress)(void* ctxt, size_t progress, size_t total), size_t* count); + BINARYNINJACOREAPI BNUndoEntry* BNGetSnapshotUndoEntriesWithProgress(BNSnapshot* snapshot, void* ctxt, bool (*progress)(void* ctxt, size_t progress, size_t total), size_t* count); BINARYNINJACOREAPI bool BNSnapshotHasAncestor(BNSnapshot* snapshot, BNSnapshot* other); BINARYNINJACOREAPI bool BNRebase(BNBinaryView* data, uint64_t address); - BINARYNINJACOREAPI bool BNRebaseWithProgress(BNBinaryView* data, uint64_t address, void* ctxt, void (*progress)(void* ctxt, size_t progress, size_t total)); + BINARYNINJACOREAPI bool BNRebaseWithProgress(BNBinaryView* data, uint64_t address, void* ctxt, bool (*progress)(void* ctxt, size_t progress, size_t total)); - BINARYNINJACOREAPI BNMergeResult BNMergeUserAnalysis(BNFileMetadata* file, const char* name, void* ctxt, void (*progress)(void* ctxt, size_t progress, size_t total), + BINARYNINJACOREAPI BNMergeResult BNMergeUserAnalysis(BNFileMetadata* file, const char* name, void* ctxt, bool (*progress)(void* ctxt, size_t progress, size_t total), char** excludedHashes, size_t excludedHashesCount); BINARYNINJACOREAPI char* BNGetOriginalFilename(BNFileMetadata* file); diff --git a/binaryview.cpp b/binaryview.cpp index 46902073..5ab24694 100644 --- a/binaryview.cpp +++ b/binaryview.cpp @@ -1156,7 +1156,7 @@ bool BinaryView::CreateDatabase(const string& path, Ref<SaveSettings> settings) bool BinaryView::CreateDatabase(const string& path, - const function<void(size_t progress, size_t total)>& progressCallback, Ref<SaveSettings> settings) + const function<bool(size_t progress, size_t total)>& progressCallback, Ref<SaveSettings> settings) { auto parent = GetParentView(); if (parent) @@ -1171,7 +1171,7 @@ bool BinaryView::SaveAutoSnapshot(Ref<SaveSettings> settings) } -bool BinaryView::SaveAutoSnapshot(const function<void(size_t progress, size_t total)>& progressCallback, Ref<SaveSettings> settings) +bool BinaryView::SaveAutoSnapshot(const function<bool(size_t progress, size_t total)>& progressCallback, Ref<SaveSettings> settings) { return m_file->SaveAutoSnapshot(this, progressCallback, settings); } diff --git a/database.cpp b/database.cpp index ee7dd289..90adb8c7 100644 --- a/database.cpp +++ b/database.cpp @@ -27,14 +27,14 @@ using namespace std; struct ProgressContext { - std::function<void(size_t, size_t)> callback; + std::function<bool(size_t, size_t)> callback; }; -void ProgressCallback(void* ctxt, size_t current, size_t total) +bool ProgressCallback(void* ctxt, size_t current, size_t total) { ProgressContext* pctxt = reinterpret_cast<ProgressContext*>(ctxt); - pctxt->callback(current, total); + return pctxt->callback(current, total); } @@ -274,11 +274,11 @@ DataBuffer Snapshot::GetFileContentsHash() vector<UndoEntry> Snapshot::GetUndoEntries() { - return GetUndoEntries([](size_t, size_t){}); + return GetUndoEntries([](size_t, size_t){ return true; }); } -vector<UndoEntry> Snapshot::GetUndoEntries(const std::function<void(size_t, size_t)>& progress) +vector<UndoEntry> Snapshot::GetUndoEntries(const std::function<bool(size_t, size_t)>& progress) { ProgressContext pctxt; pctxt.callback = progress; @@ -313,11 +313,11 @@ vector<UndoEntry> Snapshot::GetUndoEntries(const std::function<void(size_t, size Ref<KeyValueStore> Snapshot::ReadData() { - return ReadData([](size_t, size_t){}); + return ReadData([](size_t, size_t){ return true; }); } -Ref<KeyValueStore> Snapshot::ReadData(const std::function<void(size_t, size_t)>& progress) +Ref<KeyValueStore> Snapshot::ReadData(const std::function<bool(size_t, size_t)>& progress) { ProgressContext pctxt; pctxt.callback = progress; @@ -377,7 +377,7 @@ Ref<Snapshot> Database::GetCurrentSnapshot() } -int64_t Database::WriteSnapshotData(std::vector<int64_t> parents, Ref<BinaryView> file, const std::string& name, const Ref<KeyValueStore>& data, bool autoSave, const std::function<void(size_t, size_t)>& progress) +int64_t Database::WriteSnapshotData(std::vector<int64_t> parents, Ref<BinaryView> file, const std::string& name, const Ref<KeyValueStore>& data, bool autoSave, const std::function<bool(size_t, size_t)>& progress) { ProgressContext pctxt; pctxt.callback = progress; diff --git a/filemetadata.cpp b/filemetadata.cpp index a7e2b78f..540151c7 100644 --- a/filemetadata.cpp +++ b/filemetadata.cpp @@ -27,14 +27,14 @@ using namespace std; struct DatabaseProgressCallbackContext { - std::function<void(size_t, size_t)> func; + std::function<bool(size_t, size_t)> func; }; -static void DatabaseProgressCallback(void* ctxt, size_t progress, size_t total) +static bool DatabaseProgressCallback(void* ctxt, size_t progress, size_t total) { DatabaseProgressCallbackContext* cb = (DatabaseProgressCallbackContext*)ctxt; - cb->func(progress, total); + return cb->func(progress, total); } @@ -170,7 +170,7 @@ bool FileMetadata::CreateDatabase(const string& name, BinaryView* data, Ref<Save bool FileMetadata::CreateDatabase(const string& name, BinaryView* data, - const function<void(size_t progress, size_t total)>& progressCallback, Ref<SaveSettings> settings) + const function<bool(size_t progress, size_t total)>& progressCallback, Ref<SaveSettings> settings) { DatabaseProgressCallbackContext cb; cb.func = progressCallback; @@ -188,7 +188,7 @@ Ref<BinaryView> FileMetadata::OpenExistingDatabase(const string& path) Ref<BinaryView> FileMetadata::OpenExistingDatabase(const string& path, - const function<void(size_t progress, size_t total)>& progressCallback) + const function<bool(size_t progress, size_t total)>& progressCallback) { DatabaseProgressCallbackContext cb; cb.func = progressCallback; @@ -215,7 +215,7 @@ bool FileMetadata::SaveAutoSnapshot(BinaryView* data, Ref<SaveSettings> settings bool FileMetadata::SaveAutoSnapshot(BinaryView* data, - const function<void(size_t progress, size_t total)>& progressCallback, Ref<SaveSettings> settings) + const function<bool(size_t progress, size_t total)>& progressCallback, Ref<SaveSettings> settings) { DatabaseProgressCallbackContext cb; cb.func = progressCallback; @@ -224,7 +224,7 @@ bool FileMetadata::SaveAutoSnapshot(BinaryView* data, void FileMetadata::GetSnapshotData(Ref<KeyValueStore> data, Ref<KeyValueStore> cache, - const std::function<void(size_t, size_t)>& progress) + const std::function<bool(size_t, size_t)>& progress) { DatabaseProgressCallbackContext cb; cb.func = progress; @@ -233,7 +233,7 @@ void FileMetadata::GetSnapshotData(Ref<KeyValueStore> data, Ref<KeyValueStore> c void FileMetadata::ApplySnapshotData(BinaryView* file, Ref<KeyValueStore> data, Ref<KeyValueStore> cache, - const std::function<void(size_t, size_t)>& progress, bool openForConfiguration, bool restoreRawView) + const std::function<bool(size_t, size_t)>& progress, bool openForConfiguration, bool restoreRawView) { DatabaseProgressCallbackContext cb; cb.func = progress; @@ -256,7 +256,7 @@ bool FileMetadata::Rebase(BinaryView* data, uint64_t address) } -bool FileMetadata::Rebase(BinaryView* data, uint64_t address, const function<void(size_t progress, size_t total)>& progressCallback) +bool FileMetadata::Rebase(BinaryView* data, uint64_t address, const function<bool(size_t progress, size_t total)>& progressCallback) { DatabaseProgressCallbackContext cb; cb.func = progressCallback; @@ -264,7 +264,7 @@ bool FileMetadata::Rebase(BinaryView* data, uint64_t address, const function<voi } -MergeResult FileMetadata::MergeUserAnalysis(const std::string& name, const std::function<void(size_t, size_t)>& progress, std::vector<string> excludedHashes) +MergeResult FileMetadata::MergeUserAnalysis(const std::string& name, const std::function<bool(size_t, size_t)>& progress, std::vector<string> excludedHashes) { size_t numHashes = excludedHashes.size(); char** tempList = new char*[numHashes]; diff --git a/python/binaryview.py b/python/binaryview.py index 03b1f9e7..b02f5d1a 100644 --- a/python/binaryview.py +++ b/python/binaryview.py @@ -6757,7 +6757,7 @@ class BinaryView: if progress_func is None: result = core.BNRebase(self.handle, address) else: - result = core.BNRebaseWithProgress(self.handle, address, None, ctypes.CFUNCTYPE(None, ctypes.c_void_p, ctypes.c_ulonglong, ctypes.c_ulonglong)( + result = core.BNRebaseWithProgress(self.handle, address, None, ctypes.CFUNCTYPE(ctypes.c_bool, ctypes.c_void_p, ctypes.c_ulonglong, ctypes.c_ulonglong)( lambda ctxt, cur, total: progress_func(cur, total))) if result: return self.get_view_of_type(self.view_type) diff --git a/python/filemetadata.py b/python/filemetadata.py index 5a36fde0..aea68bb6 100644 --- a/python/filemetadata.py +++ b/python/filemetadata.py @@ -434,7 +434,7 @@ class FileMetadata: else: _progress_func = progress_func return core.BNCreateDatabaseWithProgress(self.raw.handle, str(filename), None, - ctypes.CFUNCTYPE(None, ctypes.c_void_p, ctypes.c_ulonglong, ctypes.c_ulonglong)( + ctypes.CFUNCTYPE(ctypes.c_bool, ctypes.c_void_p, ctypes.c_ulonglong, ctypes.c_ulonglong)( lambda ctxt, cur, total: _progress_func(cur, total)), settings) def open_existing_database(self, filename:str, progress_func:Callable[[int, int], bool]=None): @@ -442,7 +442,7 @@ class FileMetadata: view = core.BNOpenExistingDatabase(self.handle, str(filename)) else: view = core.BNOpenExistingDatabaseWithProgress(self.handle, str(filename), None, - ctypes.CFUNCTYPE(None, ctypes.c_void_p, ctypes.c_ulonglong, ctypes.c_ulonglong)( + ctypes.CFUNCTYPE(ctypes.c_bool, ctypes.c_void_p, ctypes.c_ulonglong, ctypes.c_ulonglong)( lambda ctxt, cur, total: progress_func(cur, total))) if view is None: return None @@ -465,7 +465,7 @@ class FileMetadata: else: _progress_func = progress_func return core.BNSaveAutoSnapshotWithProgress(self.raw.handle, None, - ctypes.CFUNCTYPE(None, ctypes.c_void_p, ctypes.c_ulonglong, ctypes.c_ulonglong)( + ctypes.CFUNCTYPE(ctypes.c_bool, ctypes.c_void_p, ctypes.c_ulonglong, ctypes.c_ulonglong)( lambda ctxt, cur, total: _progress_func(cur, total)), _settings) def merge_user_analysis(self, path:str, progress_func:ProgressFuncType, excluded_hashes:Optional[List[str]]=None): @@ -475,7 +475,7 @@ class FileMetadata: for i in range(len(excluded_hashes)): excluded[i] = core.cstr(excluded_hashes[i]) return core.BNMergeUserAnalysis(self.handle, str(path), None, - ctypes.CFUNCTYPE(None, ctypes.c_void_p, ctypes.c_ulonglong, ctypes.c_ulonglong)( + ctypes.CFUNCTYPE(None, ctypes.c_bool, ctypes.c_ulonglong, ctypes.c_ulonglong)( lambda ctxt, cur, total: progress_func(cur, total)), excluded, len(excluded_hashes)) def get_view_of_type(self, name:str) -> Optional['binaryview.BinaryView']: @@ -509,4 +509,4 @@ class FileMetadata: for i in range(length.value): views.append(result[i].decode("utf-8")) core.BNFreeStringList(result, length) - return views
\ No newline at end of file + return views diff --git a/rust/src/filemetadata.rs b/rust/src/filemetadata.rs index 04344acb..f694655d 100644 --- a/rust/src/filemetadata.rs +++ b/rust/src/filemetadata.rs @@ -231,7 +231,7 @@ impl FileMetadata { // TODO : add optional progress function // let view = match progress_func { // None => BNOpenExistingDatabase(self.handle, filename_ptr), - // _ => BNOpenExistingDatabaseWithProgress(self.handle, str(filename), None, ctypes.CFUNCTYPE(None, ctypes.c_void_p, ctypes.c_ulonglong, ctypes.c_ulonglong)(lambda ctxt, cur, total: progress_func(cur, total))) + // _ => BNOpenExistingDatabaseWithProgress(self.handle, str(filename), None, ctypes.CFUNCTYPE(ctypes.c_bool, ctypes.c_void_p, ctypes.c_ulonglong, ctypes.c_ulonglong)(lambda ctxt, cur, total: progress_func(cur, total))) // }; if view.is_null() { |
