summaryrefslogtreecommitdiff
path: root/type.cpp
diff options
context:
space:
mode:
authorScott Lagler <laglerscott@gmail.com>2023-11-27 08:30:32 -0500
committerxusheng <xusheng@vector35.com>2023-11-28 15:10:36 +0800
commit39cc64451731b046164737bffae35a6a89c118ae (patch)
tree80847d08e2c7593799b043f97efa6c5ad26c4362 /type.cpp
parentb5d6806b15636611eaf2aabf2819430c4a549435 (diff)
Add access and scope info from core to StructMember access methods
Diffstat (limited to 'type.cpp')
-rw-r--r--type.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/type.cpp b/type.cpp
index cf4b21bf..693a16b7 100644
--- a/type.cpp
+++ b/type.cpp
@@ -2139,6 +2139,8 @@ vector<StructureMember> Structure::GetMembers() const
member.type = Confidence<Ref<Type>>(new Type(BNNewTypeReference(members[i].type)), members[i].typeConfidence);
member.name = members[i].name;
member.offset = members[i].offset;
+ member.access = members[i].access;
+ member.scope = members[i].scope;
result.push_back(member);
}
@@ -2162,6 +2164,8 @@ vector<InheritedStructureMember> Structure::GetMembersIncludingInherited(const T
member.member.type = Confidence<Ref<Type>>(new Type(BNNewTypeReference(members[i].member.type)), members[i].member.typeConfidence);
member.member.name = members[i].member.name;
member.member.offset = members[i].member.offset;
+ member.member.access = members[i].member.access;
+ member.member.scope = members[i].member.scope;
member.memberIndex = members[i].memberIndex;
result.push_back(member);
}
@@ -2183,6 +2187,8 @@ bool Structure::GetMemberIncludingInheritedAtOffset(BinaryView* view, int64_t of
result.member.type = Confidence<Ref<Type>>(new Type(BNNewTypeReference(member->member.type)), member->member.typeConfidence);
result.member.name = member->member.name;
result.member.offset = member->member.offset;
+ result.member.access = member->member.access;
+ result.member.scope = member->member.scope;
result.memberIndex = member->memberIndex;
BNFreeInheritedStructureMember(member);
@@ -2198,6 +2204,8 @@ bool Structure::GetMemberByName(const string& name, StructureMember& result) con
result.type = Confidence<Ref<Type>>(new Type(BNNewTypeReference(member->type)), member->typeConfidence);
result.name = member->name;
result.offset = member->offset;
+ result.access = member->access;
+ result.scope = member->scope;
BNFreeStructureMember(member);
return true;
}
@@ -2220,6 +2228,8 @@ bool Structure::GetMemberAtOffset(int64_t offset, StructureMember& result, size_
result.type = Confidence<Ref<Type>>(new Type(BNNewTypeReference(member->type)), member->typeConfidence);
result.name = member->name;
result.offset = member->offset;
+ result.access = member->access;
+ result.scope = member->scope;
BNFreeStructureMember(member);
return true;
}
@@ -2428,6 +2438,8 @@ vector<StructureMember> StructureBuilder::GetMembers() const
member.type = Confidence<Ref<Type>>(new Type(BNNewTypeReference(members[i].type)), members[i].typeConfidence);
member.name = members[i].name;
member.offset = members[i].offset;
+ member.access = members[i].access;
+ member.scope = members[i].scope;
result.push_back(member);
}
@@ -2444,6 +2456,8 @@ bool StructureBuilder::GetMemberByName(const string& name, StructureMember& resu
result.type = Confidence<Ref<Type>>(new Type(BNNewTypeReference(member->type)), member->typeConfidence);
result.name = member->name;
result.offset = member->offset;
+ result.access = member->access;
+ result.scope = member->scope;
BNFreeStructureMember(member);
return true;
}
@@ -2466,6 +2480,8 @@ bool StructureBuilder::GetMemberAtOffset(int64_t offset, StructureMember& result
result.type = Confidence<Ref<Type>>(new Type(BNNewTypeReference(member->type)), member->typeConfidence);
result.name = member->name;
result.offset = member->offset;
+ result.access = member->access;
+ result.scope = member->scope;
BNFreeStructureMember(member);
return true;
}