summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/mupdf/pdf/object.h1
-rw-r--r--source/pdf/pdf-object.c13
2 files changed, 14 insertions, 0 deletions
diff --git a/include/mupdf/pdf/object.h b/include/mupdf/pdf/object.h
index cfae8645..5bc3dcaf 100644
--- a/include/mupdf/pdf/object.h
+++ b/include/mupdf/pdf/object.h
@@ -95,6 +95,7 @@ void pdf_array_push_drop(fz_context *ctx, pdf_obj *array, pdf_obj *obj);
void pdf_array_insert(fz_context *ctx, pdf_obj *array, pdf_obj *obj, int index);
void pdf_array_insert_drop(fz_context *ctx, pdf_obj *array, pdf_obj *obj, int index);
void pdf_array_delete(fz_context *ctx, pdf_obj *array, int index);
+int pdf_array_find(fz_context *ctx, pdf_obj *array, pdf_obj *obj);
int pdf_array_contains(fz_context *ctx, pdf_obj *array, pdf_obj *obj);
int pdf_dict_len(fz_context *ctx, pdf_obj *dict);
diff --git a/source/pdf/pdf-object.c b/source/pdf/pdf-object.c
index 8fcbceda..10eb6690 100644
--- a/source/pdf/pdf-object.c
+++ b/source/pdf/pdf-object.c
@@ -808,6 +808,19 @@ pdf_array_contains(fz_context *ctx, pdf_obj *arr, pdf_obj *obj)
return 0;
}
+int
+pdf_array_find(fz_context *ctx, pdf_obj *arr, pdf_obj *obj)
+{
+ int i, len;
+
+ len = pdf_array_len(ctx, arr);
+ for (i = 0; i < len; i++)
+ if (!pdf_objcmp(ctx, pdf_array_get(ctx, arr, i), obj))
+ return i;
+
+ return -1;
+}
+
pdf_obj *pdf_new_rect(fz_context *ctx, pdf_document *doc, const fz_rect *rect)
{
pdf_obj *arr = NULL;