From aa8dab21d44b4e0dd863f0867c7e735cfb878a4d Mon Sep 17 00:00:00 2001 From: Mark Rowe Date: Mon, 13 Apr 2026 13:07:09 -0700 Subject: Always show the triage view when opening a shared cache or kernel cache BinaryViewType gains a HasNoInitialContent function that views can use to suppress layout restoration when opening a file. The layout will still be restored when the view is loaded from a saved database. Fixes https://github.com/Vector35/binaryninja-api/issues/8083. --- binaryviewtype.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'binaryviewtype.cpp') diff --git a/binaryviewtype.cpp b/binaryviewtype.cpp index f06218b1..dd542b2b 100644 --- a/binaryviewtype.cpp +++ b/binaryviewtype.cpp @@ -68,6 +68,13 @@ bool BinaryViewType::IsForceLoadableCallback(void* ctxt) } +bool BinaryViewType::HasNoInitialContentCallback(void* ctxt) +{ + CallbackRef type(ctxt); + return type->HasNoInitialContent(); +} + + BNSettings* BinaryViewType::GetSettingsCallback(void* ctxt, BNBinaryView* data) { CallbackRef type(ctxt); @@ -102,6 +109,7 @@ void BinaryViewType::Register(BinaryViewType* type) callbacks.isDeprecated = IsDeprecatedCallback; callbacks.isForceLoadable = IsForceLoadableCallback; callbacks.getLoadSettingsForData = GetSettingsCallback; + callbacks.hasNoInitialContent = HasNoInitialContentCallback; type->AddRefForRegistration(); type->m_object = @@ -272,6 +280,12 @@ bool BinaryViewType::IsForceLoadable() } +bool BinaryViewType::HasNoInitialContent() +{ + return false; +} + + void BinaryViewType::RegisterBinaryViewFinalizationEvent(const function& callback) { BinaryViewEvent* event = new BinaryViewEvent; @@ -378,6 +392,12 @@ bool CoreBinaryViewType::IsForceLoadable() } +bool CoreBinaryViewType::HasNoInitialContent() +{ + return BNBinaryViewTypeHasNoInitialContent(m_object); +} + + Ref CoreBinaryViewType::GetLoadSettingsForData(BinaryView* data) { BNSettings* settings = BNGetBinaryViewLoadSettingsForData(m_object, data->GetObject()); -- cgit v1.3.1