mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-06-02 05:31:29 +08:00
Merge remote-tracking branch 'origin/GP-0_ghizard_master_fix_for_GP-4246'
This commit is contained in:
+7
@@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user