Bug 689769 - pksmraw output produces blank pages
Summary: pksmraw output produces blank pages
Status: RESOLVED FIXED
Alias: None
Product: Ghostscript
Classification: Unclassified
Component: Regression (show other bugs)
Version: 8.62
Hardware: Other Linux
: P4 normal
Assignee: Ray Johnston
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-03-27 05:36 UTC by David Woodhouse
Modified: 2009-02-03 12:13 UTC (History)
0 users

See Also:
Customer:
Word Size: ---


Attachments
prolog.ps (2.06 KB, text/plain)
2008-03-27 05:36 UTC, David Woodhouse
Details
mozilla.ps (594.94 KB, text/plain)
2008-03-27 05:37 UTC, David Woodhouse
Details

Note You need to log in before you can comment on or make changes to this bug.
Description David Woodhouse 2008-03-27 05:36:19 UTC
After upgrading from ghostscript 8.61 to 8.62 I now get blank pages.

The offending commit seems to be revision 8426:
    "Fix (clist interpreter) : Skip idle compositors, step 3"

A sample command line is this:

bin/gs -q -dBATCH -dSAFER -dQUIET -dNOPAUSE -sPAPERSIZE=a4 -g9920x7016
-r1200x600 -sDEVICE=pksmraw -dCOLORSCREEN -sOutputFile=testpage.pksmraw
prolog.ps mozilla.ps
Comment 1 David Woodhouse 2008-03-27 05:36:49 UTC
Created attachment 3898 [details]
prolog.ps
Comment 2 David Woodhouse 2008-03-27 05:37:24 UTC
Created attachment 3899 [details]
mozilla.ps
Comment 3 David Woodhouse 2008-03-27 06:13:01 UTC
The offending part of the patch is in apply_create_compositor() at about line
2409 of src/gxclrast.c, where it adds 'if (code < 0) return code;' after the
create_compositor() call.

Removing those two lines (which seem to be a fix unrelated to the rest of the
patch and perhaps should have been committed separately) makes it work again.

In the test case above, it's calling gx_no_create_compositor(), which always
returns an error.
Comment 4 David Woodhouse 2008-03-27 06:40:54 UTC
Not sure whether this is a correct fix, but it's certainly sufficient to make
8.62 work again for me:

--- a/src/gxclrast.c
+++ b/src/gxclrast.c
@@ -2399,8 +2406,6 @@ static int apply_create_compositor(gx_device_clist_reader
*cdev, gs_imager_state
         rc_increment(tdev);
         *ptarget = tdev;
     }
-    if (code < 0)
-        return code;
 
     /* Perform any updates for the clist device required */
     code = pcomp->type->procs.clist_compositor_read_update(pcomp,
Comment 5 Ray Johnston 2009-02-03 12:13:02 UTC
This is fixed in 8.64 (just released) please upgrade.