From 9779664178534903236695755478467025901462 Mon Sep 17 00:00:00 2001 From: Glenn Smith Date: Wed, 25 Sep 2024 17:33:59 -0400 Subject: Add some missing type builder getters and setters --- binaryninjaapi.h | 4 ++++ binaryninjacore.h | 4 ++++ type.cpp | 26 ++++++++++++++++++++++++++ 3 files changed, 34 insertions(+) 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 GetEnumeration() const; Ref GetNamedTypeReference() const; Confidence 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 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); -- cgit v1.3.1