all devices regression report - 2017-10-17-03:13:10 - 9219b1e5febd646f6d87bc424b41237a50529d0d
| Newsgroups | gmane.comp.printing.ghostscript.regression |
|---|---|
| Message-ID | <20171017101311.0C6AB20401E8@i7> |
Differences in all devices errors using gs/examples files Previous Revision: 05432a551f887d7526b2bf3c65f3f1740cb3cc48 Current Revision: 9219b1e5febd646f6d87bc424b41237a50529d0d commit 9219b1e5febd646f6d87bc424b41237a50529d0d Author: Ken Sharp <[email protected]> AuthorDate: Tue Oct 17 10:16:51 2017 +0100 CommitDate: Tue Oct 17 10:16:51 2017 +0100 Page selection device - fix overprint compositor usage Bug #698568 "Ghostscript segmentation fault when doing page selection" The PostScript interpreter uses the current device in the graphics state, and calls the create_compositor() method when overprint is set to true. This may or may not insert a new compositor device into the graphics state, and whether it does or not is controlled by the return from the method. If the device is the same as the one in the graphics state then we don't set a new device, if its different then we set the returned device. The page selection device wasn't initialising this parameter, and if we were skipping the page we didn't call the child device method, which meant we returned an uninitialised pointer to the caller. Since this was unlikely to be the same as the current device, we ended up trying to set the device in the graphics state to an uninitialised pointer, with predictably disastrous results. The simple fix is to initialise the pointer to the current device in the graphics state. If we call the child method, and it wants a new compositor then it will overwrite it, if it doesn't, or we are skipping the page, then we return the current device and nothing changes. No differences expected. base/gdevflp.c new errors: errors that went away: errors that are not whitelisted: === ghostpdl/examples/transparency_example.ps === cp50 === === ghostpdl/examples/transparency_example.ps === psdrgb ===