From f01b9010625977956fc27a384335c9599681bcbf Mon Sep 17 00:00:00 2001 From: Robin Watts Date: Thu, 29 Jun 2017 23:46:28 +0100 Subject: Tweak Memento: make ref counting advance events. --- source/fitz/memento.c | 24 ++++++++++++++++++++---- 1 file 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++; } -- cgit v1.2.3