summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Zawadzki <darkjames-ws@darkjames.pl>2013-12-23 18:06:33 +0000
committerJakub Zawadzki <darkjames-ws@darkjames.pl>2013-12-23 18:06:33 +0000
commit8c870995f038dd37770711b20c5f4c0a707328d5 (patch)
treecc4d90ebdfc48e09c013f0fca19834f2706f5462
parentbcd2ecfc948fea2ef6475fe37101c900b87319a1 (diff)
downloadwireshark-8c870995f038dd37770711b20c5f4c0a707328d5.tar.gz
mp2t: avoid calling get_mp2t_conversation_data()
svn path=/trunk/; revision=54395
-rw-r--r--epan/dissectors/packet-mp2t.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/epan/dissectors/packet-mp2t.c b/epan/dissectors/packet-mp2t.c
index 22570aec68..c76eca25bb 100644
--- a/epan/dissectors/packet-mp2t.c
+++ b/epan/dissectors/packet-mp2t.c
@@ -406,12 +406,9 @@ get_frame_analysis_data(mp2t_analysis_data_t *mp2t_data, packet_info *pinfo)
}
static pid_analysis_data_t *
-get_pid_analysis(guint32 pid, conversation_t *conv)
+get_pid_analysis(mp2t_analysis_data_t *mp2t_data, guint32 pid)
{
pid_analysis_data_t *pid_data = NULL;
- mp2t_analysis_data_t *mp2t_data = NULL;
-
- mp2t_data = get_mp2t_conversation_data(conv);
pid_data = (pid_analysis_data_t *)wmem_tree_lookup32(mp2t_data->pid_table, pid);
if (!pid_data) {
@@ -816,24 +813,21 @@ calc_skips(gint32 curr, gint32 prev)
static guint32
detect_cc_drops(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
- guint32 pid, gint32 cc_curr, conversation_t *conv)
+ guint32 pid, gint32 cc_curr, mp2t_analysis_data_t *mp2t_data)
{
gint32 cc_prev = -1;
pid_analysis_data_t *pid_data = NULL;
ts_analysis_data_t *ts_data = NULL;
- mp2t_analysis_data_t *mp2t_data = NULL;
frame_analysis_data_t *frame_analysis_data_p = NULL;
proto_item *flags_item;
guint32 detected_drop = 0;
guint32 skips = 0;
- mp2t_data = get_mp2t_conversation_data(conv);
-
/* The initial sequencial processing stage */
if (!pinfo->fd->flags.visited) {
/* This is the sequencial processing stage */
- pid_data = get_pid_analysis(pid, conv);
+ pid_data = get_pid_analysis(mp2t_data, pid);
cc_prev = pid_data->cc_prev;
pid_data->cc_prev = cc_curr;
@@ -1103,6 +1097,7 @@ dissect_tsp(tvbuff_t *tvb, volatile gint offset, packet_info *pinfo,
guint8 af_length;
gint start_offset = offset;
volatile gint payload_len;
+ mp2t_analysis_data_t *mp2t_data;
pid_analysis_data_t *pid_analysis;
guint32 skips;
@@ -1146,7 +1141,9 @@ dissect_tsp(tvbuff_t *tvb, volatile gint offset, packet_info *pinfo,
afc = (header & MP2T_AFC_MASK) >> MP2T_AFC_SHIFT;
- pid_analysis = get_pid_analysis(pid, conv);
+ mp2t_data = get_mp2t_conversation_data(conv);
+
+ pid_analysis = get_pid_analysis(mp2t_data, pid);
/* Find out the payload type based on the payload */
if (pid_analysis->pload_type == pid_pload_unknown) {
@@ -1176,7 +1173,8 @@ dissect_tsp(tvbuff_t *tvb, volatile gint offset, packet_info *pinfo,
PROTO_ITEM_SET_GENERATED(item);
mp2t_analysis_tree = proto_item_add_subtree(item, ett_mp2t_analysis);
- skips = detect_cc_drops(tvb, mp2t_analysis_tree, pinfo, pid, cc, conv);
+ skips = detect_cc_drops(tvb, mp2t_analysis_tree, pinfo, pid, cc, mp2t_data);
+
if (skips > 0)
proto_item_append_text(ti, " skips=%d", skips);