summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/index.h')
-rw-r--r--src/core/index.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/core/index.h b/src/core/index.h
index 66b2540..e791805 100644
--- a/src/core/index.h
+++ b/src/core/index.h
@@ -3,6 +3,21 @@
#include "index_types.h"
+#if JH_INDEX_MAX >= SIZE_MAX
+#define JH_index_cannot_allocate_more(type_size, counter) \
+ (\
+ (((size_t) (counter)) == SIZE_MAX) \
+ || ((counter) == JH_INDEX_MAX) \
+ || ((((size_t) (counter)) + 1) > (SIZE_MAX / (type_size))) \
+ )
+#else
+#define JH_index_cannot_allocate_more(type_size, counter) \
+ (\
+ ((counter) == JH_INDEX_MAX) \
+ || ((((size_t) (counter)) + 1) > (SIZE_MAX / (type_size))) \
+ )
+#endif
+
/*
* Returns a random JH_index.
*/