summaryrefslogtreecommitdiff
path: root/scriptingprovider.cpp
diff options
context:
space:
mode:
authorPeter LaFosse <peter@vector35.com>2018-08-29 15:26:00 -0400
committerPeter LaFosse <peter@vector35.com>2018-08-31 14:21:07 -0400
commitf0ccb75e7d80a6c0ae8b01d794b929f03bc6ea6d (patch)
tree7569fe7689062b265329ad0f649705aa8caab922 /scriptingprovider.cpp
parenta6b801afadada75afd2b1779edee8d203f3b3140 (diff)
parent426bb3d8b47b93658bf969c429a8b98adae13c30 (diff)
Merging with dev
Diffstat (limited to 'scriptingprovider.cpp')
-rw-r--r--scriptingprovider.cpp16
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;