std::vector<const Block *> Block::getLaterParents(bool includeSubRoutines) const { std::vector<const Block *> result; for (std::vector<const Block *>::const_iterator p = parents.begin(); p != parents.end(); ++p) if ((*p)->address >= address) if (includeSubRoutines || !isSubRoutineCall(getParentChildEdgeType(**p, *this))) result.push_back(*p); return result; }
std::vector<const Block *> Block::getLaterChildren(bool includeSubRoutines) const { std::vector<const Block *> result; for (std::vector<const Block *>::const_iterator c = children.begin(); c != children.end(); ++c) if ((*c)->address >= address) if (includeSubRoutines || !isSubRoutineCall(getParentChildEdgeType(*this, **c))) result.push_back(*c); return result; }
bool Block::isSubRoutineChild(const Block &child) const { return isSubRoutineCall(getParentChildEdgeType(*this, child)); }