Esempio n. 1
0
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;
}
Esempio n. 2
0
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;
}
Esempio n. 3
0
bool Block::isSubRoutineChild(const Block &child) const {
	return isSubRoutineCall(getParentChildEdgeType(*this, child));
}