diff options
author | Sebastian Rasmussen <sebras@hotmail.com> | 2009-12-03 00:04:00 +0100 |
---|---|---|
committer | Sebastian Rasmussen <sebras@hotmail.com> | 2009-12-03 00:04:00 +0100 |
commit | 02cc12ac3d22e36454fa8564fbe8c111f44d09b7 (patch) | |
tree | d327c6c176ff074c713f79fd2c5f9de8b44ea5d2 | |
parent | 3be1bce8a819bcb7ea0b5a09822b1c3e0b8d0bee (diff) | |
download | mupdf-02cc12ac3d22e36454fa8564fbe8c111f44d09b7.tar.xz |
Remove unnecessary resolve when loading page contents.
-rw-r--r-- | mupdf/pdf_page.c | 46 |
1 files changed, 13 insertions, 33 deletions
diff --git a/mupdf/pdf_page.c b/mupdf/pdf_page.c index 18d6fb53..1be6d748 100644 --- a/mupdf/pdf_page.c +++ b/mupdf/pdf_page.c @@ -85,52 +85,32 @@ runmany(pdf_csi *csi, pdf_xref *xref, fz_obj *rdb, fz_obj *list) } static fz_error -loadpagecontents(fz_tree **treep, pdf_xref *xref, fz_obj *rdb, fz_obj *ref) +loadpagecontents(fz_tree **treep, pdf_xref *xref, fz_obj *rdb, fz_obj *obj) { - fz_error error; - fz_obj *obj; + fz_error error = fz_okay; pdf_csi *csi; error = pdf_newcsi(&csi, 0); if (error) return fz_rethrow(error, "cannot create interpreter"); - if (fz_isindirect(ref)) + if (fz_isarray(obj)) { - obj = fz_resolveindirect(ref); - - if (fz_isarray(obj)) - { - if (fz_arraylen(obj) == 1) - error = runone(csi, xref, rdb, fz_arrayget(obj, 0)); - else - error = runmany(csi, xref, rdb, obj); - } + if (fz_arraylen(obj) == 1) + error = runone(csi, xref, rdb, fz_arrayget(obj, 0)); else - error = runone(csi, xref, rdb, ref); - - if (error) - { - pdf_dropcsi(csi); - return fz_rethrow(error, "cannot interpret page contents (%d %d R)", fz_tonum(ref), fz_togen(ref)); - } + error = runmany(csi, xref, rdb, obj); } + else if (pdf_isstream(xref, fz_tonum(obj), fz_togen(obj))) + error = runone(csi, xref, rdb, obj); + else + fz_warn("page contents missing, leaving page blank"); - else if (fz_isarray(ref)) + if (obj && error) { - if (fz_arraylen(ref) == 1) - error = runone(csi, xref, rdb, fz_arrayget(ref, 0)); - else - error = runmany(csi, xref, rdb, ref); - - if (error) - { - pdf_dropcsi(csi); - return fz_rethrow(error, "cannot interpret page contents (%d %d R)", fz_tonum(ref), fz_togen(ref)); - } + pdf_dropcsi(csi); + return fz_rethrow(error, "cannot interpret page contents (%d %d R)", fz_tonum(obj), fz_togen(obj)); } - else - fz_warn("page contents missing, leaving page blank"); *treep = csi->tree; csi->tree = nil; |