summaryrefslogtreecommitdiff
path: root/src/pdf_bridge.h
diff options
context:
space:
mode:
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;