Skip to content

Commit 8720906

Browse files
committed
Allow opening databases without loading a file
1 parent 6418529 commit 8720906

3 files changed

Lines changed: 17 additions & 0 deletions

File tree

binaryninjaapi.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3374,8 +3374,11 @@ namespace BinaryNinja {
33743374
class Database : public CoreRefCountObject<BNDatabase, BNNewDatabaseReference, BNFreeDatabase>
33753375
{
33763376
public:
3377+
Database();
33773378
Database(BNDatabase* database);
33783379

3380+
bool OpenExisting(const std::string& path);
3381+
33793382
bool SnapshotHasData(int64_t id);
33803383
Ref<Snapshot> GetSnapshot(int64_t id);
33813384
std::vector<Ref<Snapshot>> GetSnapshots();

binaryninjacore.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4436,6 +4436,8 @@ extern "C"
44364436
// Database object
44374437
BINARYNINJACOREAPI BNDatabase* BNNewDatabaseReference(BNDatabase* database);
44384438
BINARYNINJACOREAPI void BNFreeDatabase(BNDatabase* database);
4439+
BINARYNINJACOREAPI BNDatabase* BNCreateDatabaseInstance(void);
4440+
BINARYNINJACOREAPI bool BNDatabaseOpenExisting(BNDatabase* database, const char* path);
44394441
BINARYNINJACOREAPI void BNSetDatabaseCurrentSnapshot(BNDatabase* database, int64_t id);
44404442
BINARYNINJACOREAPI BNSnapshot* BNGetDatabaseCurrentSnapshot(BNDatabase* database);
44414443
BINARYNINJACOREAPI BNSnapshot** BNGetDatabaseSnapshots(BNDatabase* database, size_t* count);

database.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,12 +374,24 @@ bool Snapshot::HasAncestor(Ref<Snapshot> other)
374374
}
375375

376376

377+
Database::Database()
378+
{
379+
m_object = BNCreateDatabaseInstance();
380+
}
381+
382+
377383
Database::Database(BNDatabase* database)
378384
{
379385
m_object = database;
380386
}
381387

382388

389+
bool Database::OpenExisting(const std::string& path)
390+
{
391+
return BNDatabaseOpenExisting(m_object, path.c_str());
392+
}
393+
394+
383395
Ref<Snapshot> Database::GetSnapshot(int64_t id)
384396
{
385397
BNSnapshot* snap = BNGetDatabaseSnapshot(m_object, id);

0 commit comments

Comments
 (0)