| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
The done flag is no longer needed and caused us to exit the while
loop before processing enough of the data.
Also, move_landscape_buffer could end up with position_curr ==
position_new so we were moving 'in place' (wasting time). Fix that.
|
|
|
|
|
|
|
| |
This appears to be a bug in lcms. Will follow up with Marti. Also fix for tiff64nc. In the test
tiff_compression_allowed we were missing the test for the 16 bit case. Surprisingly this commit
results in progressions in the 8 bit device outputs too when we have a gray source and going
to a CMYK device.
|
|
|
|
|
|
|
|
|
| |
In the landscape code, only the data for the last plane was being moved
to the start of the contone data for the next 32 lines of output. Seen
with -sDEVICE=pkmraw -dUsePlanarBuffer J8_landscape.ps but any landscape
image could have the problem. New code moves all planes and only resets
the ht_landscape parameters after all planes have been processed and
output (via copy_planes).
|
| |
|
|
|
|
| |
CLUSTER_UNTESTED
|
|
|
|
|
|
|
| |
In the header we indicate the max value is 255, so the output values
need to be scaled to that, not the color_info.max_color. We stay with
255 since many viewers cannot display PPM files with other that 255
as the max (ignoring the max value in the header).
|
|
|
|
|
|
| |
which caused pngmono to threshold rather than halftone at or above 150 dpi.
No cluster differences.
|
|
|
|
|
|
|
|
| |
When using -dUsePlanarBuffer with the pnm devices, we run the
underlying rendering in planar mode, but then expect 'getbits'
to return chunky pixels. As such, the memory we allocate to
'getbits' into should be allocated for chunky mode, not for
planar mode.
|
|
|
|
|
|
| |
If we want to cache forms, we should implement it properly.
CLUSTER_UNTESTED
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On compilers that tightly pack structures (i.e. don't pad to alignment
boundaries), struct ref_s could end up as 14 bytes instead of 16 bytes,
thus breaking requirement in the garbage collector.
This is less than ideal, and would be better achieved using the same trick
we use for the alignment of obj_header_s in base/gxobj.h, linking the structure
size to the obj_align_mod, but as on the majority of systems struct ref_s is
already 16 bytes, that results in a zero byte array which notable compilers (at
least MSVC, and probably others) to error.
No cluster differences,
|
|
|
|
| |
No cluster differences.
|
|
|
|
|
|
|
| |
And move as many cases of paths allocated on the stack to heap memory as is
reasonable.
No cluster differences.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug #695086 "**** Error: Trailer is not found."
When reading Xref streams, the PDF interpreter resizes its internal xref
tracking objects by looking at the /Size of the stream and making sure
the objects are at least that big. However it did not account for the fact
that an Xref stream may not start with object 0.
In this case the first stream encountered had a /Size of 2, and an /Index
of [6 0]. This meant that we allocated objects of size 2, then tried to store
into location8, which naturally failed.
This commit adds the /Index (starting object number) to the /Size before
ensuring the objects are large enough.
No differences expected
|
| |
|
|
|
|
|
| |
Before the release of 9.06 I #ifdef'ed a load of code as deprecated. Nobody
has found any problems, so I'm removing the code.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
devices.htm - change epswrite references to eps2write, note that support for
language level 1 output is now removed.
drivers.htm - alter pswrite to ps2write
use.htm - alter epswrite to eps2write
issues.htm - remove a surprisingly large number of documented issues which
appear to be no longer issues. Note that epswrite is deprecated.
ps2pdf.htm - improve the documentation of PDF/A and PDF/X output and correct
the places where it was incorrect with the new colour management.
No differences.
|
|
|
|
|
|
|
|
| |
Abbreviated escape sequences were not handled properly with commands
that hold arbitrary amounts of data, like raster and font related
commands. PCL shorthand is rarely used in this circumstance
but it is legal. Thanks to Hin-Tak for the discovery and analysis of
this problem.
|
|
|
|
| |
No cluster differences.
|
|
|
|
| |
No cluster differences.
|
|
|
|
|
|
|
|
| |
Discovered with customer 532, the default_match was not set early
enough in gsicc_get_link for the index to be correct, effectively
disabling usefastcolor mode. As a result images could be rendered
with ICC based color transform instead of the 'nocm' fastcolor
methods.
|
|
|
|
| |
No cluster differences.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug #693916 "setdash does not accept more than 11 elements in the array argument"
The PostScript interpreter was already capable of this, it simply required
the limit check to be removed. The vector device needed to allocate and
free an array of floats, rather than maintain a fixed size array.
pdfwrite was teh most complex as it maintains a stack of gstates, and these
also needed to be modified to allocate and free the dash array. However the
gstate stack wasn't already a garbage collecting structure. Rather than going
to the effort of turning it into one I've opted to allocate the dash pattern
from non-gc memory.
A few PCL files show differences with pdfwrite, because previously pdfwrite
would throw an error (more than 11 elements in the dash array) and the stroked
lines would degenerate into filled rectangles, whereas now they are drawn as
stroked lines with a correct dash pattern. This is much more efficient.
The clist remains unmodified, Ray assures me that it will be handled there
without problems.
|
|
|
|
| |
Found when researching problem from customer 532.
|
|
|
|
|
|
|
|
|
| |
The max_gray and max_color would confuse the gx_device_must_halftone
macro because setting -dGrayValues=16 would end up setting the
max_gray and max_color to 31 (0x1f) which does NOT halftone. with
the change setting to 16 values doesn't change the bpc if put_params
is called again. Also remove allowing -dGrayValues=32 from supported
choices.
|
|
|
|
|
|
|
|
|
| |
Bug #695083 " Regression: pdfwrite DEVICE generates extra page with -dLastPage= option"
This wasn't a customer bug report, and it doesn't work well with PCL, when
specifying -dLastPage, so I've decided just to revert it.
A very few PCL files are flagged by the cluster as different, but there are
no bmpcmp diffs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If there are unicode chars in the temporary path (either that
given by TMPDIR, TEMP or windows own GetTempPath functions)
when opening a scratch file, we mishandle them.
This commit improves the behaviour to treat paths consistently
as UTF8.
This incorporates changes from Paul Gardiner to make the winrtsup.cpp
functions use wide chars. This simplifies the functions and integrates
better with the calling code. Also fix some uses of sizeof where size
in chars was required.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Noticed while testing by Chris.
The PDF spec says that if any of DefaultGray, DefaultRGB or DefaultCMYK are
present in a PDF page, then we should use those to do a conversion to
device-independent colour space for colours specified in the matching Device*
space.
This is broadly equivalent to the UseCIEColor PostScript user parameter but
unlike that parameter the user has no control over it. Previously we applied
this conversion but it seems unreasonable to do this for pdfwrite as this
will convert a PDF using device spaces into a PDF using ICCBased spaces.
Accordingly we now test the device properties and for HigLevel devices we
do *not* perform this conversion.
If the conversion really is desired then setting -dUseCIEColor will perform it.
This results in a very few files showing differences, neither progressions
nor regressions, merely different. However the pdfwrite warning about use
of UseCIEColor does go away.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The previous solution for this issue "overloaded" an existing workaround for
pdfwrite. Unfortunately, a clash between pdfwrite's needs and FAPI's meant it
did not work all the time.
So, when loading a TTF for use in a PDF, add a new flag to the font dictionary
to tell the FAPI code whether to render a Truetype notdef.
Several differences show up on the cluster - the following are progressions
compared to Acrobat:
Bug689757.pdf
Bug691031.pdf
Bug691221.pdf
Bug693538.pdf
Bug693646.ps
Bug693711.pdf
keyboard.pdf
CATX1490.pdf
IA3Z0815.pdf
These are different from before, but since Acrobat can't even open these,
I don't much care:
207ee6f24411fc4591d2b5a337c46de8-full.pdf
2123_-_MacExpertEncoding_badly_handled.pdf
764_-_heading_garbage.pdf
|
| |
|
|
|
|
|
|
|
|
|
| |
Bug #695082 " ps2write: Some "%%BeginResource" DSC comments have only one "%" character"
FontFile streams were being written with a "%%EndResource" comment, but the
"%%BeginResource" comment was missing.
No differences expected
|
|
|
|
|
|
|
|
|
| |
Bug #695082 "ps2write: Some "%%BeginResource" DSC comments have only one "%" character"
A DSC comment was emitted using a printf format string without escaping the
"%"s
No differences expected.
|
|
|
|
|
|
|
|
|
| |
Despite not throwing any regressions, there was a bug in this commit.
A couple of places used the pprintld* routines, which *don't* accept the
%"PRId64" sequence and this led ot us writing an invalid xref.
Fixed here by using gs_sprintf instead.
|
|
|
|
|
|
|
|
|
| |
Bug #695075 " Creating "optimized" PDF on Big-endian OS gives errors when view the PDF indicating PDF is not right"
This commit applies all the changes supplied by Jonathan Dagresta of SDL,
see the bug report for details.
No differences expected.
|
|
|
|
|
|
| |
The monochrome image case in gximono.c already checked for depth == 1
but the gxicolor.c code was missing this. These can be removed when
the gxht_thresh.c code is enhanced for greater bit depths.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug #695070 "Customer would like a way to specify printer specific features in ps2write device"
This commit adds two new distiller params, specific to ps2write, PSDocOptions
and PSPageOptions, which are described in detail in the ps2ps2.htm document.
These allow an end user to specify PostScript (normally device-specific
configuration) which can be injected into a DSC compliant file at the documet
level and at the individual page level.
No differences expected
|
|
|
|
|
|
|
|
|
|
| |
The pattern-clist device could be left allocated in stable memory
after the pattern was removed from the pattern cache. The pattern
instance could be freed by a subsequent restore since it was not
in stable memory. GC trace of the chunks would then reference the
stale pinst pointer. Also, the heap pointer needs to be valid in
ialloc_validate_spaces 'state' since it can be used for error output
and this could cause a segfault.
|
|
|
|
|
|
|
|
|
| |
PCL would continue processing with a corrupt font. This could lead to
bad memory accesses as demonstrated by the fuzzing example. For now,
we return an error when a corrupt font is encountered and end the job.
Likely, a lighter approach is called for: continue process without
defining the font. This would be a bit more involved and we'll
consider it if users report HP precedent for the behavior.
|
|
|
|
|
|
|
|
|
|
| |
The RAM file system was using regular GC'ed memory for its storage, which is
subject to save and restore. The RAM file system should not, of course, be
subject to save and restore!
This commit prevents save and restore affecting the memory for the ramfs
No differences expected.
|
|
|
|
| |
Signed-off-by: Henry Stiles <henry.stiles@artifex.com>
|
|
|
|
| |
Signed-off-by: Henry Stiles <henry.stiles@artifex.com>
|
|
|
|
|
|
| |
and give them names more likely to be unique (just for debugging convenience).
No cluster differences.
|
|
|
|
|
|
|
|
| |
We needed a pngalpha_put_image procedure to properly collect the pdf14
compositor alpha value. Note that this is NOT simple 0 or 1 alpha, but
the actual effective page level opacity from the PDF. Note that some
viewers may not correctly display these despite this being part of
the PNG spec.
|
|
|
|
|
|
|
| |
This regression was introduced with an attempt to fix SeparationOrder
handling, but is not needed because we throw an error when there is
an attempt to set the SeparationOrder, and the device is confused
when the num_components is reset in the open_device procedure.
|
|
|
|
|
|
| |
Thanks to Norbert Janssen for the linked list logic. Also make a couple
of other improvements in the free_object logic and use a separate
structure for the freelist to avoid confusion with object nodes.
|
|
|
|
| |
Thanks to Norbert Janssen.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug #694774
When outputting to PostScript we don't preserve certain colour spaces which
either cannot be represented in PDF (CIEBased) or in level 2 PostScript
(ICCBased/Lab/DeviceN) are not preserved. These should be written as device
colours instead, but this wasn't always happening correctly.
This commit should resolve this, and should now make it possible (but still
inadvisable) to use -dUseCIEColor with both pdfwrite and ps2write.
A small number of files show (frankly imperceptible) colour shifts with
ps2write with this change.
|