summaryrefslogtreecommitdiff
path: root/scriptingprovider.cpp
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2018-08-28 17:19:32 -0400
committerRusty Wagner <rusty@vector35.com>2018-08-28 17:19:32 -0400
commit20e06506a3d96c7327ca5d729ab01e8c2a7cff3c (patch)
tree65880063ccbdcb45cc247a0138915d8560d2ec27 /scriptingprovider.cpp
parent5841af2db8e8dcf4e0da0c438ac040c5fa90038b (diff)
parent426bb3d8b47b93658bf969c429a8b98adae13c30 (diff)
Merge branch 'dev' into test_stack_adjust
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;