GP-3263 - Fixed exception in data type finder

This commit is contained in:
dragonmacher 2023-03-27 09:44:35 -04:00
parent 0709537f72
commit 750cfc6994

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