diff options
author | Jakub Zawadzki <darkjames-ws@darkjames.pl> | 2012-09-23 16:25:28 +0000 |
---|---|---|
committer | Jakub Zawadzki <darkjames-ws@darkjames.pl> | 2012-09-23 16:25:28 +0000 |
commit | 72ca9d0e614945d09322a2210cb43f2ec41554c6 (patch) | |
tree | eface143fd680320fa924d005e676b85f64e72e6 /epan/frame_data.h | |
parent | 9cde3e1a44e874ac5beb9e539dd4819a1281a096 (diff) |
Store pointers to previously displayed and captured packet, not nstime_t deltas.
This commit reduces size (from 144B to 128B on AMD64) of frame_data structure.
Part of bug 5821: Reduce per-packet memory requirements.
svn path=/trunk/; revision=45071
Diffstat (limited to 'epan/frame_data.h')
-rw-r--r-- | epan/frame_data.h | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/epan/frame_data.h b/epan/frame_data.h index 290693b4c9..87994cabf1 100644 --- a/epan/frame_data.h +++ b/epan/frame_data.h @@ -66,8 +66,8 @@ typedef struct _frame_data { nstime_t abs_ts; /**< Absolute timestamp */ nstime_t shift_offset; /**< How much the abs_tm of the frame is shifted */ nstime_t rel_ts; /**< Relative timestamp (yes, it can be negative) */ - nstime_t del_dis_ts; /**< Delta timestamp to previous displayed frame (yes, it can be negative) */ - nstime_t del_cap_ts; /**< Delta timestamp to previous captured frame (yes, it can be negative) */ + const struct _frame_data *prev_dis; /**< Previous displayed frame */ + const struct _frame_data *prev_cap; /**< Previous captured frame */ gchar *opt_comment; /**< NULL if not available */ } frame_data; @@ -103,18 +103,20 @@ extern void frame_data_cleanup(frame_data *fdata); extern void frame_data_init(frame_data *fdata, guint32 num, const struct wtap_pkthdr *phdr, gint64 offset, guint32 cum_bytes); + +extern void frame_delta_abs_time(const frame_data *fdata, + const frame_data *prev, nstime_t *delta); /** * Sets the frame data struct values before dissection. */ extern void frame_data_set_before_dissect(frame_data *fdata, nstime_t *elapsed_time, nstime_t *first_ts, - nstime_t *prev_dis_ts, - nstime_t *prev_cap_ts); + const frame_data *prev_dis, + const frame_data *prev_cap); extern void frame_data_set_after_dissect(frame_data *fdata, - guint32 *cum_bytes, - nstime_t *prev_dis_ts); + guint32 *cum_bytes); #endif /* __FRAME_DATA__ */ |