From 5539dba1df313816491bb28718433d4d81162aa3 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Sun, 10 Jan 2016 18:07:24 +0100 Subject: Do not apply color rule filter every dissection Introduce a frame_data flag "need_colorize" to indicate that coloring rules need to be evaluated and set it for the GUI (not tshark). This restores the original performance characteristics. It additionally fixes a regression where the color filter name and filter is not shown anymore in the tree (I guess it is related to the edt->tree being NULL when re-selected, resulting in empty color_filter). Remaining problems: - Display filter cannot contain frame.coloring_rule.* fields. Code is present to enable this, but then a method is needed to avoid an expensive second calculation (which is why it is disabled). - The columns are still not updated after coloring rule change. - The two frame.coloring_rule fields in the tree are not updated when the coloring rule is changed (e.g. Ctrl-1). The last two issues were supposed to be fixed by the previous patch, but there is probably some missing code... Tested with GTK and Qt. Bug: 11980 Change-Id: I3ef7713b28db242e178d20f6a5f333374718b52e Reviewed-on: https://code.wireshark.org/review/13170 Petri-Dish: Alexis La Goutte Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman --- epan/frame_data.h | 1 + 1 file changed, 1 insertion(+) (limited to 'epan/frame_data.h') diff --git a/epan/frame_data.h b/epan/frame_data.h index ef859d9818..6dec802645 100644 --- a/epan/frame_data.h +++ b/epan/frame_data.h @@ -84,6 +84,7 @@ typedef struct _frame_data { unsigned int has_ts : 1; /**< 1 = has time stamp, 0 = no time stamp */ unsigned int has_phdr_comment : 1; /** 1 = there's comment for this packet */ unsigned int has_user_comment : 1; /** 1 = user set (also deleted) comment for this packet */ + unsigned int need_colorize : 1; /**< 1 = need to (re-)calculate packet color */ } flags; gint16 tsprec; /**< Time stamp precision */ -- cgit v1.2.3