mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-06 03:50:02 +02:00
Merge remote-tracking branch
'origin/GP-3263-dragonmacher-dt-finder-exception' (Closes #5164)
This commit is contained in:
commit
a43de5bf95
1 changed files with 11 additions and 6 deletions
|
@ -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)) {
|
||||||
|
return fieldDt;
|
||||||
|
}
|
||||||
|
|
||||||
Structure parent = (Structure) fieldDt;
|
Structure parent = (Structure) fieldDt;
|
||||||
int offset = field.getOffset();
|
int offset = field.getOffset();
|
||||||
int n = parent.getLength();
|
int n = parent.getLength();
|
||||||
if (offset >= 0 && offset < n) {
|
if (offset >= 0 && offset < n) {
|
||||||
DataTypeComponent dtc = parent.getComponentContaining(field.getOffset());
|
DataTypeComponent dtc = parent.getComponentContaining(field.getOffset());
|
||||||
|
if (dtc != null) {
|
||||||
fieldDt = dtc.getDataType();
|
fieldDt = dtc.getDataType();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return fieldDt;
|
return fieldDt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue