summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--file.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/file.c b/file.c
index 92788adf03..fbc860f142 100644
--- a/file.c
+++ b/file.c
@@ -1127,11 +1127,16 @@ add_packet_to_packet_list(frame_data *fdata, capture_file *cf,
if (refilter) {
fdata->flags.passed_dfilter = dfilter_apply_edt(dfcode, &edt) ? 1 : 0;
- /* This frame passed the display filter but it may depend on other
- * (potentially not displayed) frames. Find those frames and mark them
- * as depended upon.
- */
- g_slist_foreach(edt.pi.dependent_frames, find_and_mark_frame_depended_upon, cf);
+ if (fdata->flags.passed_dfilter) {
+ /* This frame passed the display filter but it may depend on other
+ * (potentially not displayed) frames. Find those frames and mark them
+ * as depended upon.
+ *
+ * (We don't have to do this if we're not filtering--that is, the
+ * 'else' case below.)
+ */
+ g_slist_foreach(edt.pi.dependent_frames, find_and_mark_frame_depended_upon, cf);
+ }
}
} else
fdata->flags.passed_dfilter = 1;