diff options
| author | Brian Potchik <brian@vector35.com> | 2018-08-10 10:23:11 -0400 |
|---|---|---|
| committer | Brian Potchik <brian@vector35.com> | 2018-08-10 10:23:11 -0400 |
| commit | 06a10105c9dd2512859597b848251f9c32037125 (patch) | |
| tree | 81c6024a897fe2ba13e677580614091fafb9f7e9 /scriptingprovider.cpp | |
| parent | a4cde026330c26bd45d87120adb7c21d7199192c (diff) | |
Fix ScriptingProvider reference counting and instance cleanup.
Diffstat (limited to 'scriptingprovider.cpp')
| -rw-r--r-- | scriptingprovider.cpp | 7 |
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; |
