mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-06-04 05:24:57 +08:00
Merge remote-tracking branch
'origin/GP-3263-dragonmacher-dt-finder-exception' (Closes #5164)
This commit is contained in:
+11
-6
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user