all devices regression report - 2017-11-16-01:42:52 - c9951359bde5c4e72a20624788a47a97872db090

[email protected]
Newsgroups gmane.comp.printing.ghostscript.regression
Message-ID <20171116094253.649D220401AD@i7>
Differences in all devices errors using gs/examples files

Previous Revision: e2565e030eb37a25459671cfa9119715f3a0aae4
 Current Revision: c9951359bde5c4e72a20624788a47a97872db090

commit c9951359bde5c4e72a20624788a47a97872db090
Author:     Ken Sharp <[email protected]>
AuthorDate: Sun Nov 12 11:10:49 2017 +0000
CommitDate: Thu Nov 16 08:26:44 2017 +0000

    Repair the device API - device methods should never be NULL
    
    The original intention of the device API was that device methods (with
    the odd exception of fill_rectangle) must not be NULL. That appears
    to have been broken with the introduction of the transparency
    compositor, with the result that the code now:
    
    1) has to check for methods being NULL sometimes, because that causes
    crashes.
    
    2) Uses a device method being NULL to determine code paths.
    
    We want to return the device method design, because having to check for
    NULL methods before calling is wasteful.
    
    In this commit:
    
    define default methods for all the methods that previously did not have
    one.
    
    Modify gx_device_fill_in_procs to include those defaults in the device
    methods which it checks for NULL and replaces.
    
    Finding all the places where the code path differs if a device method
    is NULL, alter to check against the default method instead.
    
    Remove NULL checks where they are no longer required. Device whose
    'procs' get copied directly (clist) must have defaults for all methods.
    
    Fix gx_copy_device_procs so that we only special case (don't replace
    the method) for those few methods where it matters that the subclassing
    device must have the default method if the subclassed device does. Long
    term we should change the code not to rely on this!
    
    Remove a couple of macros that were not required or plain dumb.

base/gdevdflt.c
base/gdevmem.c
base/gdevnfwd.c
base/gdevp14.c
base/gdevprn.c
base/gdevsclass.c
base/gdevvec.c
base/gscspace.c
base/gsdevice.c
base/gsdparam.c
base/gsicc_manage.c
base/gsovrc.c
base/gspaint.c
base/gstrans.c
base/gxblend1.c
base/gxclist.c
base/gxclrect.c
base/gxdevice.h
base/gxfapi.c
base/gxiscale.c
base/gxp1fill.c

new errors:

errors that went away:

errors that are not whitelisted:
=== ghostpdl/examples/transparency_example.ps === cp50 ===
=== ghostpdl/examples/transparency_example.ps === psdrgb ===
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.