When applying a filter to a corpus_diff node, visit each diff node
only once. This can have some serious performance impact when there
are a lot of diff nodes to visit.
* src/abg-comp-filter.cc (apply_filter): In the overload for
corpus_diff, visit each diff node only once.
Signed-off-by: Dodji Seketeli <dodji@redhat.com>
apply_filter(filter_base& filter, corpus_diff_sptr d)
{
bool s = d->context()->visiting_a_node_twice_is_forbidden();
- d->context()->forbid_visiting_a_node_twice(false);
+ d->context()->forbid_visiting_a_node_twice(true);
d->traverse(filter);
d->context()->forbid_visiting_a_node_twice(s);
}