summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Rasmussen <sebras@hotmail.com>2009-12-03 00:04:00 +0100
committerSebastian Rasmussen <sebras@hotmail.com>2009-12-03 00:04:00 +0100
commit02cc12ac3d22e36454fa8564fbe8c111f44d09b7 (patch)
treed327c6c176ff074c713f79fd2c5f9de8b44ea5d2
parent3be1bce8a819bcb7ea0b5a09822b1c3e0b8d0bee (diff)
downloadmupdf-02cc12ac3d22e36454fa8564fbe8c111f44d09b7.tar.xz
Remove unnecessary resolve when loading page contents.
-rw-r--r--mupdf/pdf_page.c46
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;