From 06a10105c9dd2512859597b848251f9c32037125 Mon Sep 17 00:00:00 2001 From: Brian Potchik Date: Fri, 10 Aug 2018 10:23:11 -0400 Subject: Fix ScriptingProvider reference counting and instance cleanup. --- scriptingprovider.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'scriptingprovider.cpp') diff --git a/scriptingprovider.cpp b/scriptingprovider.cpp index 6a52e095..475d69ce 100644 --- a/scriptingprovider.cpp +++ b/scriptingprovider.cpp @@ -60,6 +60,7 @@ ScriptingInstance::ScriptingInstance(ScriptingProvider* provider) cb.setCurrentBasicBlock = SetCurrentBasicBlockCallback; cb.setCurrentAddress = SetCurrentAddressCallback; cb.setCurrentSelection = SetCurrentSelectionCallback; + AddRefForRegistration(); m_object = BNInitScriptingInstance(provider->GetObject(), &cb); } @@ -70,6 +71,12 @@ ScriptingInstance::ScriptingInstance(BNScriptingInstance* instance) } +ScriptingInstance::~ScriptingInstance() +{ + BNFreeScriptingInstance(m_object); +} + + void ScriptingInstance::DestroyInstanceCallback(void* ctxt) { ScriptingInstance* instance = (ScriptingInstance*)ctxt; -- cgit v1.3.1