mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-05 10:49:34 +02:00
GP-3014 - Add deduping to DynamicHash gatherFirstLevelVars
This commit is contained in:
parent
f1dc157f04
commit
4b2a78b1fb
3 changed files with 46 additions and 9 deletions
|
@ -77,6 +77,7 @@ class DynamicHash {
|
|||
void gatherUnmarkedOp(void); ///< Mark any new PcodeOps in the sub-graph
|
||||
void pieceTogetherHash(const Varnode *root,uint4 method); ///< Clean-up and piece together formal hash value
|
||||
static void moveOffSkip(const PcodeOp *&op,int4 &slot); ///< Convert given PcodeOp to a non-skip op by following data-flow
|
||||
static void dedupVarnodes(vector<Varnode *> &varlist); ///< Remove any duplicate Varnodes in given list
|
||||
public:
|
||||
void clear(void); ///< Called for each additional hash (after the first)
|
||||
void calcHash(const Varnode *root,uint4 method); ///< Calculate the hash for given Varnode and method
|
||||
|
@ -92,7 +93,7 @@ public:
|
|||
static void gatherOpsAtAddress(vector<PcodeOp *> &opList,const Funcdata *fd,const Address &addr);
|
||||
static int4 getSlotFromHash(uint8 h); ///< Retrieve the encoded slot from a hash
|
||||
static uint4 getMethodFromHash(uint8 h); ///< Retrieve the encoded method from a hash
|
||||
static OpCode getOpCodeFromHash(uint8 h); ///< Retrieve the encoded op-code from a hash
|
||||
static uint4 getOpCodeFromHash(uint8 h); ///< Retrieve the encoded op-code from a hash
|
||||
static uint4 getPositionFromHash(uint8 h); ///< Retrieve the encoded position from a hash
|
||||
static uint4 getTotalFromHash(uint8 h); ///< Retrieve the encoded collision total from a hash
|
||||
static bool getIsNotAttached(uint8 h); ///< Retrieve the attachment boolean from a hash
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue