summaryrefslogtreecommitdiff
path: root/scriptingprovider.cpp
diff options
context:
space:
mode:
authorBrian Potchik <brian@vector35.com>2018-08-10 10:23:11 -0400
committerBrian Potchik <brian@vector35.com>2018-08-10 10:23:11 -0400
commit06a10105c9dd2512859597b848251f9c32037125 (patch)
tree81c6024a897fe2ba13e677580614091fafb9f7e9 /scriptingprovider.cpp
parenta4cde026330c26bd45d87120adb7c21d7199192c (diff)
Fix ScriptingProvider reference counting and instance cleanup.
Diffstat (limited to 'scriptingprovider.cpp')
-rw-r--r--scriptingprovider.cpp7
1 files changed, 7 insertions, 0 deletions
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;