mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-09-28 17:11:11 -09:00
GP-0 fix for breaking RTTI test
This commit is contained in:
@@ -236,9 +236,9 @@ public class RTTIWindowsClassRecoverer extends RTTIClassRecoverer {
|
||||
// }
|
||||
//
|
||||
// private void runRTTIAnalyzer() throws Exception {
|
||||
//// Analyzer analyzer = new RttiAnalyzer();
|
||||
//// analyzer.added(program, program.getAddressFactory().getAddressSet(), monitor,
|
||||
//// new MessageLog());
|
||||
//// Analyzer analyzer = new RttiAnalyzer(); / analyzer.added(program,
|
||||
/// program.getAddressFactory().getAddressSet(), monitor, /
|
||||
/// new MessageLog());
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
|
||||
@@ -5698,8 +5698,27 @@ public class RecoveredClassHelper {
|
||||
if (!areVftablesInSameClass(vftableReferenceList)) {
|
||||
recoveredClass.addIndeterminateInline(indeterminateFunction);
|
||||
indeterminateIterator.remove();
|
||||
continue;
|
||||
}
|
||||
}
|
||||
// Next try identifying non-constructor/destructor but contains inline
|
||||
// using decompiler return type
|
||||
DataType decompilerReturnType =
|
||||
decompilerUtils.getDecompilerReturnType(indeterminateFunction);
|
||||
|
||||
if (decompilerReturnType != null) {
|
||||
|
||||
String returnDataName = decompilerReturnType.getDisplayName();
|
||||
if (returnDataName.contains("*") &&
|
||||
!isFidFunction(indeterminateFunction)) {
|
||||
continue;
|
||||
}
|
||||
if (returnDataName.equals("void")) {
|
||||
continue;
|
||||
}
|
||||
recoveredClass.addIndeterminateInline(indeterminateFunction);
|
||||
indeterminateIterator.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6293,7 +6312,7 @@ public class RecoveredClassHelper {
|
||||
|
||||
// otherwise, use pcode info to figure out if inlined constructor or destructor
|
||||
//If not already, make function a this call
|
||||
makeFunctionThiscall(inlineFunction);
|
||||
// makeFunctionThiscall(inlineFunction);
|
||||
|
||||
List<OffsetPcodeOpPair> loads = getLoadPcodeOpPairs(inlineFunction);
|
||||
List<OffsetPcodeOpPair> stores = getStorePcodeOpPairs(inlineFunction);
|
||||
|
||||
Reference in New Issue
Block a user