Blob Blame History Raw
diff -up ghostscript-8.62/src/gdevbbox.c.r8591 ghostscript-8.62/src/gdevbbox.c
--- ghostscript-8.62/src/gdevbbox.c.r8591	2007-09-25 14:31:24.000000000 +0100
+++ ghostscript-8.62/src/gdevbbox.c	2008-06-23 12:56:33.000000000 +0100
@@ -755,7 +755,21 @@ bbox_fill_path(gx_device * dev, const gs
 	 dev_proc(tdev, fill_path));
     int code;
 
-    if (!GX_DC_IS_TRANSPARENT(pdevc, bdev) && !gx_path_is_void(ppath)) {
+    if (ppath == NULL) {
+	/* A special handling of shfill with no path. */
+	gs_fixed_rect ibox;
+	gs_fixed_point adjust;
+
+	if (pcpath == NULL)
+	    return 0;
+	gx_cpath_inner_box(pcpath, &ibox);
+	adjust = params->adjust;
+	if (params->fill_zero_width)
+	    gx_adjust_if_empty(&ibox, &adjust);
+	adjust_box(&ibox, adjust);
+	BBOX_ADD_RECT(bdev, ibox.p.x, ibox.p.y, ibox.q.x, ibox.q.y);
+	return 0;
+    } else if (!GX_DC_IS_TRANSPARENT(pdevc, bdev) && !gx_path_is_void(ppath)) {
 	gs_fixed_rect ibox;
 	gs_fixed_point adjust;