aboutsummaryrefslogtreecommitdiffstats
path: root/epan/frame_data.h
diff options
context:
space:
mode:
authorJakub Zawadzki <darkjames-ws@darkjames.pl>2012-09-23 16:25:28 +0000
committerJakub Zawadzki <darkjames-ws@darkjames.pl>2012-09-23 16:25:28 +0000
commit72ca9d0e614945d09322a2210cb43f2ec41554c6 (patch)
treeeface143fd680320fa924d005e676b85f64e72e6 /epan/frame_data.h
parent9cde3e1a44e874ac5beb9e539dd4819a1281a096 (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.h14
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__ */