mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-03 09:49:23 +02:00
GP-5928 - PDB - Fix lost members of some composites
This commit is contained in:
parent
cf61a2ffaf
commit
dcd26f14d2
1 changed files with 3 additions and 4 deletions
|
@ -1025,16 +1025,15 @@ public class CppCompositeType {
|
||||||
* @throws CancelledException upon user cancellation
|
* @throws CancelledException upon user cancellation
|
||||||
*/
|
*/
|
||||||
private void createMembersOnlyClassLayout(TaskMonitor monitor) throws CancelledException {
|
private void createMembersOnlyClassLayout(TaskMonitor monitor) throws CancelledException {
|
||||||
TreeMap<Long, ClassPdbMember> map = new TreeMap<>();
|
List<ClassPdbMember> pdbMembers = new ArrayList<>();
|
||||||
for (Member member : layoutMembers) {
|
for (Member member : layoutMembers) {
|
||||||
ClassPdbMember classPdbMember =
|
ClassPdbMember classPdbMember =
|
||||||
new ClassPdbMember(member.getName(), member.getDataType(),
|
new ClassPdbMember(member.getName(), member.getDataType(),
|
||||||
member.isFlexibleArray(), member.getOffset(), member.getComment());
|
member.isFlexibleArray(), member.getOffset(), member.getComment());
|
||||||
map.put((long) member.getOffset(), classPdbMember);
|
pdbMembers.add(classPdbMember);
|
||||||
}
|
}
|
||||||
List<ClassPdbMember> sm = new ArrayList<>(map.values());
|
|
||||||
if (!DefaultCompositeMember.applyDataTypeMembers(composite, false, false, size,
|
if (!DefaultCompositeMember.applyDataTypeMembers(composite, false, false, size,
|
||||||
sm, msg -> Msg.warn(this, msg), monitor)) {
|
pdbMembers, msg -> Msg.warn(this, msg), monitor)) {
|
||||||
clearComponents(composite);
|
clearComponents(composite);
|
||||||
}
|
}
|
||||||
selfBaseType = composite;
|
selfBaseType = composite;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue