Merge remote-tracking branch 'origin/GP-3370_JumpTableClear' into

Ghidra_10.3 (Closes #5105)
This commit is contained in:
Ryan Kurtz 2023-05-03 13:40:13 -04:00
commit f22912e208

View File

@ -2694,8 +2694,7 @@ bool JumpTable::recoverLabels(Funcdata *fd)
return multistagerestart; return multistagerestart;
} }
/// Clear out any data that is specific to a Funcdata instance. The address table is not cleared /// Clear out any data that is specific to a Funcdata instance.
/// if it was recovered, and override information is left intact.
/// Right now this is only getting called, when the jumptable is an override in order to clear out derived data. /// Right now this is only getting called, when the jumptable is an override in order to clear out derived data.
void JumpTable::clear(void) void JumpTable::clear(void)
@ -2710,12 +2709,14 @@ void JumpTable::clear(void)
delete jmodel; delete jmodel;
jmodel = (JumpModel *)0; jmodel = (JumpModel *)0;
} }
addresstable.clear();
block2addr.clear(); block2addr.clear();
lastBlock = -1; lastBlock = -1;
label.clear(); label.clear();
loadpoints.clear(); loadpoints.clear();
indirect = (PcodeOp *)0; indirect = (PcodeOp *)0;
switchVarConsume = ~((uintb)0); switchVarConsume = ~((uintb)0);
defaultBlock = -1;
recoverystage = 0; recoverystage = 0;
// -opaddress- -maxtablesize- -maxaddsub- -maxleftright- -maxext- -collectloads- are permanent // -opaddress- -maxtablesize- -maxaddsub- -maxleftright- -maxext- -collectloads- are permanent
} }