From 1828c717431e85ad32aa5bd8dd1e9ab362835457 Mon Sep 17 00:00:00 2001 From: Jeff Morriss Date: Mon, 21 May 2012 17:09:15 +0000 Subject: Fix https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7270 : Don't mark frames as dependent upon a displayed frame unless the (supposedly) displayed frame is actually displayed. (Fix to r41214 .) svn path=/trunk/; revision=42752 --- file.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'file.c') 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; -- cgit v1.2.3