Merge remote-tracking branch 'origin/GP-0_ghizard_master_fix_for_GP-4246'

This commit is contained in:
Ryan Kurtz
2024-02-27 13:08:39 -05:00
@@ -98,18 +98,23 @@ public class PointerTypeApplier extends MsDataTypeApplier {
switch (msPointerMode) { switch (msPointerMode) {
case POINTER: case POINTER:
dataType = processPointer(pointerMsType, underlyingType); dataType = processPointer(pointerMsType, underlyingType);
break;
case LVALUE_REFERENCE: case LVALUE_REFERENCE:
dataType = processReference(pointerMsType, underlyingType); dataType = processReference(pointerMsType, underlyingType);
break;
case RVALUE_REFERENCE: case RVALUE_REFERENCE:
dataType = processReference(pointerMsType, underlyingType); dataType = processReference(pointerMsType, underlyingType);
break;
case MEMBER_DATA_POINTER: case MEMBER_DATA_POINTER:
case MEMBER_FUNCTION_POINTER: case MEMBER_FUNCTION_POINTER:
dataType = processMemberPointer(pointerMsType, underlyingType); dataType = processMemberPointer(pointerMsType, underlyingType);
break;
case INVALID: case INVALID:
case RESERVED: case RESERVED:
Msg.warn(this, "Unable to process PointerMode: " + msPointerMode + Msg.warn(this, "Unable to process PointerMode: " + msPointerMode +
". Using default Pointer."); ". Using default Pointer.");
dataType = PointerDataType.dataType; dataType = PointerDataType.dataType;
break;
default: default:
throw new PdbException("PDB Error: unhandled PointerMode in " + getClass()); throw new PdbException("PDB Error: unhandled PointerMode in " + getClass());
} }
@@ -142,6 +147,7 @@ public class PointerTypeApplier extends MsDataTypeApplier {
} }
private CategoryPath getCategoryPathForMemberPointer(RecordNumber containingClassRecordNumber) { private CategoryPath getCategoryPathForMemberPointer(RecordNumber containingClassRecordNumber) {
if (containingClassRecordNumber != null) {
AbstractMsType containingType = applicator.getTypeRecord(containingClassRecordNumber); AbstractMsType containingType = applicator.getTypeRecord(containingClassRecordNumber);
MsTypeApplier applier = applicator.getTypeApplier(containingClassRecordNumber); MsTypeApplier applier = applicator.getTypeApplier(containingClassRecordNumber);
if (containingType instanceof AbstractCompositeMsType compositeMsType && if (containingType instanceof AbstractCompositeMsType compositeMsType &&
@@ -150,6 +156,7 @@ public class PointerTypeApplier extends MsDataTypeApplier {
CategoryPath categoryPath = applicator.getCategory(symbolPath); CategoryPath categoryPath = applicator.getCategory(symbolPath);
return ClassTypeUtils.getInternalsCategoryPath(categoryPath); return ClassTypeUtils.getInternalsCategoryPath(categoryPath);
} }
}
return applicator.getAnonymousTypesCategory(); return applicator.getAnonymousTypesCategory();
} }