aboutsummaryrefslogtreecommitdiffstats
path: root/ui/gtk
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2015-04-04 16:23:02 -0400
committerGuy Harris <guy@alum.mit.edu>2015-04-05 06:55:58 +0000
commit8699bc285819244aca8c580e8aebd7780148fedd (patch)
tree616e181524e3ae84fa2fecfa2505991250c9e36a /ui/gtk
parent8327921a3278eb1a65597564d262f662371eaf49 (diff)
Remove epan member from PacketWinData and just use cfile.epan when redissecting a packet window.
A pointer to cfile.epan was saved by the window when it's created, but any redissection will remove the epan_session used by cfile.epan underneath the window, so let's just use cfile.epan directly. Bug: 11043 Change-Id: Ie6b85708025f8ab7d5e5dc48ad99fee0931af472 Reviewed-on: https://code.wireshark.org/review/7915 Reviewed-by: Michael Mann <mmann78@netscape.net> Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'ui/gtk')
-rw-r--r--ui/gtk/packet_win.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/ui/gtk/packet_win.c b/ui/gtk/packet_win.c
index 56a53fe2c4..fb28702dfc 100644
--- a/ui/gtk/packet_win.c
+++ b/ui/gtk/packet_win.c
@@ -73,7 +73,6 @@
/* Data structure holding information about a packet-detail window. */
struct PacketWinData {
- epan_t *epan;
frame_data *frame; /* The frame being displayed */
struct wtap_pkthdr phdr; /* Packet header */
guint8 *pd; /* Packet data */
@@ -189,7 +188,7 @@ redissect_packet_window(gpointer object, gpointer user_data _U_)
/* XXX, can be optimized? */
proto_tree_draw(NULL, DataPtr->tree_view);
epan_dissect_cleanup(&(DataPtr->edt));
- epan_dissect_init(&(DataPtr->edt), DataPtr->epan, TRUE, TRUE);
+ epan_dissect_init(&(DataPtr->edt), cfile.epan, TRUE, TRUE);
epan_dissect_run(&(DataPtr->edt), cfile.cd_t, &DataPtr->phdr, frame_tvbuff_new(DataPtr->frame, DataPtr->pd), DataPtr->frame, NULL);
add_byte_views(&(DataPtr->edt), DataPtr->tree_view, DataPtr->bv_nb_ptr);
proto_tree_draw(DataPtr->edt.tree, DataPtr->tree_view);
@@ -260,7 +259,7 @@ finfo_window_refresh(struct FieldinfoWinData *DataPtr)
}
/* redisect */
- epan_dissect_init(&edt, DataPtr->epan, TRUE, TRUE);
+ epan_dissect_init(&edt, cfile.epan, TRUE, TRUE);
/* Makes any sense?
if (old_finfo->hfinfo)
proto_tree_prime_hfid(edt.tree, old_finfo->hfinfo->id);
@@ -723,7 +722,7 @@ edit_pkt_tree_row_activated_cb(GtkTreeView *tree_view, GtkTreePath *path, GtkTre
{
struct FieldinfoWinData data;
- data.epan = DataPtr->epan;
+ data.epan = cfile.epan;
data.frame = DataPtr->frame;
data.phdr = DataPtr->phdr;
data.pd = (guint8 *) g_memdup(DataPtr->pd, DataPtr->frame->cap_len);
@@ -742,7 +741,7 @@ edit_pkt_tree_row_activated_cb(GtkTreeView *tree_view, GtkTreePath *path, GtkTre
proto_tree_draw(NULL, DataPtr->tree_view);
epan_dissect_cleanup(&(DataPtr->edt));
- epan_dissect_init(&(DataPtr->edt), DataPtr->epan, TRUE, TRUE);
+ epan_dissect_init(&(DataPtr->edt), cfile.epan, TRUE, TRUE);
epan_dissect_run(&(DataPtr->edt), cfile.cd_t, &DataPtr->phdr, frame_tvbuff_new(DataPtr->frame, DataPtr->pd), DataPtr->frame, NULL);
add_byte_views(&(DataPtr->edt), DataPtr->tree_view, DataPtr->bv_nb_ptr);
proto_tree_draw(DataPtr->edt.tree, DataPtr->tree_view);
@@ -954,13 +953,12 @@ void new_packet_window(GtkWidget *w _U_, gboolean reference, gboolean editable _
DataPtr = (struct PacketWinData *) g_malloc(sizeof(struct PacketWinData));
/* XXX, protect cfile.epan from closing (ref counting?) */
- DataPtr->epan = cfile.epan;
DataPtr->frame = fd;
DataPtr->phdr = cfile.phdr;
DataPtr->pd = (guint8 *)g_malloc(DataPtr->frame->cap_len);
memcpy(DataPtr->pd, ws_buffer_start_ptr(&cfile.buf), DataPtr->frame->cap_len);
- epan_dissect_init(&(DataPtr->edt), DataPtr->epan, TRUE, TRUE);
+ epan_dissect_init(&(DataPtr->edt), cfile.epan, TRUE, TRUE);
epan_dissect_run(&(DataPtr->edt), cfile.cd_t, &DataPtr->phdr,
frame_tvbuff_new(DataPtr->frame, DataPtr->pd),
DataPtr->frame, &cfile.cinfo);