379 lines · 13.8 KB · HTML
RawDownload
<!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 ismy best guess as to the right thing to do on Tru64 (where long is 64bits).</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 patchhttp://ghostscript.com/pipermail/gs-cvs/2005-September/005717.htmlwith 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 tothe palette of the indexed color space. After a viewer decryptsthe palette with a right object id, colors appear wrong. 1. Use the PS string encoding instead the hexadecimal string encodingwhile 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 paletteto 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 idto the string which represents the palettewhen writing the cos object to the output PDF file.This is an implicit consequence ofusing the PS string encoding in the part 1due to a general convention aboutapplying encryption when writing cos objects to the output file. 4. Disable writing hexadecimal strings because theirencryption is not yet implemented (gdevpdfu.c). The generated PDF may become longer in 1-2 kilobytes per palettedue to PS encoding is less effective for palettes.This could be optimized with implelenting an encryption methodfor 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 bug688313 "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 changingthe current color space, causing a color load callout from fill_with_rule_after_ the callout completes. After that the checkctile->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 pointerwhile validating the heap. The enhanced object header is stillwithin 16 bytes with the 32-bits architecture. See ialloc_validate_pointer_stabilityabout 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_CHECKmacro 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 weakcondition for recognizing a clipping set by setcachedevice, sectachedevice2. Now we think that a special stuff for this condition isn't needed becausethe condition may be united with the contition for "setcharwidth" :both things need to skip the clipping path, which was set exactly bysetcachedevice, 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 tothe memory space of its components, which is obtained fromthe '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 forobtaining a space attribute value for iref from a gs_memory_t instance(well, generally it is impossible, but one could solve if the memoryallocator is a PS interpreter's allocator except stable ones). We noticed that components of gs_screen_enum have pointers to memoryallocator 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>