all devices regression report - 2018-01-29-07:00:02 - d8ec036836a0abcfe3cc677bb88a61bdfd1a65bb

[email protected] Mon, 29 Jan 2018 07:00:02 -0800 (PST)
Newsgroups gmane.comp.printing.ghostscript.regression
Message-ID <20180129150002.96B9420403FC@i7>
Differences in all devices errors using gs/examples files

Previous Revision: e29a7e00401549ebb7c03c8324209489b7c87681
 Current Revision: d8ec036836a0abcfe3cc677bb88a61bdfd1a65bb

commit d8ec036836a0abcfe3cc677bb88a61bdfd1a65bb
Author:     Ken Sharp <[email protected]>
AuthorDate: Mon Jan 29 14:05:50 2018 +0000
CommitDate: Mon Jan 29 14:05:50 2018 +0000

    pdfwrite - remove a global from gdevpdtt.c
    
    
    See bug #693376
    
    In gdevpdtt.c we hold a static gs_glyph standard_glyph_code_for_notdef
    which is initially assinged to GS_NO_GLYPH, and is later assigned a
    value from the encoding table:
    
    standard_glyph_code_for_notdef =
      gs_c_name_glyph((const byte *)".notdef", 7) - gs_c_min_std_encoding_glyph;
    
    However, this is only done if the current value is GS_NO_GLYPH. In effect
    standard_glyph_code_for_notdef is a constant. But we can't define it as
    a constant because the actual value depends on the contents of a table
    which is built at compile time.
    
    This appears to be an attempt to limit the number of times we call
    gs_c_name_glyph because that is a relatively expensive operation, and
    the actual value returned never changes between builds.
    
    But we don't want to have globals, really, so this commit simply gets
    and stores the value when the PDF font resource is created in
    font_resource_alloc(). We then can look up the value when we need it.
    
    This is, obviously, slightly slower than a one-time lookup, because
    we execute it once for every font. It also uses up a fraction more
    memory. However, compared to the performance and memory usage of pdfrwite
    the differences are miniscule.

devices/vector/gdevpdtf.c
devices/vector/gdevpdtf.h
devices/vector/gdevpdtt.c

new errors:

errors that went away:

errors that are not whitelisted:
=== ghostpdl/examples/transparency_example.ps === cp50 ===