aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com>2009-09-05 13:24:16 +0000
committerKovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com>2009-09-05 13:24:16 +0000
commit2d5a1323e1c40859481d6cb89c3ce96dfcb8f763 (patch)
treeead38a635e507407aa42ae60e996eef3c6202f90
parente275d24c3931dfd79e714ed8f946faf3dfbc0b5e (diff)
Make sure that we can resort with an active display filter
svn path=/trunk/; revision=29710
-rw-r--r--gtk/packet_list_store.c14
-rw-r--r--gtk/packet_list_store.h2
2 files changed, 11 insertions, 5 deletions
diff --git a/gtk/packet_list_store.c b/gtk/packet_list_store.c
index 53f72286f4..522f99df22 100644
--- a/gtk/packet_list_store.c
+++ b/gtk/packet_list_store.c
@@ -821,7 +821,9 @@ packet_list_resort(PacketList *packet_list)
for(phy_idx = 0, vis_idx = 0; phy_idx < PACKET_LIST_RECORD_COUNT(packet_list->physical_rows); ++phy_idx) {
record = PACKET_LIST_RECORD_GET(packet_list->physical_rows, phy_idx);
record->physical_pos = phy_idx;
+ g_assert(record->visible_pos >= -1);
if (record->visible_pos >= 0) {
+ g_assert(record->fdata->flags.passed_dfilter);
neworder[vis_idx] = record->visible_pos;
record->visible_pos = vis_idx;
++vis_idx;
@@ -846,18 +848,18 @@ packet_list_resort(PacketList *packet_list)
g_free(neworder);
}
-void
+guint
packet_list_recreate_visible_rows(PacketList *packet_list)
{
guint phy_idx;
guint vis_idx;
PacketListRecord *record;
- g_return_if_fail(packet_list != NULL);
- g_return_if_fail(PACKETLIST_IS_LIST(packet_list));
+ g_return_val_if_fail(packet_list != NULL, 0);
+ g_return_val_if_fail(PACKETLIST_IS_LIST(packet_list), 0);
if(PACKET_LIST_RECORD_COUNT(packet_list->physical_rows) == 0)
- return;
+ return 0;
if(packet_list->visible_rows)
g_ptr_array_free(packet_list->visible_rows, TRUE);
@@ -870,7 +872,11 @@ packet_list_recreate_visible_rows(PacketList *packet_list)
record->visible_pos = vis_idx++;
PACKET_LIST_RECORD_APPEND(packet_list->visible_rows, record);
}
+ else
+ record->visible_pos = -1;
}
+
+ return vis_idx;
}
void
diff --git a/gtk/packet_list_store.h b/gtk/packet_list_store.h
index 8fe2df3c56..692b1079f6 100644
--- a/gtk/packet_list_store.h
+++ b/gtk/packet_list_store.h
@@ -94,7 +94,7 @@ struct _PacketListClass
GType packet_list_list_get_type(void);
PacketList *new_packet_list_new(void);
void new_packet_list_store_clear(PacketList *packet_list);
-void packet_list_recreate_visible_rows(PacketList *packet_list);
+guint packet_list_recreate_visible_rows(PacketList *packet_list);
gboolean packet_list_visible_record(PacketList *packet_list, GtkTreeIter *iter);
gint packet_list_append_record(PacketList *packet_list, row_data_t *row_data);
void packet_list_change_record(PacketList *packet_list, guint row, gint col, column_info *cinfo);