summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'pdf/pdf_array.h')
-rw-r--r--pdf/pdf_array.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/pdf/pdf_array.h b/pdf/pdf_array.h
index f118737e..37097aaa 100644
--- a/pdf/pdf_array.h
+++ b/pdf/pdf_array.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018-2021 Artifex Software, Inc.
+/* Copyright (C) 2018-2022 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -20,12 +20,25 @@
static inline uint64_t pdfi_array_size(pdf_array *a) { return a->size; }
+int pdfi_array_fetch(pdf_context *ctx, pdf_array *a, uint64_t index, pdf_obj **o, bool setref, bool cache);
+/* The object returned by pdfi_array_get has its reference count incremented by 1 to
+ * indicate the reference now held by the caller, in **o.
+ */
+static int inline pdfi_array_get(pdf_context *ctx, pdf_array *a, uint64_t index, pdf_obj **o)
+{
+ return pdfi_array_fetch(ctx, a, index, o, true, true);
+}
+
+static int inline pdfi_array_get_nocache(pdf_context *ctx, pdf_array *a, uint64_t index, pdf_obj **o)
+{
+ return pdfi_array_fetch(ctx, a, index, o, true, false);
+}
+
void pdfi_free_array(pdf_obj *o);
int pdfi_array_alloc(pdf_context *ctx, uint64_t size, pdf_array **a);
int pdfi_array_from_stack(pdf_context *ctx, uint32_t indirect_num, uint32_t indirect_gen);
int pdfi_array_get_no_deref(pdf_context *ctx, pdf_array *a, uint64_t index, pdf_obj **o);
int pdfi_array_get_no_store_R(pdf_context *ctx, pdf_array *a, uint64_t index, pdf_obj **o);
-int pdfi_array_get(pdf_context *ctx, pdf_array *a, uint64_t index, pdf_obj **o);
int pdfi_array_get_type(pdf_context *ctx, pdf_array *a, uint64_t index, pdf_obj_type t, pdf_obj **o);
int pdfi_array_get_int(pdf_context *ctx, pdf_array *a, uint64_t index, int64_t *i);
int pdfi_array_get_number(pdf_context *ctx, pdf_array *a, uint64_t index, double *f);