diff options
author | Tor Andersson <tor@ghostscript.com> | 2009-08-23 16:28:30 +0200 |
---|---|---|
committer | Tor Andersson <tor@ghostscript.com> | 2009-08-23 16:28:30 +0200 |
commit | 0a55e4405b4ac22e3ff320d78a82b6216f32ad2a (patch) | |
tree | 6c995763aaff4977ef840348efc6e3fe48c75fd4 | |
parent | 2fc16b96f00bbf0fa7c285d900c7fa9d8314b10f (diff) | |
download | mupdf-0a55e4405b4ac22e3ff320d78a82b6216f32ad2a.tar.xz |
Fix reference counting of page resource dictionary.
-rw-r--r-- | mupdf/pdf_page.c | 8 |
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) |