summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Andersson <tor@ghostscript.com>2009-08-23 16:28:30 +0200
committerTor Andersson <tor@ghostscript.com>2009-08-23 16:28:30 +0200
commit0a55e4405b4ac22e3ff320d78a82b6216f32ad2a (patch)
tree6c995763aaff4977ef840348efc6e3fe48c75fd4
parent2fc16b96f00bbf0fa7c285d900c7fa9d8314b10f (diff)
downloadmupdf-0a55e4405b4ac22e3ff320d78a82b6216f32ad2a.tar.xz
Fix reference counting of page resource dictionary.
-rw-r--r--mupdf/pdf_page.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/mupdf/pdf_page.c b/mupdf/pdf_page.c
index ea98ab54..c4e39fab 100644
--- a/mupdf/pdf_page.c
+++ b/mupdf/pdf_page.c
@@ -226,7 +226,9 @@ pdf_loadpage(pdf_page **pagep, pdf_xref *xref, fz_obj *dict)
*/
rdb = fz_dictgets(dict, "Resources");
- if (!rdb)
+ if (rdb)
+ rdb = fz_keepobj(rdb);
+ else
{
fz_warn("cannot find page resources, proceeding anyway.");
error = fz_newdict(&rdb, 0);
@@ -273,7 +275,7 @@ pdf_loadpage(pdf_page **pagep, pdf_xref *xref, fz_obj *dict)
page->mediabox.x1 = MAX(bbox.x0, bbox.x1);
page->mediabox.y1 = MAX(bbox.y0, bbox.y1);
page->rotate = rotate;
- page->resources = rdb;
+ page->resources = rdb; /* we have already kept or created it */
page->tree = tree;
page->comments = comments;
@@ -290,6 +292,8 @@ pdf_droppage(pdf_page *page)
{
pdf_logpage("drop page %p\n", page);
/* if (page->comments) pdf_dropcomment(page->comments); */
+ if (page->resources)
+ fz_dropobj(page->resources);
if (page->links)
pdf_droplink(page->links);
if (page->tree)