|
@@ -631,9 +631,14 @@ int hist_entry__fprintf(struct hist_entry *self, struct hists *pair_hists,
|
|
|
u64 session_total)
|
|
|
{
|
|
|
char bf[512];
|
|
|
- hist_entry__snprintf(self, bf, sizeof(bf), pair_hists,
|
|
|
- show_displacement, displacement,
|
|
|
- true, session_total);
|
|
|
+ int ret;
|
|
|
+
|
|
|
+ ret = hist_entry__snprintf(self, bf, sizeof(bf), pair_hists,
|
|
|
+ show_displacement, displacement,
|
|
|
+ true, session_total);
|
|
|
+ if (!ret)
|
|
|
+ return 0;
|
|
|
+
|
|
|
return fprintf(fp, "%s\n", bf);
|
|
|
}
|
|
|
|
|
@@ -762,6 +767,7 @@ size_t hists__fprintf(struct hists *self, struct hists *pair,
|
|
|
print_entries:
|
|
|
for (nd = rb_first(&self->entries); nd; nd = rb_next(nd)) {
|
|
|
struct hist_entry *h = rb_entry(nd, struct hist_entry, rb_node);
|
|
|
+ int cnt;
|
|
|
|
|
|
if (show_displacement) {
|
|
|
if (h->pair != NULL)
|
|
@@ -771,8 +777,13 @@ print_entries:
|
|
|
displacement = 0;
|
|
|
++position;
|
|
|
}
|
|
|
- ret += hist_entry__fprintf(h, pair, show_displacement,
|
|
|
- displacement, fp, self->stats.total_period);
|
|
|
+ cnt = hist_entry__fprintf(h, pair, show_displacement,
|
|
|
+ displacement, fp, self->stats.total_period);
|
|
|
+ /* Ignore those that didn't match the parent filter */
|
|
|
+ if (!cnt)
|
|
|
+ continue;
|
|
|
+
|
|
|
+ ret += cnt;
|
|
|
|
|
|
if (symbol_conf.use_callchain)
|
|
|
ret += hist_entry__fprintf_callchain(h, fp, self->stats.total_period);
|