summaryrefslogtreecommitdiff
path: root/tree/image.c
diff options
context:
space:
mode:
authorTor Andersson <tor@ghostscript.com>2004-11-11 07:52:33 +0100
committerTor Andersson <tor@ghostscript.com>2004-11-11 07:52:33 +0100
commit1be84ed1d4fbe44387222995a124a4f84ee55210 (patch)
tree4748ea9933e543fbde652857444b416cc16361d0 /tree/image.c
parent58de1fff510078e3d2d8cfce033c87299adf78f0 (diff)
downloadmupdf-1be84ed1d4fbe44387222995a124a4f84ee55210.tar.xz
fitz tree resource reference counting
Diffstat (limited to 'tree/image.c')
-rw-r--r--tree/image.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/tree/image.c b/tree/image.c
index 16a1c817..c448f41a 100644
--- a/tree/image.c
+++ b/tree/image.c
@@ -1,9 +1,20 @@
#include <fitz.h>
-void fz_dropimage(fz_image *image)
+fz_image *
+fz_keepimage(fz_image *image)
{
- if (image->drop)
- image->drop(image);
- fz_free(image);
+ image->nrefs ++;
+ return image;
+}
+
+void
+fz_dropimage(fz_image *image)
+{
+ if (--image->nrefs == 0)
+ {
+ if (image->drop)
+ image->drop(image);
+ fz_free(image);
+ }
}