380 lines
14 KiB
HTML
380 lines
14 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
|
<html>
|
|
<head>
|
|
<title>Ghostscript change history (detailed)</title></title>
|
|
<!-- generated by split_changelog.py from the output of cvs2cl.pl -->
|
|
<!-- $Id: Details.htm,v 1.20 2005/10/20 20:14:37 ray Exp $ -->
|
|
<link rel=stylesheet type="text/css" href="gs.css">
|
|
</head>
|
|
<body>
|
|
|
|
<p><strong><a name="2005-10-20_1946"></a>
|
|
2005-10-20 19:46 Ray Johnston</strong></p>
|
|
<blockquote>
|
|
<pre>
|
|
Update doc files and version files for 8.53 release.</pre>
|
|
<p>[doc/API.htm 1.53, doc/Bug-form.htm 1.49, doc/Bug-info.htm 1.49, doc/C-style.htm 1.55, doc/Commprod.htm 1.41, doc/Copying.htm 1.39, doc/DLL.htm 1.43, doc/Deprecated.htm 1.20, doc/Details8.htm 1.24, doc/Develop.htm 1.159, doc/Devices.htm 1.90, doc/Drivers.htm 1.58, doc/Fonts.htm 1.51, doc/Helpers.htm 1.44, doc/History1.htm 1.39, doc/History2.htm 1.39, doc/History3.htm 1.39, doc/History4.htm 1.39, doc/History5.htm 1.41, doc/History6.htm 1.56, doc/History7.htm 1.44, doc/History8.htm 1.29, doc/Htmstyle.htm 1.44, doc/Install.htm 1.56, doc/Issues.htm 1.52, doc/Language.htm 1.98, doc/Lib.htm 1.43, doc/Maintain.htm 1.50, doc/Make.htm 1.90, doc/News.htm 1.168, doc/Projects.htm 1.67, doc/Ps-style.htm 1.37, doc/Ps2epsi.htm 1.42, doc/Ps2pdf.htm 1.88, doc/Ps2ps2.htm 1.7, doc/Psfiles.htm 1.68, doc/Readme.htm 1.71, doc/Release.htm 1.95, doc/Source.htm 1.39, doc/Testing.htm 1.37, doc/Unix-lpr.htm 1.39, doc/Use.htm 1.136, doc/Xfonts.htm 1.39, doc/gs-vms.hlp 1.37, man/dvipdf.1 1.37, man/font2c.1 1.37, man/gs.1 1.38, man/gslp.1 1.37, man/gsnd.1 1.37, man/pdf2dsc.1 1.36, man/pdf2ps.1 1.38, man/pdfopt.1 1.36, man/pf2afm.1 1.37, man/pfbtopfa.1 1.38, man/printafm.1 1.37, man/ps2ascii.1 1.37, man/ps2epsi.1 1.35, man/ps2pdf.1 1.42, man/ps2pdfwr.1 1.41, man/ps2ps.1 1.44, man/wftopfa.1 1.37, src/gscdef.c 1.58, src/version.mak 1.87]</p>
|
|
</blockquote>
|
|
|
|
<p><strong><a name="2005-10-20_1942"></a>
|
|
2005-10-20 19:42 Ray Johnston</strong></p>
|
|
<blockquote>
|
|
<pre>
|
|
Remove trailing ^M (<cr>) characters.</pre>
|
|
<p>[src/gdevbmp.c 1.12, src/slzwd.c 1.7]</p>
|
|
</blockquote>
|
|
|
|
<p><strong><a name="2005-10-20_1851"></a>
|
|
2005-10-20 18:51 Raph Levien</strong></p>
|
|
<blockquote>
|
|
<pre>
|
|
Fixes broken compile on amd64 platforms (see bug #688047 for details).
|
|
This patch should be safe on all platforms with 32-bit longs, and is
|
|
my best guess as to the right thing to do on Tru64 (where long is 64
|
|
bits).</pre>
|
|
<p>[src/tttypes.h 1.3]</p>
|
|
</blockquote>
|
|
|
|
<p><strong><a name="2005-10-20_1304"></a>
|
|
2005-10-20 13:04 Igor Melichev</strong></p>
|
|
<blockquote>
|
|
<pre>
|
|
Fix (pdfwrite) : Suppress floating point number format in pdfmark operands (continued 2).
|
|
|
|
DETAILS :
|
|
|
|
Bug 688167 "change of real number fomat from fixed to exponential format".
|
|
|
|
The last patch doesn't correctly handle numbers between 1e-7 and 1e-2.
|
|
|
|
EXPECTED DIFFERENCES :
|
|
|
|
None.</pre>
|
|
<p>[lib/gs_pdfwr.ps 1.52]</p>
|
|
</blockquote>
|
|
|
|
<p><strong><a name="2005-10-18_2031"></a>
|
|
2005-10-18 20:31 Igor Melichev</strong></p>
|
|
<blockquote>
|
|
<pre>
|
|
Fix (pdfwrite) : Suppress floating point number format in pdfmark operands (continued).
|
|
|
|
DETAILS :
|
|
|
|
Bug 688167 "change of real number fomat from fixed to exponential format".
|
|
|
|
This improves the patch
|
|
http://ghostscript.com/pipermail/gs-cvs/2005-September/005717.html
|
|
with writing small reals in a fixed point number format.
|
|
|
|
We did it after Raph's request in Comment #5 of the bug 688167.
|
|
But we don't see a visible difference against the old implementation with any viewer.
|
|
Therefore we believe that we shouldn't have done it (as we did before the implementation).
|
|
Storing it now mainly for archiving purpose.
|
|
|
|
If this change causes a problem, the author has no objection for unwinding it.
|
|
|
|
EXPECTED DIFFERENCES :
|
|
|
|
None.</pre>
|
|
<p>[lib/gs_pdfwr.ps 1.51]</p>
|
|
</blockquote>
|
|
|
|
<p><strong><a name="2005-10-18_0905"></a>
|
|
2005-10-18 09:05 Igor Melichev</strong></p>
|
|
<blockquote>
|
|
<pre>
|
|
Fix (pdfwrite) : Indexed colors were distorsed with encryption.
|
|
|
|
DETAILS :
|
|
|
|
Bug 688313 "pdfwrite : image colors depend on encryption".
|
|
|
|
The old code applied encryption with a wrong (zero) object id to
|
|
the palette of the indexed color space. After a viewer decrypts
|
|
the palette with a right object id, colors appear wrong.
|
|
|
|
1. Use the PS string encoding instead the hexadecimal string encoding
|
|
while converting the palette to PDF format (gdevpdfc.c).
|
|
It provides a correct work of the part 3 below.
|
|
See also part 4 below.
|
|
|
|
2. Don't apply encryption when adding the palette
|
|
to cos object (gdevpdfc.c, devs.mak).
|
|
The old code was hacky, and new one is based on a general convention.
|
|
|
|
3. Apply encryption with a right object id
|
|
to the string which represents the palette
|
|
when writing the cos object to the output PDF file.
|
|
This is an implicit consequence of
|
|
using the PS string encoding in the part 1
|
|
due to a general convention about
|
|
applying encryption when writing cos objects to the output file.
|
|
|
|
4. Disable writing hexadecimal strings because their
|
|
encryption is not yet implemented (gdevpdfu.c).
|
|
|
|
The generated PDF may become longer in 1-2 kilobytes per palette
|
|
due to PS encoding is less effective for palettes.
|
|
This could be optimized with implelenting an encryption method
|
|
for hexadecimal encoded strings in pdf_put_encoded_hex_string,
|
|
and undo the part 1. The method should apply 3 filters :
|
|
hexadecimal string decode, arc4 encode, hexadecimal string encode,
|
|
because cos object stores strings in the outer format.
|
|
Delaying this optimization for better times.
|
|
|
|
EXPECTED DIFFERENCES :
|
|
|
|
None.</pre>
|
|
<p>[src/devs.mak 1.140, src/gdevpdfc.c 1.54, src/gdevpdfo.c 1.35, src/gdevpdfu.c 1.89]</p>
|
|
</blockquote>
|
|
|
|
<p><strong><a name="2005-10-18_0758"></a>
|
|
2005-10-18 07:58 Igor Melichev</strong></p>
|
|
<blockquote>
|
|
<pre>
|
|
Fix (pdfwrite) : Propagate error codes from pdf_write_value.
|
|
|
|
DETAILS :
|
|
|
|
This is a preparation for fixing the bug
|
|
688313 "pdfwrite : image colors depend on encryption".
|
|
|
|
In cases when no error happens, this code is algorithmocally equivalent.
|
|
|
|
EXPECTED DIFFERENCES :
|
|
|
|
None.</pre>
|
|
<p>[src/gdevpdfo.c 1.34, src/gdevpdfu.c 1.88, src/gdevpdfx.h 1.138]</p>
|
|
</blockquote>
|
|
|
|
<p><strong><a name="2005-10-17_1923"></a>
|
|
2005-10-17 19:23 Igor Melichev</strong></p>
|
|
<blockquote>
|
|
<pre>
|
|
Fix (pdfwrite) : /BP pdfmark could create dead PDF objects (continiued).
|
|
|
|
DETAILS :
|
|
|
|
Bug 687560 "Invalid PDF if /BP pdfmarks with non-unique /_objdef".
|
|
|
|
1. Prevent a potential crash while dereferencing NULL.
|
|
2. Don't put unnamed objects into local_named_objects.
|
|
|
|
Thanks to SaGS for pointing these problems out.
|
|
|
|
EXPECTED DIFFERENCES :
|
|
|
|
None.</pre>
|
|
<p>[src/gdevpdfm.c 1.50]</p>
|
|
</blockquote>
|
|
|
|
<p><strong><a name="2005-10-12_1759"></a>
|
|
2005-10-12 17:59 Igor Melichev</strong></p>
|
|
<blockquote>
|
|
<pre>
|
|
Fix : Don't instantiate pattern when rendering to null device.
|
|
|
|
DETAILS :
|
|
|
|
Bug 688308 "Error: undefined; OffendingCommand: .type1execchar".
|
|
|
|
The test case executes cshow or kshow with intrevene changing
|
|
the current color space, causing a color load callout from fill_with_rule
|
|
_after_ the callout completes. After that the check
|
|
ctile->depth == dev->color_info.depth in gx_pattern_cache_lookup fails
|
|
(not sure why - probably due to gsave-grestore in the pattern procedure).
|
|
This patch skips entire character drawing when the device is null,
|
|
so that those cumbersome stuff isn't envolved.
|
|
|
|
EXPECTED DIFFERENCES :
|
|
|
|
None.</pre>
|
|
<p>[src/gsdevice.c 1.25, src/gspaint.c 1.10, src/gxdevcli.h 1.41]</p>
|
|
</blockquote>
|
|
|
|
<p><strong><a name="2005-10-12_1105"></a>
|
|
2005-10-12 11:05 Igor Melichev</strong></p>
|
|
<blockquote>
|
|
<pre>
|
|
Implementing a pointer stability validation in the garbager, continued.
|
|
|
|
DETAILS :
|
|
|
|
This patch is currently disabled, so the change is syntactically equivalent.
|
|
|
|
Bug 688226 "The garbager must check a pointer stability.".
|
|
|
|
This fixes a minor bug in the last patch.
|
|
|
|
EXPECTED DIFFERENCES :
|
|
|
|
None.</pre>
|
|
<p>[src/ilocate.c 1.14]</p>
|
|
</blockquote>
|
|
|
|
<p><strong><a name="2005-10-12_1045"></a>
|
|
2005-10-12 10:45 Igor Melichev</strong></p>
|
|
<blockquote>
|
|
<pre>
|
|
Implementing a pointer stability validation in the garbager.
|
|
|
|
DETAILS :
|
|
|
|
This patch is currently disabled, so the change is syntacticly equivalent.
|
|
|
|
Bug 688226 "The garbager must check a pointer stability.".
|
|
|
|
This patch extends the object header with a space order number field,
|
|
and compares the origin and the destination order numbers for each pointer
|
|
while validating the heap. The enhanced object header is still
|
|
within 16 bytes with the 32-bits architecture. See ialloc_validate_pointer_stability
|
|
about the order number definition.
|
|
|
|
This patch detected so many problems while running any document,
|
|
as we can't enable it now. It is disabled with IGC_PTR_STABILITY_CHECK
|
|
macro defined in gxobj.h .
|
|
|
|
EXPECTED DIFFERENCES :
|
|
|
|
None.</pre>
|
|
<p>[src/gsalloc.c 1.24, src/gxalloc.h 1.12, src/gxobj.h 1.7, src/ialloc.c 1.8, src/ilocate.c 1.13]</p>
|
|
</blockquote>
|
|
|
|
<p><strong><a name="2005-10-12_0816"></a>
|
|
2005-10-12 08:16 Igor Melichev</strong></p>
|
|
<blockquote>
|
|
<pre>
|
|
Fix (pdfwrite) : Skip a clip path, which is set by setcachedevice (continued after July 28 205).
|
|
|
|
DETAILS :
|
|
|
|
Bug 687678 "pdfwrite : A Type 3 character cut-off".
|
|
Bug 688327 "incorrect masking fill in pdfwrite".
|
|
|
|
The old patch for this problem appears to define a too weak
|
|
condition for recognizing a clipping set by setcachedevice, sectachedevice2.
|
|
|
|
Now we think that a special stuff for this condition isn't needed because
|
|
the condition may be united with the contition for "setcharwidth" :
|
|
both things need to skip the clipping path, which was set exactly by
|
|
setcachedevice, sectachedevice2 or setcharwidth.
|
|
Checking the rectangle coordinates is not relevant.
|
|
|
|
Therefore the change consists of 2 parts :
|
|
1. Unwinding the patch http://ghostscript.com/pipermail/gs-cvs/2005-July/005625.html (IM1358)
|
|
(see also http://ghostscript.com/pipermail/gs-cvs/2005-July/005626.html).
|
|
2. Remowing the (control == TEXT_SET_CHAR_WIDTH) check from pdf_text_set_cache,
|
|
so that the "caching" clipping path will be skipped in any case.
|
|
|
|
Will add Bug688327.ps to comparefiles.
|
|
|
|
EXPECTED DIFFERENCES :
|
|
|
|
None.</pre>
|
|
<p>[src/gdevpdfb.h 1.14, src/gdevpdfd.c 1.71, src/gdevpdfx.h 1.137, src/gdevpdti.c 1.53, src/gdevpdtt.c 1.104]</p>
|
|
</blockquote>
|
|
|
|
<p><strong><a name="2005-10-11_1004"></a>
|
|
2005-10-11 10:04 Igor Melichev</strong></p>
|
|
<blockquote>
|
|
<pre>
|
|
Fix (PS interpreter) : Allocate gs_screen_enum in same space as its components.
|
|
|
|
DETAILS :
|
|
|
|
Bug 688330 "A dangling pointer in gx_screen_enum.".
|
|
|
|
The old code allocates gs_screen_enum in current memory space and frees to
|
|
the memory space of its components, which is obtained from
|
|
the 'setscreen' operand (the spot function).
|
|
In the test case the first memory space is local, and the second one is global.
|
|
We guess the last statement became true after a recent change to the PDF interpreter.
|
|
|
|
This patch allocates gs_screen_enum in same space as its components.
|
|
The pritotype of zscreen_enum_init has been changed due to no method for
|
|
obtaining a space attribute value for iref from a gs_memory_t instance
|
|
(well, generally it is impossible, but one could solve if the memory
|
|
allocator is a PS interpreter's allocator except stable ones).
|
|
|
|
We noticed that components of gs_screen_enum have pointers to memory
|
|
allocator structures, but don't list them in the related memory descriptors.
|
|
We're not sure whether a memory allocator structure may relocate or not -
|
|
our investigation through code didn't give an unique answer.
|
|
For now we leave component descriptors as they were before the patch.
|
|
|
|
EXPECTED DIFFERENCES :
|
|
|
|
None.</pre>
|
|
<p>[src/iht.h 1.6, src/zht.c 1.8, src/zht1.c 1.7, src/zht2.c 1.14]</p>
|
|
</blockquote>
|
|
|
|
<p><strong><a name="2005-10-10_1909"></a>
|
|
2005-10-10 19:09 Igor Melichev</strong></p>
|
|
<blockquote>
|
|
<pre>
|
|
Fix: Cygwin/gcc warninhs.
|
|
|
|
EXPECTED DIFFERENCES :
|
|
|
|
None.</pre>
|
|
<p>[src/devs.mak 1.139, src/gdevpdfb.c 1.34]</p>
|
|
</blockquote>
|
|
|
|
<p><strong><a name="2005-10-10_1858"></a>
|
|
2005-10-10 18:58 Igor Melichev</strong></p>
|
|
<blockquote>
|
|
<pre>
|
|
Optimizing the transparency compositor.
|
|
|
|
DETAILS :
|
|
|
|
Bug 688255 "ai7 pdf fails on 7.03, runs for ten + minutes on 8.51".
|
|
|
|
The old code always allocates a transparency buffers for entire band.
|
|
The new code accounts group bbox to minimize buffers.
|
|
Due to that buffers appear empty for many of bands.
|
|
The time consumption for the test case of the bug 688255 is dropped in about 100 times
|
|
(from 8000 seconds to 71 seconds on a 3.07GHz machine, measured with debug build).
|
|
|
|
1. The transparency bbox computes in pdf14_begin_transparency_group from
|
|
the group bbox and the CTM (gdevp14.c).
|
|
2. Handle an empty buffer pdf14_buf_new, pdf14_pop_transparency_group (gdevp14.c).
|
|
3. Fixed a bug in the rectangle clipping in
|
|
pdf14_mark_fill_rectangle, pdf14_mark_fill_rectangle_ko_simple.
|
|
The old code didn't sense it because bbox always covered entire band (gdevp14.c).
|
|
4. Write the bbox to clist in c_pdf14trans_write and read it in c_pdf14trans_read.
|
|
5. The pdf14 compositor needs CTM to transform the group bbox to the device space.
|
|
Forced the writing of CTM to clist before writing the compositor in clist_create_compositor.
|
|
(Sorry, it appears some ugly due to pcte->type->procs.write creates a body
|
|
of a command, but we need to create a set of two commands;
|
|
Another minor optimization - a narrowing the set of bands - is delayed,
|
|
see comments in code in clist_create_compositor) (gxclimag.c).
|
|
6. New functions cmd_write_ctm_return_length, cmd_write_ctm are factored out for (5)
|
|
(gxclpath.c, gxclpath.h). This part of the change is algorithmically eqiuivalent.
|
|
7. Minor change : fixed coding style of "} else {" in gdevp14.c .
|
|
|
|
EXPECTED DIFFERENCES :
|
|
|
|
None.</pre>
|
|
<p>[src/gdevp14.c 1.35, src/gxclimag.c 1.13, src/gxclpath.c 1.21, src/gxclpath.h 1.13]</p>
|
|
</blockquote>
|
|
|
|
<p><strong><a name="2005-10-07_1949"></a>
|
|
2005-10-07 19:49 Ray Johnston</strong></p>
|
|
<blockquote>
|
|
<pre>
|
|
Add missing space in CVS PRE-RELEASE string.</pre>
|
|
<p>[src/gscdef.c 1.57]</p>
|
|
</blockquote>
|
|
|
|
<p><strong><a name="2005-10-07_1946"></a>
|
|
2005-10-07 19:46 Ray Johnston</strong></p>
|
|
<blockquote>
|
|
<pre>
|
|
Bump version after the 8.52 release (to 8.53 CVS PRE-RELEASE).</pre>
|
|
<p>[doc/News.htm 1.167, lib/gs_init.ps 1.120, src/gscdef.c 1.56, src/version.mak 1.86]</p>
|
|
</blockquote>
|
|
</body>
|
|
</html>
|