summaryrefslogtreecommitdiff
path: root/scriptingprovider.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scriptingprovider.cpp')
-rw-r--r--scriptingprovider.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/scriptingprovider.cpp b/scriptingprovider.cpp
index 0a89c5a2..e1b7445e 100644
--- a/scriptingprovider.cpp
+++ b/scriptingprovider.cpp
@@ -94,21 +94,24 @@ void ScriptingInstance::CancelScriptInputCallback(void* ctxt)
void ScriptingInstance::SetCurrentBinaryViewCallback(void* ctxt, BNBinaryView* view)
{
ScriptingInstance* instance = (ScriptingInstance*)ctxt;
- instance->SetCurrentBinaryView(view ? new BinaryView(BNNewViewReference(view)) : nullptr);
+ Ref<BinaryView> object = view ? new BinaryView(BNNewViewReference(view)) : nullptr;
+ instance->SetCurrentBinaryView(object);
}
void ScriptingInstance::SetCurrentFunctionCallback(void* ctxt, BNFunction* func)
{
ScriptingInstance* instance = (ScriptingInstance*)ctxt;
- instance->SetCurrentFunction(func ? new Function(BNNewFunctionReference(func)) : nullptr);
+ Ref<Function> object = func ? new Function(BNNewFunctionReference(func)) : nullptr;
+ instance->SetCurrentFunction(object);
}
void ScriptingInstance::SetCurrentBasicBlockCallback(void* ctxt, BNBasicBlock* block)
{
ScriptingInstance* instance = (ScriptingInstance*)ctxt;
- instance->SetCurrentBasicBlock(block ? new BasicBlock(BNNewBasicBlockReference(block)) : nullptr);
+ Ref<BasicBlock> object = block ? new BasicBlock(BNNewBasicBlockReference(block)) : nullptr;
+ instance->SetCurrentBasicBlock(object);
}