summaryrefslogtreecommitdiff
path: root/src/pdf_bridge.h
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-08-09 10:41:33 -0300
committerGabriel Schneider <[email protected]>2026-08-10 09:17:07 -0300
commit9085cb5bfdd0b78ff3a62c0c71fc231dd7b5052a (patch)
tree91fce278abc85e4f7491de8b5f02184c8a2d5a56 /src/pdf_bridge.h
parent2b1fac6fecbf7d7cc08f9dad24687b05e9968c9a (diff)
downloadpardes-9085cb5bfdd0b78ff3a62c0c71fc231dd7b5052a.tar.gz
pardes-9085cb5bfdd0b78ff3a62c0c71fc231dd7b5052a.zip
replace ArrayLists with bounded storage
Diffstat (limited to 'src/pdf_bridge.h')
-rw-r--r--src/pdf_bridge.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/pdf_bridge.h b/src/pdf_bridge.h
index bda1eea1..40eaa46c 100644
--- a/src/pdf_bridge.h
+++ b/src/pdf_bridge.h
@@ -14,6 +14,27 @@ extern "C" {
*/
typedef struct pardes_pdf_document pardes_pdf_document;
+typedef void *(*pardes_pdf_alloc_fn)(void *user, size_t size);
+typedef void *(*pardes_pdf_realloc_fn)(
+ void *user,
+ void *pointer,
+ size_t size
+);
+typedef void (*pardes_pdf_free_fn)(void *user, void *pointer);
+
+typedef struct pardes_pdf_allocator {
+ void *user;
+ pardes_pdf_alloc_fn alloc;
+ pardes_pdf_realloc_fn realloc;
+ pardes_pdf_free_fn free;
+} pardes_pdf_allocator;
+
+/*
+ * Install one process-global allocator, or restore libc/default MuPDF
+ * allocation by passing NULL. Changing it while a document is live fails.
+ */
+int pardes_pdf_set_allocator(const pardes_pdf_allocator *allocator);
+
typedef struct pardes_pdf_raster_layout {
int width;
int height;