123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379 |
- <!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>
|