mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2024-11-23 20:59:58 +00:00
Merge remote-tracking branch 'origin/patch'
This commit is contained in:
commit
6676667a70
@ -301,6 +301,18 @@ void FlowBlock::setGotoBranch(int4 i)
|
|||||||
outofthis[i].point->flags |= f_interior_gotoin;
|
outofthis[i].point->flags |= f_interior_gotoin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// The switch can have exactly 1 default edge, so we make sure other edges are not marked.
|
||||||
|
/// \param pos is the index of the \e out edge that should be the default
|
||||||
|
void FlowBlock::setDefaultSwitch(int4 pos)
|
||||||
|
|
||||||
|
{
|
||||||
|
for(int4 i=0;i<outofthis.size();++i) {
|
||||||
|
if (isDefaultBranch(i))
|
||||||
|
clearOutEdgeFlag(i, f_defaultswitch_edge); // Clear any previous flag
|
||||||
|
}
|
||||||
|
setOutEdgeFlag(pos,f_defaultswitch_edge);
|
||||||
|
}
|
||||||
|
|
||||||
/// \b return \b true if block is the target of a jump
|
/// \b return \b true if block is the target of a jump
|
||||||
bool FlowBlock::isJumpTarget(void) const
|
bool FlowBlock::isJumpTarget(void) const
|
||||||
|
|
||||||
|
@ -190,7 +190,7 @@ public:
|
|||||||
void setVisitCount(int4 i) { visitcount = i; } ///< Set the number of times this block has been visited
|
void setVisitCount(int4 i) { visitcount = i; } ///< Set the number of times this block has been visited
|
||||||
int4 getVisitCount(void) const { return visitcount; } ///< Get the count of visits
|
int4 getVisitCount(void) const { return visitcount; } ///< Get the count of visits
|
||||||
void setGotoBranch(int4 i); ///< Mark a \e goto branch
|
void setGotoBranch(int4 i); ///< Mark a \e goto branch
|
||||||
void setDefaultSwitch(int4 i) { setOutEdgeFlag(i,f_defaultswitch_edge); } ///< Mark an edge as the switch default
|
void setDefaultSwitch(int4 pos); ///< Mark an edge as the switch default
|
||||||
bool isMark(void) const { return ((flags&f_mark)!=0); } ///< Return \b true if \b this block has been marked
|
bool isMark(void) const { return ((flags&f_mark)!=0); } ///< Return \b true if \b this block has been marked
|
||||||
void setMark(void) { flags |= f_mark; } ///< Mark \b this block
|
void setMark(void) { flags |= f_mark; } ///< Mark \b this block
|
||||||
void clearMark(void) { flags &= ~f_mark; } ///< Clear any mark on \b this block
|
void clearMark(void) { flags &= ~f_mark; } ///< Clear any mark on \b this block
|
||||||
|
Loading…
Reference in New Issue
Block a user