Merge remote-tracking branch

'origin/GP-3263-dragonmacher-dt-finder-exception' (Closes #5164)
This commit is contained in:
Ryan Kurtz 2023-03-27 09:54:14 -04:00
commit a43de5bf95

View file

@ -156,15 +156,20 @@ public abstract class DecompilerReference {
public static DataType getFieldDataType(ClangFieldToken field) { public static DataType getFieldDataType(ClangFieldToken field) {
DataType fieldDt = field.getDataType(); DataType fieldDt = field.getDataType();
fieldDt = DecompilerReference.getBaseType(fieldDt); fieldDt = DecompilerReference.getBaseType(fieldDt);
if (fieldDt instanceof Structure) { if (!(fieldDt instanceof Structure)) {
Structure parent = (Structure) fieldDt; return fieldDt;
int offset = field.getOffset(); }
int n = parent.getLength();
if (offset >= 0 && offset < n) { Structure parent = (Structure) fieldDt;
DataTypeComponent dtc = parent.getComponentContaining(field.getOffset()); int offset = field.getOffset();
int n = parent.getLength();
if (offset >= 0 && offset < n) {
DataTypeComponent dtc = parent.getComponentContaining(field.getOffset());
if (dtc != null) {
fieldDt = dtc.getDataType(); fieldDt = dtc.getDataType();
} }
} }
return fieldDt; return fieldDt;
} }