GP-5928 - PDB - Fix lost members of some composites

This commit is contained in:
ghizard 2025-08-12 16:46:46 -04:00
parent cf61a2ffaf
commit dcd26f14d2

View file

@ -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;