summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn Smith <glenn@vector35.com>2024-09-25 17:33:59 -0400
committerGlenn Smith <glenn@vector35.com>2024-10-14 16:58:46 -0400
commit9779664178534903236695755478467025901462 (patch)
treea30fb8bb0997ae81b5241ca68b72d48879f290fb
parent3783427718195661390278491600665703163357 (diff)
Add some missing type builder getters and setters
-rw-r--r--binaryninjaapi.h4
-rw-r--r--binaryninjacore.h4
-rw-r--r--type.cpp26
3 files changed, 34 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index 82217f9b..3db0f9d1 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -9142,6 +9142,8 @@ namespace BinaryNinja {
Ref<Enumeration> GetEnumeration() const;
Ref<NamedTypeReference> GetNamedTypeReference() const;
Confidence<BNMemberScope> GetScope() const;
+ BNNameType GetNameType() const;
+ bool HasTemplateArguments() const;
TypeBuilder& SetWidth(size_t width);
TypeBuilder& SetAlignment(size_t alignment);
TypeBuilder& SetNamedTypeReference(NamedTypeReference* ntr);
@@ -9153,6 +9155,8 @@ namespace BinaryNinja {
TypeBuilder& SetTypeName(const QualifiedName& name);
TypeBuilder& SetAlternateName(const std::string& name);
TypeBuilder& SetSystemCall(bool sc, uint32_t n = 0);
+ TypeBuilder& SetNameType(BNNameType type);
+ TypeBuilder& SetHasTemplateArguments(bool hasTemplateArguments);
Confidence<int64_t> GetStackAdjustment() const;
QualifiedName GetStructureName() const;
diff --git a/binaryninjacore.h b/binaryninjacore.h
index 248c2905..0cc40e5c 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -6051,6 +6051,10 @@ extern "C"
BINARYNINJACOREAPI BNInstructionTextToken* BNGetTypeBuilderPointerSuffixTokens(BNTypeBuilder* type, uint8_t baseConfidence, size_t* count);
BINARYNINJACOREAPI void BNAddTypeBuilderPointerSuffix(BNTypeBuilder* type, BNPointerSuffix ps);
BINARYNINJACOREAPI void BNSetTypeBuilderPointerSuffix(BNTypeBuilder* type, BNPointerSuffix* suffix, size_t count);
+ BINARYNINJACOREAPI BNNameType BNGetTypeBuilderNameType(BNTypeBuilder* type);
+ BINARYNINJACOREAPI bool BNTypeBuilderHasTemplateArguments(BNTypeBuilder* type);
+ BINARYNINJACOREAPI void BNSetTypeBuilderNameType(BNTypeBuilder* type, BNNameType nameType);
+ BINARYNINJACOREAPI void BNSetTypeBuilderHasTemplateArguments(BNTypeBuilder* type, bool hasTemplateArguments);
BINARYNINJACOREAPI char* BNGetTypeBuilderString(BNTypeBuilder* type, BNPlatform* platform);
BINARYNINJACOREAPI char* BNGetTypeBuilderStringBeforeName(BNTypeBuilder* type, BNPlatform* platform);
diff --git a/type.cpp b/type.cpp
index 9ebdc156..06bac198 100644
--- a/type.cpp
+++ b/type.cpp
@@ -1556,6 +1556,32 @@ TypeBuilder& TypeBuilder::SetNamedTypeReference(NamedTypeReference* ntr)
}
+BNNameType TypeBuilder::GetNameType() const
+{
+ return BNGetTypeBuilderNameType(m_object);
+}
+
+
+bool TypeBuilder::HasTemplateArguments() const
+{
+ return BNTypeBuilderHasTemplateArguments(m_object);
+}
+
+
+TypeBuilder& TypeBuilder::SetNameType(BNNameType type)
+{
+ BNSetTypeBuilderNameType(m_object, type);
+ return *this;
+}
+
+
+TypeBuilder& TypeBuilder::SetHasTemplateArguments(bool hasTemplateArguments)
+{
+ BNSetTypeBuilderHasTemplateArguments(m_object, hasTemplateArguments);
+ return *this;
+}
+
+
uint64_t TypeBuilder::GetElementCount() const
{
return BNGetTypeBuilderElementCount(m_object);