all devices regression report - 2018-01-16-04:20:37 - e62df8bbd78e8db1cb254a6ab4c2ebf1232c6c7e
[email protected] Tue, 16 Jan 2018 04:20:37 -0800 (PST)
| Newsgroups | gmane.comp.printing.ghostscript.regression |
|---|---|
| Message-ID | <20180116122037.5574D20401D2@i7> |
Differences in all devices errors using gs/examples files Previous Revision: 4d730d2087680cff4e3b153536922406bfcf4493 Current Revision: e62df8bbd78e8db1cb254a6ab4c2ebf1232c6c7e commit e62df8bbd78e8db1cb254a6ab4c2ebf1232c6c7e Author: Ken Sharp <[email protected]> AuthorDate: Tue Jan 16 10:47:14 2018 +0000 CommitDate: Tue Jan 16 10:47:14 2018 +0000 Reduce severity of memory debug problem detection Bug #698849 "gs_abort with Bad object" The error occurs because of the combination of -Z? and -dLastPage. In order to do First/Last Page processing, we insert a subclassing device ahead of the regular device (ppmraw in this case). The subclassing works by making a new device structure, copying the existing device to it, and replacing the content of the existing device structure. This is done to maintain coherency of gsave/grestore and save/restore; the structures maintain pointers to the device in the graphics state structure, so we can't simply move it. When subclassing, we change the declared size of the structure (ssize) but we don't (can't!) change the size that the memory manager allocated in the first place. This leads to a mismatch between the declared size of the structure and the allocated size. I mentioned this in the original commit for subclassing, but noted that in normal use there is nowhere that actually checks. However, if you set -Z? then additional checks are done on memory validity, and this discrepancy is flagged. It also raises an abort, presumably because this is seen as serious enough to stop and investigate. I don't want to remove this check altogether, as it may still be useful, but we don't want to abort now because this might be a benign change caused by subclassing. So here, pull the size != ssize check out separately from the other consistency checks, and if it is not true raise a warning, but do *not* abort the process. psi/ilocate.c new errors: errors that went away: errors that are not whitelisted: === ghostpdl/examples/transparency_example.ps === bjc880j === === ghostpdl/examples/transparency_example.ps === cp50 === === ghostpdl/examples/transparency_example.ps === escpage === === ghostpdl/examples/transparency_example.ps === lips2p === === ghostpdl/examples/transparency_example.ps === lips3 === === ghostpdl/examples/transparency_example.ps === lips4 === === ghostpdl/examples/transparency_example.ps === npdl ===