summaryrefslogtreecommitdiff
path: root/src/utils/vector.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/vector.c')
-rw-r--r--src/utils/vector.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/utils/vector.c b/src/utils/vector.c
index a289b61..1ffa8a3 100644
--- a/src/utils/vector.c
+++ b/src/utils/vector.c
@@ -179,6 +179,26 @@ const void *parserutils_vector_iterate(const parserutils_vector *vector,
return item;
}
+/**
+ * Peek at an item in a vector
+ *
+ * \param vector The vector to iterate over
+ * \param ctx Integer for the iterator to use as context.
+ * \return Pointer to item, or NULL if no more
+ */
+const void *parserutils_vector_peek(const parserutils_vector *vector,
+ int32_t ctx)
+{
+ if (vector == NULL || vector->current_item < 0)
+ return NULL;
+
+ if (ctx > vector->current_item)
+ return NULL;
+
+ return (uint8_t *) vector->items + (ctx * vector->item_size);
+}
+
+
#ifndef NDEBUG
#include <stdio.h>