diff options
| author | Peter LaFosse <peter@vector35.com> | 2019-09-13 09:56:00 -0400 |
|---|---|---|
| committer | Peter LaFosse <peter@vector35.com> | 2019-11-15 21:10:58 -0500 |
| commit | db48820f5fed420ad298278e8e6b055baa4ddf06 (patch) | |
| tree | 2b41a6f081f924b622887ddc42f5f579eebbd849 /type.cpp | |
| parent | 3c329e77e0318db070099be2d1731c4e7ac510ba (diff) | |
Type workflow improvements
Expand type context for data renderers
Add additional linearview helper routines for defining variables inside of structures
fix unit tests
Diffstat (limited to 'type.cpp')
| -rw-r--r-- | type.cpp | 27 |
1 files changed, 21 insertions, 6 deletions
@@ -489,12 +489,6 @@ Confidence<bool> Type::IsConst() const } -bool Type::IsFloat() const -{ - return BNIsTypeFloatingPoint(m_object); -} - - Confidence<BNMemberScope> Type::GetScope() const { BNMemberScopeWithConfidence result = BNTypeGetMemberScope(m_object); @@ -934,6 +928,12 @@ string Type::GetAutoDebugTypeIdSource() } +bool Type::IsReferenceOfType(BNNamedTypeReferenceClass refType) +{ + return (GetClass() == NamedTypeReferenceClass) && (GetNamedTypeReference()->GetTypeClass() == refType); +} + + QualifiedName Type::GetTypeName() const { BNQualifiedName name = BNTypeGetTypeName(m_object); @@ -1111,6 +1111,21 @@ bool Structure::GetMemberByName(const string& name, StructureMember& result) con } +bool Structure::GetMemberAtOffset(int64_t offset, StructureMember& result) const +{ + BNStructureMember* member = BNGetStructureMemberAtOffset(m_object, offset); + if (member) + { + result.type = new Type(BNNewTypeReference(member->type)); + result.name = member->name; + result.offset = member->offset; + BNFreeStructureMember(member); + return true; + } + return false; +} + + uint64_t Structure::GetWidth() const { return BNGetStructureWidth(m_object); |
