From efb7b798391b526bf7d6a29b6f87e8d95ee35d50 Mon Sep 17 00:00:00 2001 From: Brian Potchik Date: Thu, 19 Mar 2026 14:56:11 -0400 Subject: Add TransformSession constructor that adopts an existing TransformContext. --- binaryninjaapi.h | 1 + binaryninjacore.h | 3 ++- transformsession.cpp | 6 ++++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/binaryninjaapi.h b/binaryninjaapi.h index f031d0c6..2b6f8adb 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -9454,6 +9454,7 @@ namespace BinaryNinja { TransformSession(const std::string& filename, BNTransformSessionMode mode, const std::string& options = "{}"); TransformSession(Ref initialView, const std::string& options = "{}"); TransformSession(Ref initialView, BNTransformSessionMode mode, const std::string& options = "{}"); + TransformSession(Ref context, BNTransformSessionMode mode, const std::string& options = "{}"); TransformSession(BNTransformSession* session); virtual ~TransformSession(); diff --git a/binaryninjacore.h b/binaryninjacore.h index 6404268c..ef38cef8 100644 --- a/binaryninjacore.h +++ b/binaryninjacore.h @@ -37,7 +37,7 @@ // Current ABI version for linking to the core. This is incremented any time // there are changes to the API that affect linking, including new functions, // new types, or modifications to existing functions or types. -#define BN_CURRENT_CORE_ABI_VERSION 161 +#define BN_CURRENT_CORE_ABI_VERSION 162 // Minimum ABI version that is supported for loading of plugins. Plugins that // are linked to an ABI version less than this will not be able to load and @@ -4938,6 +4938,7 @@ extern "C" BINARYNINJACOREAPI BNTransformSession* BNCreateTransformSessionWithMode(const char* filename, BNTransformSessionMode mode, const char* options); BINARYNINJACOREAPI BNTransformSession* BNCreateTransformSessionFromBinaryView(BNBinaryView* initialView, const char* options); BINARYNINJACOREAPI BNTransformSession* BNCreateTransformSessionFromBinaryViewWithMode(BNBinaryView* initialView, BNTransformSessionMode mode, const char* options); + BINARYNINJACOREAPI BNTransformSession* BNCreateTransformSessionFromTransformContextWithMode(BNTransformContext* context, BNTransformSessionMode mode, const char* options); BINARYNINJACOREAPI BNTransformSession* BNNewTransformSessionReference(BNTransformSession* session); BINARYNINJACOREAPI void BNFreeTransformSession(BNTransformSession* session); BINARYNINJACOREAPI void BNTransformSessionSetInteractive(BNTransformSession* session, bool interactive); diff --git a/transformsession.cpp b/transformsession.cpp index 5e06db06..2165039c 100644 --- a/transformsession.cpp +++ b/transformsession.cpp @@ -28,6 +28,12 @@ TransformSession::TransformSession(Ref initialView, BNTransformSessi } +TransformSession::TransformSession(Ref context, BNTransformSessionMode mode, const string& options) +{ + m_object = BNCreateTransformSessionFromTransformContextWithMode(context->GetObject(), mode, options.c_str()); +} + + TransformSession::TransformSession(BNTransformSession* session) { m_object = session; -- cgit v1.3.1