mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-04 10:19:23 +02:00
GP-2560 Don't reprocess Funcdata for multiple jumptables
This commit is contained in:
parent
ae6322ba36
commit
11abb716c4
4 changed files with 80 additions and 55 deletions
|
@ -115,7 +115,7 @@ class Funcdata {
|
|||
void pushMultiequals(BlockBasic *bb); ///< Push MULTIEQUAL Varnodes of the given block into the output block
|
||||
void clearBlocks(void); ///< Clear all basic blocks
|
||||
void structureReset(void); ///< Calculate initial basic block structures (after a control-flow change)
|
||||
int4 stageJumpTable(JumpTable *jt,PcodeOp *op,FlowInfo *flow);
|
||||
int4 stageJumpTable(Funcdata &partial,JumpTable *jt,PcodeOp *op,FlowInfo *flow);
|
||||
void switchOverJumpTables(const FlowInfo &flow); ///< Convert jump-table addresses to basic block indices
|
||||
void clearJumpTables(void); ///< Clear any jump-table information
|
||||
|
||||
|
@ -516,7 +516,7 @@ public:
|
|||
JumpTable *linkJumpTable(PcodeOp *op); ///< Link jump-table with a given BRANCHIND
|
||||
JumpTable *findJumpTable(const PcodeOp *op) const; ///< Find a jump-table associated with a given BRANCHIND
|
||||
JumpTable *installJumpTable(const Address &addr); ///< Install a new jump-table for the given Address
|
||||
JumpTable *recoverJumpTable(PcodeOp *op,FlowInfo *flow,int4 &failuremode);
|
||||
JumpTable *recoverJumpTable(Funcdata &partial,PcodeOp *op,FlowInfo *flow,int4 &failuremode);
|
||||
int4 numJumpTables(void) const { return jumpvec.size(); } ///< Get the number of jump-tables for \b this function
|
||||
JumpTable *getJumpTable(int4 i) { return jumpvec[i]; } ///< Get the i-th jump-table
|
||||
void removeJumpTable(JumpTable *jt); ///< Remove/delete the given jump-table
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue