aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2009-07-27 08:33:26 +0000
committerAnders Broman <anders.broman@ericsson.com>2009-07-27 08:33:26 +0000
commitcb771536dff2d002ab8cc3903c6ecefea4808e9c (patch)
tree1ca2b43c03f4fd6a0f813a1959da0511af054baa
parent9ca4ac2bede829da3acd836875e6209e02bb9259 (diff)
From Kovarththanan Rajaratnam:
Only fill in frame_data vals when needed. svn path=/trunk/; revision=29203
-rw-r--r--epan/column-utils.c11
-rw-r--r--epan/column-utils.h2
-rw-r--r--epan/epan.c4
-rw-r--r--epan/epan.h2
-rw-r--r--epan/frame_data.h2
-rw-r--r--file.c12
-rw-r--r--gtk/main.c2
-rw-r--r--gtk/packet_win.c2
-rw-r--r--tshark.c2
9 files changed, 23 insertions, 16 deletions
diff --git a/epan/column-utils.c b/epan/column-utils.c
index 31a645f8a5..3fa2ac4628 100644
--- a/epan/column-utils.c
+++ b/epan/column-utils.c
@@ -1405,7 +1405,7 @@ col_fill_in_frame_data(frame_data *fd, column_info *cinfo, gint col)
}
void
-col_fill_in(packet_info *pinfo)
+col_fill_in(packet_info *pinfo, gboolean fill_fd_colums)
{
int i;
@@ -1413,7 +1413,8 @@ col_fill_in(packet_info *pinfo)
switch (pinfo->cinfo->col_fmt[i]) {
case COL_NUMBER:
- col_fill_in_frame_data(pinfo->fd, pinfo->cinfo, i);
+ if (fill_fd_colums)
+ col_fill_in_frame_data(pinfo->fd, pinfo->cinfo, i);
break;
case COL_CLS_TIME:
@@ -1422,7 +1423,8 @@ col_fill_in(packet_info *pinfo)
case COL_REL_TIME:
case COL_DELTA_TIME:
case COL_DELTA_TIME_DIS:
- col_fill_in_frame_data(pinfo->fd, pinfo->cinfo, i);
+ if (fill_fd_colums)
+ col_fill_in_frame_data(pinfo->fd, pinfo->cinfo, i);
break;
case COL_REL_CONV_TIME:
@@ -1507,7 +1509,8 @@ col_fill_in(packet_info *pinfo)
case COL_PACKET_LENGTH:
case COL_CUMULATIVE_BYTES:
- col_fill_in_frame_data(pinfo->fd, pinfo->cinfo, i);
+ if (fill_fd_colums)
+ col_fill_in_frame_data(pinfo->fd, pinfo->cinfo, i);
break;
case COL_OXID:
diff --git a/epan/column-utils.h b/epan/column-utils.h
index c25f46c319..5e9372a3e0 100644
--- a/epan/column-utils.h
+++ b/epan/column-utils.h
@@ -76,7 +76,7 @@ extern void col_fill_in_frame_data(frame_data *fd, column_info *cinfo, gint col)
*
* Internal, don't use this in dissectors!
*/
-extern void col_fill_in(packet_info *pinfo);
+extern void col_fill_in(packet_info *pinfo, gboolean fill_fd_colums);
/* Utility routines used by packet*.c */
diff --git a/epan/epan.c b/epan/epan.c
index 7e496c008f..de33d7a4d9 100644
--- a/epan/epan.c
+++ b/epan/epan.c
@@ -198,7 +198,7 @@ epan_dissect_prime_dfilter(epan_dissect_t *edt, const dfilter_t* dfcode)
}
void
-epan_dissect_fill_in_columns(epan_dissect_t *edt)
+epan_dissect_fill_in_columns(epan_dissect_t *edt, gboolean fill_fd_colums)
{
- col_fill_in(&edt->pi);
+ col_fill_in(&edt->pi, fill_fd_colums);
}
diff --git a/epan/epan.h b/epan/epan.h
index 77bc1bc3f6..d70c613908 100644
--- a/epan/epan.h
+++ b/epan/epan.h
@@ -101,7 +101,7 @@ epan_dissect_prime_dfilter(epan_dissect_t *edt, const dfilter_t *dfcode);
/* fill the dissect run output into the packet list columns */
void
-epan_dissect_fill_in_columns(epan_dissect_t *edt);
+epan_dissect_fill_in_columns(epan_dissect_t *edt, gboolean fill_fd_colums);
/* free a single packet dissection */
void
diff --git a/epan/frame_data.h b/epan/frame_data.h
index 121a049cfb..126ca53097 100644
--- a/epan/frame_data.h
+++ b/epan/frame_data.h
@@ -54,7 +54,7 @@ typedef struct _frame_data {
unsigned int passed_dfilter : 1; /* 1 = display, 0 = no display */
unsigned int encoding : 2; /* Character encoding (ASCII, EBCDIC...) */
unsigned int visited : 1; /* Has this packet been visited yet? 1=Yes,0=No*/
- unsigned int marked : 1; /* 1 = marked by user, 0 = normal */
+ unsigned int marked : 1; /* 1 = marked by user, 0 = normal */
unsigned int ref_time : 1; /* 1 = marked as a reference time frame, 0 = normal */
} flags;
void *color_filter; /* Per-packet matching color_filter_t object */
diff --git a/file.c b/file.c
index b8b33d383b..f37c933db3 100644
--- a/file.c
+++ b/file.c
@@ -1099,7 +1099,11 @@ add_packet_to_packet_list(frame_data *fdata, capture_file *cf,
cum_bytes += fdata->pkt_len;
}
- epan_dissect_fill_in_columns(edt);
+#ifdef NEW_PACKET_LIST
+ epan_dissect_fill_in_columns(edt, FALSE);
+#else
+ epan_dissect_fill_in_columns(edt, TRUE);
+#endif
/* If we haven't yet seen the first frame, this is it.
@@ -2121,7 +2125,7 @@ print_packet(capture_file *cf, frame_data *fdata,
information. */
if (args->print_args->print_summary) {
epan_dissect_run(edt, pseudo_header, pd, fdata, &cf->cinfo);
- epan_dissect_fill_in_columns(edt);
+ epan_dissect_fill_in_columns(edt, TRUE);
} else
epan_dissect_run(edt, pseudo_header, pd, fdata, NULL);
@@ -2453,7 +2457,7 @@ write_psml_packet(capture_file *cf, frame_data *fdata,
proto_tree_needed = have_custom_cols(&cf->cinfo);
edt = epan_dissect_new(proto_tree_needed, proto_tree_needed);
epan_dissect_run(edt, pseudo_header, pd, fdata, &cf->cinfo);
- epan_dissect_fill_in_columns(edt);
+ epan_dissect_fill_in_columns(edt, TRUE);
/* Write out the information in that tree. */
proto_tree_write_psml(edt, fh);
@@ -2527,7 +2531,7 @@ write_csv_packet(capture_file *cf, frame_data *fdata,
proto_tree_needed = have_custom_cols(&cf->cinfo);
edt = epan_dissect_new(proto_tree_needed, proto_tree_needed);
epan_dissect_run(edt, pseudo_header, pd, fdata, &cf->cinfo);
- epan_dissect_fill_in_columns(edt);
+ epan_dissect_fill_in_columns(edt, TRUE);
/* Write out the information in that tree. */
proto_tree_write_csv(edt, fh);
diff --git a/gtk/main.c b/gtk/main.c
index 04299b68fe..6d25b66845 100644
--- a/gtk/main.c
+++ b/gtk/main.c
@@ -519,7 +519,7 @@ get_filter_from_packet_list_row_and_column(gpointer data)
epan_dissect_run(edt, &cfile.pseudo_header, cfile.pd, fdata,
&cfile.cinfo);
- epan_dissect_fill_in_columns(edt);
+ epan_dissect_fill_in_columns(edt, TRUE);
if (strlen(cfile.cinfo.col_expr.col_expr[column]) != 0 &&
strlen(cfile.cinfo.col_expr.col_expr_val[column]) != 0) {
diff --git a/gtk/packet_win.c b/gtk/packet_win.c
index 774ecb6690..e2865b7934 100644
--- a/gtk/packet_win.c
+++ b/gtk/packet_win.c
@@ -141,7 +141,7 @@ void new_window_cb(GtkWidget *w _U_)
DataPtr->edt = epan_dissect_new(TRUE, TRUE);
epan_dissect_run(DataPtr->edt, &DataPtr->pseudo_header, DataPtr->pd,
DataPtr->frame, &cfile.cinfo);
- epan_dissect_fill_in_columns(DataPtr->edt);
+ epan_dissect_fill_in_columns(DataPtr->edt, TRUE);
/*
* Build title of window by getting column data constructed when the
diff --git a/tshark.c b/tshark.c
index 10bdf3518a..f77a08ae1f 100644
--- a/tshark.c
+++ b/tshark.c
@@ -2908,7 +2908,7 @@ print_packet(capture_file *cf, epan_dissect_t *edt)
}
} else {
/* Just fill in the columns. */
- epan_dissect_fill_in_columns(edt);
+ epan_dissect_fill_in_columns(edt, TRUE);
/* Now print them. */
switch (output_action) {