summaryrefslogtreecommitdiff
path: root/debuginfo.cpp
diff options
context:
space:
mode:
authorGlenn Smith <glenn@vector35.com>2022-08-23 00:34:20 -0400
committerGlenn Smith <glenn@vector35.com>2022-09-29 21:02:25 -0400
commitb6442a914783cb2861ff8d1cd6a3865fed29e0f7 (patch)
tree2b45fe796746d52f32132447948b34092b5523d6 /debuginfo.cpp
parent0725c6fbd58b3d40ffefdb319121a29ba4168517 (diff)
DebugInfo: take entire Type for function instead of by-parts
Diffstat (limited to 'debuginfo.cpp')
-rw-r--r--debuginfo.cpp28
1 files changed, 2 insertions, 26 deletions
diff --git a/debuginfo.cpp b/debuginfo.cpp
index c67582cb..c9a6f319 100644
--- a/debuginfo.cpp
+++ b/debuginfo.cpp
@@ -81,19 +81,10 @@ vector<DebugFunctionInfo> DebugInfo::GetFunctions(const string& parserName) cons
vector<DebugFunctionInfo> result;
for (size_t i = 0; i < count; ++i)
{
- vector<tuple<string, Ref<Type>>> parameters;
- for (size_t j = 0; j < functions[i].parameterCount; ++j)
- parameters.emplace_back(
- functions[i].parameterNames[j], new Type(BNNewTypeReference(functions[i].parameterTypes[j])));
-
result.emplace_back(functions[i].shortName ? functions[i].shortName : "",
functions[i].fullName ? functions[i].fullName : "", functions[i].rawName ? functions[i].rawName : "",
functions[i].address,
- functions[i].returnType ? new Type(BNNewTypeReference(functions[i].returnType)) : nullptr, parameters,
- functions[i].variableParameters,
- functions[i].callingConvention ?
- new CoreCallingConvention(BNNewCallingConventionReference(functions[i].callingConvention)) :
- nullptr,
+ functions[i].type ? new Type(BNNewTypeReference(functions[i].type)) : nullptr,
functions[i].platform ? new Platform(BNNewPlatformReference(functions[i].platform)) : nullptr);
}
@@ -267,30 +258,15 @@ bool DebugInfo::AddFunction(const DebugFunctionInfo& function)
input->fullName = function.fullName.size() ? BNAllocString(function.fullName.c_str()) : nullptr;
input->rawName = function.rawName.size() ? BNAllocString(function.rawName.c_str()) : nullptr;
input->address = function.address;
- input->returnType = function.returnType ? function.returnType->GetObject() : nullptr;
- input->variableParameters = function.variableParameters;
- input->callingConvention = function.callingConvention ? function.callingConvention->GetObject() : nullptr;
+ input->type = function.type ? function.type->GetObject() : nullptr;
input->platform = function.platform ? function.platform->GetObject() : nullptr;
- size_t parameterCount = function.parameters.size();
- input->parameterCount = parameterCount;
- input->parameterNames = new char*[parameterCount];
- input->parameterTypes = new BNType*[parameterCount];
- for (size_t i = 0; i < parameterCount; ++i)
- {
- input->parameterNames[i] = BNAllocString(std::get<0>(function.parameters[i]).c_str());
- input->parameterTypes[i] = std::get<1>(function.parameters[i])->GetObject();
- }
-
bool result = BNAddDebugFunction(m_object, input);
BNFreeString(input->shortName);
BNFreeString(input->fullName);
BNFreeString(input->rawName);
- for (size_t i = 0; i < parameterCount; ++i)
- BNFreeString(input->parameterNames[i]);
-
return result;
}