aboutsummaryrefslogtreecommitdiffstats
path: root/epan/tvbuff.h
diff options
context:
space:
mode:
authorKovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com>2009-08-16 10:53:47 +0000
committerKovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com>2009-08-16 10:53:47 +0000
commitfe6f8b92c7f1f72a0eb677f01899f1dfa07b5342 (patch)
tree5b238ca1101ce3563203839bb86e177ab1158fe6 /epan/tvbuff.h
parentc795851bebb1ed1d7a0c0302c295b55687aa315c (diff)
Add a new function, tvb_new_subset_remaining(), which is a sligtly optimized version of tvb_new_subset(). The latter can be mapped to the former by tvb_new_subset(tvb, offset, -1 /* backing_length */, -1 /* reported_length */). We can disable some bounds checking because 'backing_length' and 'reported_length' are hardcoded to -1.
The current implementation of tvb_new_subset_remaining() only has the THROW_ON(reported_length < 1) check removed when compared to tvb_new_subset(). So there's room for improvement in this function. We should be able to disable some more (redundant) bounds checking. svn path=/trunk/; revision=29445
Diffstat (limited to 'epan/tvbuff.h')
-rw-r--r--epan/tvbuff.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/epan/tvbuff.h b/epan/tvbuff.h
index 06adc07c8f..8632b4da28 100644
--- a/epan/tvbuff.h
+++ b/epan/tvbuff.h
@@ -241,6 +241,10 @@ extern void tvb_set_subset(tvbuff_t* tvb, tvbuff_t* backing,
extern tvbuff_t* tvb_new_subset(tvbuff_t* backing,
gint backing_offset, gint backing_length, gint reported_length);
+/** Similar to tvb_new_subset() but with backing_length and reported_length set to -1.
+ * Can throw ReportedBoundsError. */
+extern tvbuff_t* tvb_new_subset_remaining(tvbuff_t* backing,
+ gint backing_offset);
/** Both tvb_composite_append and tvb_composite_prepend can throw
* BoundsError if member_offset/member_length goes beyond bounds of