summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Watts <Robin.Watts@artifex.com>2017-06-29 23:46:28 +0100
committerRobin Watts <robin.watts@artifex.com>2017-06-30 14:29:59 +0100
commitf01b9010625977956fc27a384335c9599681bcbf (patch)
tree3d56e6a6b8a6e09ca11b9bf68fc4b8273330d58f
parent8ddbbcacf10ea6943191fcce387afcc9e2cfc9b1 (diff)
downloadmupdf-f01b9010625977956fc27a384335c9599681bcbf.tar.xz
Tweak Memento: make ref counting advance events.
-rw-r--r--source/fitz/memento.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/source/fitz/memento.c b/source/fitz/memento.c
index 46fbbe75..330fc359 100644
--- a/source/fitz/memento.c
+++ b/source/fitz/memento.c
@@ -1869,33 +1869,49 @@ static void do_reference(Memento_BlkHeader *blk, int event)
#endif /* MEMENTO_DETAILS */
}
-void *Memento_takeRef(void *blk)
+static void *do_takeRef(void *blk)
{
if (blk)
do_reference(safe_find_block(blk), Memento_EventType_takeRef);
return blk;
}
-void *Memento_dropRef(void *blk)
+void *Memento_takeRef(void *blk)
+{
+ if (Memento_event()) Memento_breakpoint();
+
+ return do_takeRef(blk);
+}
+
+static void *do_dropRef(void *blk)
{
if (blk)
do_reference(safe_find_block(blk), Memento_EventType_dropRef);
return blk;
}
+void *Memento_dropRef(void *blk)
+{
+ if (Memento_event()) Memento_breakpoint();
+
+ return do_dropRef(blk);
+}
+
void *Memento_adjustRef(void *blk, int adjust)
{
+ if (Memento_event()) Memento_breakpoint();
+
if (blk == NULL)
return NULL;
while (adjust > 0)
{
- Memento_takeRef(blk);
+ do_takeRef(blk);
adjust--;
}
while (adjust < 0)
{
- Memento_dropRef(blk);
+ do_dropRef(blk);
adjust++;
}