From: Philippe Proulx Date: Thu, 23 Aug 2018 15:42:52 +0000 (-0400) Subject: assert-pre-internal.h: add BT_ASSERT_PRE_VALID_INDEX() X-Git-Url: http://git.efficios.com/?a=commitdiff_plain;h=c800eb3790218d2f33df01e77ec38cbd43cc02a1;p=deliverable%2Fbabeltrace.git assert-pre-internal.h: add BT_ASSERT_PRE_VALID_INDEX() This new precondition assertion macro asserts that a given index is less than a given length. Signed-off-by: Philippe Proulx --- diff --git a/include/babeltrace/assert-pre-internal.h b/include/babeltrace/assert-pre-internal.h index 38f93a2e9..e56d90ecc 100644 --- a/include/babeltrace/assert-pre-internal.h +++ b/include/babeltrace/assert-pre-internal.h @@ -117,4 +117,12 @@ BT_ASSERT_PRE(!(_obj)->frozen, "%s is frozen" _fmt, _obj_name, \ ##__VA_ARGS__) +/* + * Developer mode: asserts that a given index is less than a given size. + */ +#define BT_ASSERT_PRE_VALID_INDEX(_index, _length) \ + BT_ASSERT_PRE((_index) < (_length), \ + "Index is out of bounds: index=%" PRIu64 ", " \ + "count=%" PRIu64, (uint64_t) (_index), (uint64_t) (_length)) + #endif /* BABELTRACE_ASSERT_PRE_INTERNAL_H */