diff options
Diffstat (limited to 'scriptingprovider.cpp')
| -rw-r--r-- | scriptingprovider.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/scriptingprovider.cpp b/scriptingprovider.cpp index 6a52e095..2a233cfe 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; @@ -245,6 +252,15 @@ BNScriptingInstance* ScriptingProvider::CreateInstanceCallback(void* ctxt) } +string ScriptingProvider::GetName() +{ + char* providerNameRaw = BNGetScriptingProviderName(m_object); + string providerName(providerNameRaw); + BNFreeString(providerNameRaw); + return providerName; +} + + vector<Ref<ScriptingProvider>> ScriptingProvider::GetList() { size_t count; |
