diff options
author | Michael Mann <mmann78@netscape.net> | 2015-04-04 16:23:02 -0400 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2015-04-05 06:55:58 +0000 |
commit | 8699bc285819244aca8c580e8aebd7780148fedd (patch) | |
tree | 616e181524e3ae84fa2fecfa2505991250c9e36a /ui/gtk | |
parent | 8327921a3278eb1a65597564d262f662371eaf49 (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.c | 12 |
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); |