summaryrefslogtreecommitdiff
path: root/src/filters.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/filters.cc')
-rw-r--r--src/filters.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/filters.cc b/src/filters.cc
index 22231d18..276ecaba 100644
--- a/src/filters.cc
+++ b/src/filters.cc
@@ -291,7 +291,13 @@ void collapse_xacts::report_subtotal()
{
assert(count >= 1);
- if (count == 1) {
+ std::size_t displayed_count = 0;
+ foreach (xact_t * xact, component_xacts) {
+ if (only_predicate(*xact) && display_predicate(*xact))
+ displayed_count++;
+ }
+
+ if (displayed_count == 1) {
item_handler<xact_t>::operator()(*last_xact);
}
else if (only_collapse_if_zero && ! subtotal.is_zero()) {