diff options
author | Sebastian Rasmussen <sebras@hotmail.com> | 2009-12-05 18:01:37 +0100 |
---|---|---|
committer | Sebastian Rasmussen <sebras@hotmail.com> | 2009-12-05 18:01:37 +0100 |
commit | a1af44ac5a8a0f94f8b8ba9fe7597422a87792e0 (patch) | |
tree | 1a281535e20a976394a1e1e319d3f9b1268b8ecb | |
parent | 2e2e97db605cc58d76033fc92c3806d475e2c262 (diff) | |
download | mupdf-a1af44ac5a8a0f94f8b8ba9fe7597422a87792e0.tar.xz |
Reference count XObject resource dicts everywhere and drop it when freeing XObject.
-rw-r--r-- | mupdf/pdf_xobject.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/mupdf/pdf_xobject.c b/mupdf/pdf_xobject.c index 831796eb..62cebb35 100644 --- a/mupdf/pdf_xobject.c +++ b/mupdf/pdf_xobject.c @@ -65,6 +65,8 @@ pdf_loadxobject(pdf_xobject **formp, pdf_xref *xref, fz_obj *dict) pdf_logrsrc("transparency %d\n", form->transparency); form->resources = fz_dictgets(dict, "Resources"); + if (form->resources) + form->resources = fz_keepobj(form->resources); error = pdf_loadstream(&form->contents, xref, fz_tonum(dict), fz_togen(dict)); if (error) @@ -98,6 +100,7 @@ pdf_dropxobject(pdf_xobject *xobj) { if (xobj && --xobj->refs == 0) { + if (xobj->resources) fz_dropobj(xobj->resources); if (xobj->contents) fz_dropbuffer(xobj->contents); fz_free(xobj); } |