summaryrefslogtreecommitdiff
path: root/include/mupdf/memento.h
diff options
context:
space:
mode:
authorRobin Watts <Robin.Watts@artifex.com>2017-07-03 13:07:29 +0100
committerRobin Watts <Robin.Watts@artifex.com>2017-07-03 14:17:54 +0100
commit9616a3d9407973c8f527ab209d6d6bc88faab281 (patch)
tree74967f54141bd6bcf3c7a465fd15dbf39dbb0b1f /include/mupdf/memento.h
parentf01b9010625977956fc27a384335c9599681bcbf (diff)
downloadmupdf-9616a3d9407973c8f527ab209d6d6bc88faab281.tar.xz
Memento: pointer checking functions.
Add some helpful functions for doing quick checks on pointer validity. Use these in the reference counting functions.
Diffstat (limited to 'include/mupdf/memento.h')
-rw-r--r--include/mupdf/memento.h78
1 files changed, 50 insertions, 28 deletions
diff --git a/include/mupdf/memento.h b/include/mupdf/memento.h
index ee9bf4fb..0776860f 100644
--- a/include/mupdf/memento.h
+++ b/include/mupdf/memento.h
@@ -217,11 +217,22 @@ void *Memento_calloc(size_t, size_t);
void Memento_info(void *addr);
void Memento_listBlockInfo(void);
+void *Memento_takeByteRef(void *blk);
+void *Memento_dropByteRef(void *blk);
+void *Memento_takeShortRef(void *blk);
+void *Memento_dropShortRef(void *blk);
+void *Memento_takeIntRef(void *blk);
+void *Memento_dropIntRef(void *blk);
void *Memento_takeRef(void *blk);
void *Memento_dropRef(void *blk);
void *Memento_adjustRef(void *blk, int adjust);
void *Memento_reference(void *blk);
+int Memento_checkPointerOrNull(void *blk);
+int Memento_checkBytePointerOrNull(void *blk);
+int Memento_checkShortPointerOrNull(void *blk);
+int Memento_checkIntPointerOrNull(void *blk);
+
void Memento_startLeaking(void);
void Memento_stopLeaking(void);
@@ -243,34 +254,45 @@ void Memento_fin(void);
#define Memento_realloc MEMENTO_UNDERLYING_REALLOC
#define Memento_calloc MEMENTO_UNDERLYING_CALLOC
-#define Memento_checkBlock(A) 0
-#define Memento_checkAllMemory() 0
-#define Memento_check() 0
-#define Memento_setParanoia(A) 0
-#define Memento_paranoidAt(A) 0
-#define Memento_breakAt(A) 0
-#define Memento_breakOnFree(A) 0
-#define Memento_breakOnRealloc(A) 0
-#define Memento_getBlockNum(A) 0
-#define Memento_find(A) 0
-#define Memento_breakpoint() do {} while (0)
-#define Memento_failAt(A) 0
-#define Memento_failThisEvent() 0
-#define Memento_listBlocks() do {} while (0)
-#define Memento_listNewBlocks() do {} while (0)
-#define Memento_setMax(A) 0
-#define Memento_stats() do {} while (0)
-#define Memento_label(A,B) (A)
-#define Memento_info(A) do {} while (0)
-#define Memento_listBlockInfo() do {} while (0)
-#define Memento_takeRef(A) (A)
-#define Memento_dropRef(A) (A)
-#define Memento_adjustRef(A,V) (A)
-#define Memento_reference(A) (A)
-#define Memento_tick() do {} while (0)
-#define Memento_startLeaking() do {} while (0)
-#define Memento_stopLeaking() do {} while (0)
-#define Memento_fin() do {} while (0)
+#define Memento_checkBlock(A) 0
+#define Memento_checkAllMemory() 0
+#define Memento_check() 0
+#define Memento_setParanoia(A) 0
+#define Memento_paranoidAt(A) 0
+#define Memento_breakAt(A) 0
+#define Memento_breakOnFree(A) 0
+#define Memento_breakOnRealloc(A) 0
+#define Memento_getBlockNum(A) 0
+#define Memento_find(A) 0
+#define Memento_breakpoint() do {} while (0)
+#define Memento_failAt(A) 0
+#define Memento_failThisEvent() 0
+#define Memento_listBlocks() do {} while (0)
+#define Memento_listNewBlocks() do {} while (0)
+#define Memento_setMax(A) 0
+#define Memento_stats() do {} while (0)
+#define Memento_label(A,B) (A)
+#define Memento_info(A) do {} while (0)
+#define Memento_listBlockInfo() do {} while (0)
+#define Memento_takeByteRef(A) (A)
+#define Memento_dropByteRef(A) (A)
+#define Memento_takeShortRef(A) (A)
+#define Memento_dropShortRef(A) (A)
+#define Memento_takeIntRef(A) (A)
+#define Memento_dropIntRef(A) (A)
+#define Memento_takeRef(A) (A)
+#define Memento_dropRef(A) (A)
+#define Memento_adjustRef(A,V) (A)
+#define Memento_reference(A) (A)
+#define Memento_checkPointerOrNull(A) 0
+#define Memento_checkBytePointerOrNull(A) 0
+#define Memento_checkShortPointerOrNull(A) 0
+#define Memento_checkIntPointerOrNull(A) 0
+
+#define Memento_tick() do {} while (0)
+#define Memento_startLeaking() do {} while (0)
+#define Memento_stopLeaking() do {} while (0)
+#define Memento_fin() do {} while (0)
#endif /* MEMENTO */