aboutsummaryrefslogtreecommitdiffstats
path: root/sharkd_session.c
diff options
context:
space:
mode:
authorJakub Zawadzki <darkjames-ws@darkjames.pl>2017-12-07 21:56:11 +0100
committerGuy Harris <guy@alum.mit.edu>2017-12-08 03:16:20 +0000
commit0baa4458c5780b143ad4479d387202ddf4add06f (patch)
tree7cac9589c670186f123268c30c3db1fad9a05268 /sharkd_session.c
parent847585f938a525fb32ee4a0227cc500316facc34 (diff)
sharkd: add sharkd_get_frame() to get frame_data, optimize.
Add sharkd_get_frame() wrapper to limit number of cfile usage. Don't get frame_data when not needed. Change-Id: I24b96b5b184196e9dbf632c0891b2954c8281eed Reviewed-on: https://code.wireshark.org/review/24728 Petri-Dish: Jakub Zawadzki <darkjames-ws@darkjames.pl> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'sharkd_session.c')
-rw-r--r--sharkd_session.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/sharkd_session.c b/sharkd_session.c
index e348ae34a4..61d218fac8 100644
--- a/sharkd_session.c
+++ b/sharkd_session.c
@@ -845,7 +845,7 @@ sharkd_session_process_frames(const char *buf, const jsmntok_t *tokens, int coun
printf("[");
for (framenum = 1; framenum <= cfile.count; framenum++)
{
- frame_data *fdata = frame_data_sequence_find(cfile.frame_set_info.frames, framenum);
+ frame_data *fdata;
if (filter_data && !(filter_data[framenum / 8] & (1 << (framenum % 8))))
continue;
@@ -856,7 +856,9 @@ sharkd_session_process_frames(const char *buf, const jsmntok_t *tokens, int coun
continue;
}
- sharkd_dissect_columns(framenum, cinfo, (fdata->color_filter == NULL));
+ fdata = sharkd_get_frame(framenum);
+
+ sharkd_dissect_columns(fdata, cinfo, (fdata->color_filter == NULL));
printf("%s{\"c\":[", frame_sepa);
for (col = 0; col < cinfo->num_cols; ++col)
@@ -2938,7 +2940,7 @@ sharkd_session_process_intervals(char *buf, const jsmntok_t *tokens, int count)
guint64 bytes;
} st, st_total;
- nstime_t *start_ts = NULL;
+ nstime_t *start_ts;
guint32 interval_ms = 1000; /* default: one per second */
@@ -2973,18 +2975,19 @@ sharkd_session_process_intervals(char *buf, const jsmntok_t *tokens, int count)
printf("{\"intervals\":[");
+ start_ts = (cfile.count >= 1) ? &(sharkd_get_frame(1)->abs_ts) : NULL;
+
for (framenum = 1; framenum <= cfile.count; framenum++)
{
- frame_data *fdata = frame_data_sequence_find(cfile.frame_set_info.frames, framenum);
+ frame_data *fdata;
gint64 msec_rel;
gint64 new_idx;
- if (start_ts == NULL)
- start_ts = &fdata->abs_ts;
-
if (filter_data && !(filter_data[framenum / 8] & (1 << (framenum % 8))))
continue;
+ fdata = sharkd_get_frame(framenum);
+
msec_rel = (fdata->abs_ts.secs - start_ts->secs) * (gint64) 1000 + (fdata->abs_ts.nsecs - start_ts->nsecs) / 1000000;
new_idx = msec_rel / interval_ms;
@@ -3312,7 +3315,7 @@ sharkd_session_process_setcomment(char *buf, const jsmntok_t *tokens, int count)
if (!tok_frame || !ws_strtou32(tok_frame, NULL, &framenum) || framenum == 0)
return;
- fdata = frame_data_sequence_find(cfile.frame_set_info.frames, framenum);
+ fdata = sharkd_get_frame(framenum);
if (!fdata)
return;