diff options
author | Robin Watts <Robin.Watts@artifex.com> | 2017-06-29 23:46:28 +0100 |
---|---|---|
committer | Robin Watts <robin.watts@artifex.com> | 2017-06-30 14:29:59 +0100 |
commit | f01b9010625977956fc27a384335c9599681bcbf (patch) | |
tree | 3d56e6a6b8a6e09ca11b9bf68fc4b8273330d58f | |
parent | 8ddbbcacf10ea6943191fcce387afcc9e2cfc9b1 (diff) | |
download | mupdf-f01b9010625977956fc27a384335c9599681bcbf.tar.xz |
Tweak Memento: make ref counting advance events.
-rw-r--r-- | source/fitz/memento.c | 24 |
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++; } |