diff options
author | Glenn Kennard <glenn.kennard@gmail.com> | 2008-04-23 01:02:31 +0200 |
---|---|---|
committer | Glenn Kennard <glenn.kennard@gmail.com> | 2008-04-23 01:02:31 +0200 |
commit | 6d67c7dd5179e42a4fb8c1934cda316525128d55 (patch) | |
tree | a0305f8f37584096fdeedbdbc7071b4c7c095446 | |
parent | 59fa647f92d3fc9892a2da7ac49be5479c2a9f3f (diff) | |
download | mupdf-6d67c7dd5179e42a4fb8c1934cda316525128d55.tar.xz |
Misc cleanups
Fix refcount error in xobject resource inheritance from parent.
Convert a printf to a proper log message.
Don't leak FindFirstFile handle in pdf_createfontlistMS.
-rw-r--r-- | mupdf/pdf_build.c | 2 | ||||
-rw-r--r-- | mupdf/pdf_fontfilems.c | 7 | ||||
-rw-r--r-- | mupdf/pdf_interpret.c | 8 | ||||
-rw-r--r-- | mupdf/pdf_pattern.c | 15 | ||||
-rw-r--r-- | raster/render.c | 4 | ||||
-rw-r--r-- | world/res_colorspace.c | 2 |
6 files changed, 20 insertions, 18 deletions
diff --git a/mupdf/pdf_build.c b/mupdf/pdf_build.c index f3e33768..bbfe0a97 100644 --- a/mupdf/pdf_build.c +++ b/mupdf/pdf_build.c @@ -446,7 +446,7 @@ addshadeshape(pdf_gstate *gs, fz_node *shape, fz_shade *shade) return fz_rethrow(error, "cannot create over node for background color"); } - error = fz_newsolidnode(&bgnd, 1.0, shade->cs, shade->cs->n, shade->background); + error = fz_newsolidnode(&bgnd, 1.0f, shade->cs, shade->cs->n, shade->background); if (error) { fz_dropnode(over); diff --git a/mupdf/pdf_fontfilems.c b/mupdf/pdf_fontfilems.c index d9585774..26a4ea6a 100644 --- a/mupdf/pdf_fontfilems.c +++ b/mupdf/pdf_fontfilems.c @@ -604,13 +604,12 @@ pdf_createfontlistMS() } } } + // Let go of find handle + FindClose(hList); removeredundancy(&fontlistMS); -cleanup: - if(err) - fz_abort(err); - return nil; + return fz_okay; } void diff --git a/mupdf/pdf_interpret.c b/mupdf/pdf_interpret.c index 10835131..f6908312 100644 --- a/mupdf/pdf_interpret.c +++ b/mupdf/pdf_interpret.c @@ -865,6 +865,11 @@ Lsetcolor: if (xobj) { int istransparency = 0; + + /* Inherit parent resources, in case this one was empty */ + if (!xobj->resources) + xobj->resources = fz_keepobj(rdb); + clearstack(csi); /* check if it is a Transparency group */ obj = fz_dictgets(dict, "Group"); @@ -874,8 +879,7 @@ Lsetcolor: if (!strcmp(fz_toname(obj), "Transparency")) istransparency = 1; } - if (!xobj->resources) - xobj->resources = rdb; + error = runxobject(csi, xref, xobj, istransparency); if (error) return fz_rethrow(error, "cannot draw xobject"); diff --git a/mupdf/pdf_pattern.c b/mupdf/pdf_pattern.c index e63c16fb..955ed46b 100644 --- a/mupdf/pdf_pattern.c +++ b/mupdf/pdf_pattern.c @@ -69,6 +69,14 @@ pdf_loadpattern(pdf_pattern **patp, pdf_xref *xref, fz_obj *dict, fz_obj *stmref pat->matrix.c, pat->matrix.d, pat->matrix.e, pat->matrix.f); + /* Store pattern now, to avoid possible recursion if objects refer back to this one */ + error = pdf_storeitem(xref->store, PDF_KPATTERN, stmref, pat); + if (error) + { + error = fz_rethrow(error, "cannot store pattern resource"); + goto cleanup; + } + /* * Resources */ @@ -143,13 +151,6 @@ pdf_loadpattern(pdf_pattern **patp, pdf_xref *xref, fz_obj *dict, fz_obj *stmref pdf_logrsrc("}\n"); - error = pdf_storeitem(xref->store, PDF_KPATTERN, stmref, pat); - if (error) - { - error = fz_rethrow(error, "cannot store pattern resource"); - goto cleanup; - } - *patp = pat; return fz_okay; diff --git a/raster/render.c b/raster/render.c index b9748ca8..d83f72eb 100644 --- a/raster/render.c +++ b/raster/render.c @@ -184,8 +184,6 @@ DEBUG("solid %s [%d %d %d %d];\n", solid->cs->name, gc->argb[0], gc->argb[1], gc * Path */ -enum { HS = 17, VS = 15, SF = 1 }; - static fz_error * renderpath(fz_renderer *gc, fz_pathnode *path, fz_matrix ctm) { @@ -205,7 +203,7 @@ renderpath(fz_renderer *gc, fz_pathnode *path, fz_matrix ctm) { float lw = path->linewidth; /* Check for hairline */ - if (lw * expansion < 0.2) { + if (lw * expansion < 0.1) { lw = 1.0f / expansion; } if (path->dash) diff --git a/world/res_colorspace.c b/world/res_colorspace.c index 1d5ee1ae..a66a0203 100644 --- a/world/res_colorspace.c +++ b/world/res_colorspace.c @@ -65,7 +65,7 @@ fz_stdconvpixmap(fz_colorspace *srcs, fz_pixmap *src, fz_colorspace *dsts, fz_pi unsigned char *s = src->samples; unsigned char *d = dst->samples; - printf("convert pixmap from %s to %s\n", srcs->name, dsts->name); + pdf_logimage("convert pixmap from %s to %s\n", srcs->name, dsts->name); assert(src->w == dst->w && src->h == dst->h); assert(src->n == srcs->n + 1); |