summaryrefslogtreecommitdiff
path: root/epan/tvbuff_subset.c
diff options
context:
space:
mode:
authorJakub Zawadzki <darkjames-ws@darkjames.pl>2013-07-14 08:41:04 +0000
committerJakub Zawadzki <darkjames-ws@darkjames.pl>2013-07-14 08:41:04 +0000
commit2131f2250837f40595968c5fb52f6bcc3e165064 (patch)
tree168f28b3cbe6a7c1cfa36912771fefa94d98c70c /epan/tvbuff_subset.c
parentb3e0623e5ca3661404db30e9a702b1c11ad6e5d9 (diff)
downloadwireshark-2131f2250837f40595968c5fb52f6bcc3e165064.tar.gz
Rewrite packet-mime-encap to use composite tvbs + cloning
svn path=/trunk/; revision=50571
Diffstat (limited to 'epan/tvbuff_subset.c')
-rw-r--r--epan/tvbuff_subset.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/epan/tvbuff_subset.c b/epan/tvbuff_subset.c
index fe327fecbe..a06d60ea09 100644
--- a/epan/tvbuff_subset.c
+++ b/epan/tvbuff_subset.c
@@ -131,7 +131,6 @@ tvb_new_with_subset(tvbuff_t *backing, const gint reported_length,
tvb->reported_length = reported_length;
}
tvb->initialized = TRUE;
- tvb_add_to_chain(backing, tvb);
/* Optimization. If the backing buffer has a pointer to contiguous, real data,
* then we can point directly to our starting offset in that buffer */
@@ -166,6 +165,8 @@ tvb_new_subset(tvbuff_t *backing, const gint backing_offset, const gint backing_
tvb = tvb_new_with_subset(backing, reported_length,
subset_tvb_offset, subset_tvb_length);
+ tvb_add_to_chain(backing, tvb);
+
return tvb;
}
@@ -196,6 +197,8 @@ tvb_new_subset_length(tvbuff_t *backing, const gint backing_offset, const gint b
tvb = tvb_new_with_subset(backing, backing_length,
subset_tvb_offset, subset_tvb_length);
+ tvb_add_to_chain(backing, tvb);
+
return tvb;
}
@@ -213,5 +216,13 @@ tvb_new_subset_remaining(tvbuff_t *backing, const gint backing_offset)
tvb = tvb_new_with_subset(backing, -1 /* reported_length */,
subset_tvb_offset, subset_tvb_length);
+ tvb_add_to_chain(backing, tvb);
+
return tvb;
}
+
+tvbuff_t *
+tvb_new_temporary(tvbuff_t *backing)
+{
+ return tvb_new_with_subset(backing, backing->reported_length, 0, backing->length);
+}