27 lines
948 B
Diff
27 lines
948 B
Diff
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;
|
|
|