Merge remote-tracking branch 'origin/patch'

Conflicts:
	Ghidra/Features/Decompiler/src/main/java/ghidra/app/decompiler/component/DecompilerUtils.java
This commit is contained in:
Ryan Kurtz 2022-03-09 00:56:10 -05:00
commit 7dbf5e7639
5 changed files with 203 additions and 145 deletions

View file

@ -646,9 +646,9 @@ void FlowInfo::queryCall(FuncCallSpecs &fspecs)
Funcdata *otherfunc = data.getScopeLocal()->getParent()->queryFunction( fspecs.getEntryAddress() );
if (otherfunc != (Funcdata *)0) {
fspecs.setFuncdata(otherfunc); // Associate the symbol with the callsite
if (!fspecs.hasModel()) { // If the prototype was not overridden
fspecs.copyFlowEffects(otherfunc->getFuncProto()); // Take the symbols's prototype
// If the callsite is applying just the standard prototype from the symbol,
if (!fspecs.hasModel() || otherfunc->getFuncProto().isInline()) { // If the prototype was not overridden
fspecs.copyFlowEffects(otherfunc->getFuncProto()); // Take the flow affects of the symbol
// If the call site is applying just the standard prototype from the symbol,
// this postpones the full copy of the prototype until ActionDefaultParams
// Which lets "last second" changes come in, between when the function is first walked and
// when it is finally decompiled