diff options
| author | Rusty Wagner <rusty@vector35.com> | 2018-03-16 20:07:48 -0400 |
|---|---|---|
| committer | Rusty Wagner <rusty@vector35.com> | 2018-03-16 20:07:48 -0400 |
| commit | 0700b6ba0b92ff99328f764a5e48192dc6f961c6 (patch) | |
| tree | 57d162d1d532cc87535b9d5eccb3014a636beb0b /callingconvention.cpp | |
| parent | b8ac51a5ff98a79a205160b53cc74c324335250b (diff) | |
Fix reference leak in calling conventions
Diffstat (limited to 'callingconvention.cpp')
| -rw-r--r-- | callingconvention.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/callingconvention.cpp b/callingconvention.cpp index 2eb57567..a56b8f11 100644 --- a/callingconvention.cpp +++ b/callingconvention.cpp @@ -195,8 +195,10 @@ void CallingConvention::GetIncomingVariableForParameterVariableCallback(void* ct BNFunction* func, BNVariable* result) { CallingConvention* cc = (CallingConvention*)ctxt; - *result = cc->GetIncomingVariableForParameterVariable(*var, - func ? new Function(BNNewFunctionReference(func)) : nullptr); + Ref<Function> funcObj; + if (func) + funcObj = new Function(BNNewFunctionReference(func)); + *result = cc->GetIncomingVariableForParameterVariable(*var, funcObj); } @@ -204,8 +206,10 @@ void CallingConvention::GetParameterVariableForIncomingVariableCallback(void* ct BNFunction* func, BNVariable* result) { CallingConvention* cc = (CallingConvention*)ctxt; - *result = cc->GetParameterVariableForIncomingVariable(*var, - func ? new Function(BNNewFunctionReference(func)) : nullptr); + Ref<Function> funcObj; + if (func) + funcObj = new Function(BNNewFunctionReference(func)); + *result = cc->GetParameterVariableForIncomingVariable(*var, funcObj); } |
