summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mupdf/pdf_build.c2
-rw-r--r--mupdf/pdf_fontfilems.c7
-rw-r--r--mupdf/pdf_interpret.c8
-rw-r--r--mupdf/pdf_pattern.c15
-rw-r--r--raster/render.c4
-rw-r--r--world/res_colorspace.c2
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);