summaryrefslogtreecommitdiff
path: root/binaryview.cpp
diff options
context:
space:
mode:
authorGlenn Smith <glenn@vector35.com>2022-05-25 20:33:02 -0400
committerGlenn Smith <glenn@vector35.com>2022-05-25 20:33:02 -0400
commit6e3f710c4ab4a5d874dc7ef6ddccb65c93b5f4f8 (patch)
tree46f933ed597b2e112ba035362a16d38ac0a3cef2 /binaryview.cpp
parentcd85acfec04e9204ba9caeb4f3feed27359e950d (diff)
BinaryView::DefineTypes with type ids
Diffstat (limited to 'binaryview.cpp')
-rw-r--r--binaryview.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/binaryview.cpp b/binaryview.cpp
index 35097619..70d866ce 100644
--- a/binaryview.cpp
+++ b/binaryview.cpp
@@ -3250,13 +3250,14 @@ struct ProgressCallback
};
-void BinaryView::DefineTypes(const vector<QualifiedNameAndType>& types, std::function<bool(size_t, size_t)> progress)
+void BinaryView::DefineTypes(const vector<pair<string, QualifiedNameAndType>>& types, std::function<bool(size_t, size_t)> progress)
{
- BNQualifiedNameAndType* apiTypes = new BNQualifiedNameAndType[types.size()];
+ BNQualifiedNameTypeAndId* apiTypes = new BNQualifiedNameTypeAndId[types.size()];
for (size_t i = 0; i < types.size(); i++)
{
- apiTypes[i].name = types[i].name.GetAPIObject();
- apiTypes[i].type = types[i].type->GetObject();
+ apiTypes[i].name = types[i].second.name.GetAPIObject();
+ apiTypes[i].type = types[i].second.type->GetObject();
+ apiTypes[i].id = BNAllocString(types[i].first.c_str());
}
ProgressCallback cb;
@@ -3271,6 +3272,7 @@ void BinaryView::DefineTypes(const vector<QualifiedNameAndType>& types, std::fun
for (size_t i = 0; i < types.size(); i++)
{
QualifiedName::FreeAPIObject(&apiTypes[i].name);
+ BNFreeString(apiTypes[i].id);
}
delete [] apiTypes;
}