1*593dc095SDavid du Colombier<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 2*593dc095SDavid du Colombier<html> 3*593dc095SDavid du Colombier<head> 4*593dc095SDavid du Colombier<title>Ghostscript change history (detailed)</title></title> 5*593dc095SDavid du Colombier<!-- generated by split_changelog.py from the output of cvs2cl.pl --> 6*593dc095SDavid du Colombier<!-- $Id: Details.htm,v 1.20 2005/10/20 20:14:37 ray Exp $ --> 7*593dc095SDavid du Colombier<link rel=stylesheet type="text/css" href="gs.css"> 8*593dc095SDavid du Colombier</head> 9*593dc095SDavid du Colombier<body> 10*593dc095SDavid du Colombier 11*593dc095SDavid du Colombier<p><strong><a name="2005-10-20_1946"></a> 12*593dc095SDavid du Colombier2005-10-20 19:46 Ray Johnston</strong></p> 13*593dc095SDavid du Colombier<blockquote> 14*593dc095SDavid du Colombier<pre> 15*593dc095SDavid du ColombierUpdate doc files and version files for 8.53 release.</pre> 16*593dc095SDavid du Colombier<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> 17*593dc095SDavid du Colombier</blockquote> 18*593dc095SDavid du Colombier 19*593dc095SDavid du Colombier<p><strong><a name="2005-10-20_1942"></a> 20*593dc095SDavid du Colombier2005-10-20 19:42 Ray Johnston</strong></p> 21*593dc095SDavid du Colombier<blockquote> 22*593dc095SDavid du Colombier<pre> 23*593dc095SDavid du ColombierRemove trailing ^M (<cr>) characters.</pre> 24*593dc095SDavid du Colombier<p>[src/gdevbmp.c 1.12, src/slzwd.c 1.7]</p> 25*593dc095SDavid du Colombier</blockquote> 26*593dc095SDavid du Colombier 27*593dc095SDavid du Colombier<p><strong><a name="2005-10-20_1851"></a> 28*593dc095SDavid du Colombier2005-10-20 18:51 Raph Levien</strong></p> 29*593dc095SDavid du Colombier<blockquote> 30*593dc095SDavid du Colombier<pre> 31*593dc095SDavid du ColombierFixes broken compile on amd64 platforms (see bug #688047 for details). 32*593dc095SDavid du ColombierThis patch should be safe on all platforms with 32-bit longs, and is 33*593dc095SDavid du Colombiermy best guess as to the right thing to do on Tru64 (where long is 64 34*593dc095SDavid du Colombierbits).</pre> 35*593dc095SDavid du Colombier<p>[src/tttypes.h 1.3]</p> 36*593dc095SDavid du Colombier</blockquote> 37*593dc095SDavid du Colombier 38*593dc095SDavid du Colombier<p><strong><a name="2005-10-20_1304"></a> 39*593dc095SDavid du Colombier2005-10-20 13:04 Igor Melichev</strong></p> 40*593dc095SDavid du Colombier<blockquote> 41*593dc095SDavid du Colombier<pre> 42*593dc095SDavid du ColombierFix (pdfwrite) : Suppress floating point number format in pdfmark operands (continued 2). 43*593dc095SDavid du Colombier 44*593dc095SDavid du ColombierDETAILS : 45*593dc095SDavid du Colombier 46*593dc095SDavid du ColombierBug 688167 "change of real number fomat from fixed to exponential format". 47*593dc095SDavid du Colombier 48*593dc095SDavid du ColombierThe last patch doesn't correctly handle numbers between 1e-7 and 1e-2. 49*593dc095SDavid du Colombier 50*593dc095SDavid du ColombierEXPECTED DIFFERENCES : 51*593dc095SDavid du Colombier 52*593dc095SDavid du ColombierNone.</pre> 53*593dc095SDavid du Colombier<p>[lib/gs_pdfwr.ps 1.52]</p> 54*593dc095SDavid du Colombier</blockquote> 55*593dc095SDavid du Colombier 56*593dc095SDavid du Colombier<p><strong><a name="2005-10-18_2031"></a> 57*593dc095SDavid du Colombier2005-10-18 20:31 Igor Melichev</strong></p> 58*593dc095SDavid du Colombier<blockquote> 59*593dc095SDavid du Colombier<pre> 60*593dc095SDavid du ColombierFix (pdfwrite) : Suppress floating point number format in pdfmark operands (continued). 61*593dc095SDavid du Colombier 62*593dc095SDavid du ColombierDETAILS : 63*593dc095SDavid du Colombier 64*593dc095SDavid du ColombierBug 688167 "change of real number fomat from fixed to exponential format". 65*593dc095SDavid du Colombier 66*593dc095SDavid du ColombierThis improves the patch 67*593dc095SDavid du Colombierhttp://ghostscript.com/pipermail/gs-cvs/2005-September/005717.html 68*593dc095SDavid du Colombierwith writing small reals in a fixed point number format. 69*593dc095SDavid du Colombier 70*593dc095SDavid du ColombierWe did it after Raph's request in Comment #5 of the bug 688167. 71*593dc095SDavid du ColombierBut we don't see a visible difference against the old implementation with any viewer. 72*593dc095SDavid du ColombierTherefore we believe that we shouldn't have done it (as we did before the implementation). 73*593dc095SDavid du ColombierStoring it now mainly for archiving purpose. 74*593dc095SDavid du Colombier 75*593dc095SDavid du ColombierIf this change causes a problem, the author has no objection for unwinding it. 76*593dc095SDavid du Colombier 77*593dc095SDavid du ColombierEXPECTED DIFFERENCES : 78*593dc095SDavid du Colombier 79*593dc095SDavid du ColombierNone.</pre> 80*593dc095SDavid du Colombier<p>[lib/gs_pdfwr.ps 1.51]</p> 81*593dc095SDavid du Colombier</blockquote> 82*593dc095SDavid du Colombier 83*593dc095SDavid du Colombier<p><strong><a name="2005-10-18_0905"></a> 84*593dc095SDavid du Colombier2005-10-18 09:05 Igor Melichev</strong></p> 85*593dc095SDavid du Colombier<blockquote> 86*593dc095SDavid du Colombier<pre> 87*593dc095SDavid du ColombierFix (pdfwrite) : Indexed colors were distorsed with encryption. 88*593dc095SDavid du Colombier 89*593dc095SDavid du ColombierDETAILS : 90*593dc095SDavid du Colombier 91*593dc095SDavid du ColombierBug 688313 "pdfwrite : image colors depend on encryption". 92*593dc095SDavid du Colombier 93*593dc095SDavid du ColombierThe old code applied encryption with a wrong (zero) object id to 94*593dc095SDavid du Colombierthe palette of the indexed color space. After a viewer decrypts 95*593dc095SDavid du Colombierthe palette with a right object id, colors appear wrong. 96*593dc095SDavid du Colombier 97*593dc095SDavid du Colombier1. Use the PS string encoding instead the hexadecimal string encoding 98*593dc095SDavid du Colombierwhile converting the palette to PDF format (gdevpdfc.c). 99*593dc095SDavid du ColombierIt provides a correct work of the part 3 below. 100*593dc095SDavid du ColombierSee also part 4 below. 101*593dc095SDavid du Colombier 102*593dc095SDavid du Colombier2. Don't apply encryption when adding the palette 103*593dc095SDavid du Colombierto cos object (gdevpdfc.c, devs.mak). 104*593dc095SDavid du ColombierThe old code was hacky, and new one is based on a general convention. 105*593dc095SDavid du Colombier 106*593dc095SDavid du Colombier3. Apply encryption with a right object id 107*593dc095SDavid du Colombierto the string which represents the palette 108*593dc095SDavid du Colombierwhen writing the cos object to the output PDF file. 109*593dc095SDavid du ColombierThis is an implicit consequence of 110*593dc095SDavid du Colombierusing the PS string encoding in the part 1 111*593dc095SDavid du Colombierdue to a general convention about 112*593dc095SDavid du Colombierapplying encryption when writing cos objects to the output file. 113*593dc095SDavid du Colombier 114*593dc095SDavid du Colombier4. Disable writing hexadecimal strings because their 115*593dc095SDavid du Colombierencryption is not yet implemented (gdevpdfu.c). 116*593dc095SDavid du Colombier 117*593dc095SDavid du ColombierThe generated PDF may become longer in 1-2 kilobytes per palette 118*593dc095SDavid du Colombierdue to PS encoding is less effective for palettes. 119*593dc095SDavid du ColombierThis could be optimized with implelenting an encryption method 120*593dc095SDavid du Colombierfor hexadecimal encoded strings in pdf_put_encoded_hex_string, 121*593dc095SDavid du Colombierand undo the part 1. The method should apply 3 filters : 122*593dc095SDavid du Colombierhexadecimal string decode, arc4 encode, hexadecimal string encode, 123*593dc095SDavid du Colombierbecause cos object stores strings in the outer format. 124*593dc095SDavid du ColombierDelaying this optimization for better times. 125*593dc095SDavid du Colombier 126*593dc095SDavid du ColombierEXPECTED DIFFERENCES : 127*593dc095SDavid du Colombier 128*593dc095SDavid du ColombierNone.</pre> 129*593dc095SDavid du Colombier<p>[src/devs.mak 1.140, src/gdevpdfc.c 1.54, src/gdevpdfo.c 1.35, src/gdevpdfu.c 1.89]</p> 130*593dc095SDavid du Colombier</blockquote> 131*593dc095SDavid du Colombier 132*593dc095SDavid du Colombier<p><strong><a name="2005-10-18_0758"></a> 133*593dc095SDavid du Colombier2005-10-18 07:58 Igor Melichev</strong></p> 134*593dc095SDavid du Colombier<blockquote> 135*593dc095SDavid du Colombier<pre> 136*593dc095SDavid du ColombierFix (pdfwrite) : Propagate error codes from pdf_write_value. 137*593dc095SDavid du Colombier 138*593dc095SDavid du ColombierDETAILS : 139*593dc095SDavid du Colombier 140*593dc095SDavid du ColombierThis is a preparation for fixing the bug 141*593dc095SDavid du Colombier688313 "pdfwrite : image colors depend on encryption". 142*593dc095SDavid du Colombier 143*593dc095SDavid du ColombierIn cases when no error happens, this code is algorithmocally equivalent. 144*593dc095SDavid du Colombier 145*593dc095SDavid du ColombierEXPECTED DIFFERENCES : 146*593dc095SDavid du Colombier 147*593dc095SDavid du ColombierNone.</pre> 148*593dc095SDavid du Colombier<p>[src/gdevpdfo.c 1.34, src/gdevpdfu.c 1.88, src/gdevpdfx.h 1.138]</p> 149*593dc095SDavid du Colombier</blockquote> 150*593dc095SDavid du Colombier 151*593dc095SDavid du Colombier<p><strong><a name="2005-10-17_1923"></a> 152*593dc095SDavid du Colombier2005-10-17 19:23 Igor Melichev</strong></p> 153*593dc095SDavid du Colombier<blockquote> 154*593dc095SDavid du Colombier<pre> 155*593dc095SDavid du ColombierFix (pdfwrite) : /BP pdfmark could create dead PDF objects (continiued). 156*593dc095SDavid du Colombier 157*593dc095SDavid du ColombierDETAILS : 158*593dc095SDavid du Colombier 159*593dc095SDavid du ColombierBug 687560 "Invalid PDF if /BP pdfmarks with non-unique /_objdef". 160*593dc095SDavid du Colombier 161*593dc095SDavid du Colombier1. Prevent a potential crash while dereferencing NULL. 162*593dc095SDavid du Colombier2. Don't put unnamed objects into local_named_objects. 163*593dc095SDavid du Colombier 164*593dc095SDavid du ColombierThanks to SaGS for pointing these problems out. 165*593dc095SDavid du Colombier 166*593dc095SDavid du ColombierEXPECTED DIFFERENCES : 167*593dc095SDavid du Colombier 168*593dc095SDavid du ColombierNone.</pre> 169*593dc095SDavid du Colombier<p>[src/gdevpdfm.c 1.50]</p> 170*593dc095SDavid du Colombier</blockquote> 171*593dc095SDavid du Colombier 172*593dc095SDavid du Colombier<p><strong><a name="2005-10-12_1759"></a> 173*593dc095SDavid du Colombier2005-10-12 17:59 Igor Melichev</strong></p> 174*593dc095SDavid du Colombier<blockquote> 175*593dc095SDavid du Colombier<pre> 176*593dc095SDavid du ColombierFix : Don't instantiate pattern when rendering to null device. 177*593dc095SDavid du Colombier 178*593dc095SDavid du ColombierDETAILS : 179*593dc095SDavid du Colombier 180*593dc095SDavid du ColombierBug 688308 "Error: undefined; OffendingCommand: .type1execchar". 181*593dc095SDavid du Colombier 182*593dc095SDavid du ColombierThe test case executes cshow or kshow with intrevene changing 183*593dc095SDavid du Colombierthe current color space, causing a color load callout from fill_with_rule 184*593dc095SDavid du Colombier_after_ the callout completes. After that the check 185*593dc095SDavid du Colombierctile->depth == dev->color_info.depth in gx_pattern_cache_lookup fails 186*593dc095SDavid du Colombier(not sure why - probably due to gsave-grestore in the pattern procedure). 187*593dc095SDavid du ColombierThis patch skips entire character drawing when the device is null, 188*593dc095SDavid du Colombierso that those cumbersome stuff isn't envolved. 189*593dc095SDavid du Colombier 190*593dc095SDavid du ColombierEXPECTED DIFFERENCES : 191*593dc095SDavid du Colombier 192*593dc095SDavid du ColombierNone.</pre> 193*593dc095SDavid du Colombier<p>[src/gsdevice.c 1.25, src/gspaint.c 1.10, src/gxdevcli.h 1.41]</p> 194*593dc095SDavid du Colombier</blockquote> 195*593dc095SDavid du Colombier 196*593dc095SDavid du Colombier<p><strong><a name="2005-10-12_1105"></a> 197*593dc095SDavid du Colombier2005-10-12 11:05 Igor Melichev</strong></p> 198*593dc095SDavid du Colombier<blockquote> 199*593dc095SDavid du Colombier<pre> 200*593dc095SDavid du ColombierImplementing a pointer stability validation in the garbager, continued. 201*593dc095SDavid du Colombier 202*593dc095SDavid du ColombierDETAILS : 203*593dc095SDavid du Colombier 204*593dc095SDavid du ColombierThis patch is currently disabled, so the change is syntactically equivalent. 205*593dc095SDavid du Colombier 206*593dc095SDavid du ColombierBug 688226 "The garbager must check a pointer stability.". 207*593dc095SDavid du Colombier 208*593dc095SDavid du ColombierThis fixes a minor bug in the last patch. 209*593dc095SDavid du Colombier 210*593dc095SDavid du ColombierEXPECTED DIFFERENCES : 211*593dc095SDavid du Colombier 212*593dc095SDavid du ColombierNone.</pre> 213*593dc095SDavid du Colombier<p>[src/ilocate.c 1.14]</p> 214*593dc095SDavid du Colombier</blockquote> 215*593dc095SDavid du Colombier 216*593dc095SDavid du Colombier<p><strong><a name="2005-10-12_1045"></a> 217*593dc095SDavid du Colombier2005-10-12 10:45 Igor Melichev</strong></p> 218*593dc095SDavid du Colombier<blockquote> 219*593dc095SDavid du Colombier<pre> 220*593dc095SDavid du ColombierImplementing a pointer stability validation in the garbager. 221*593dc095SDavid du Colombier 222*593dc095SDavid du ColombierDETAILS : 223*593dc095SDavid du Colombier 224*593dc095SDavid du ColombierThis patch is currently disabled, so the change is syntacticly equivalent. 225*593dc095SDavid du Colombier 226*593dc095SDavid du ColombierBug 688226 "The garbager must check a pointer stability.". 227*593dc095SDavid du Colombier 228*593dc095SDavid du ColombierThis patch extends the object header with a space order number field, 229*593dc095SDavid du Colombierand compares the origin and the destination order numbers for each pointer 230*593dc095SDavid du Colombierwhile validating the heap. The enhanced object header is still 231*593dc095SDavid du Colombierwithin 16 bytes with the 32-bits architecture. See ialloc_validate_pointer_stability 232*593dc095SDavid du Colombierabout the order number definition. 233*593dc095SDavid du Colombier 234*593dc095SDavid du ColombierThis patch detected so many problems while running any document, 235*593dc095SDavid du Colombieras we can't enable it now. It is disabled with IGC_PTR_STABILITY_CHECK 236*593dc095SDavid du Colombiermacro defined in gxobj.h . 237*593dc095SDavid du Colombier 238*593dc095SDavid du ColombierEXPECTED DIFFERENCES : 239*593dc095SDavid du Colombier 240*593dc095SDavid du ColombierNone.</pre> 241*593dc095SDavid du Colombier<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> 242*593dc095SDavid du Colombier</blockquote> 243*593dc095SDavid du Colombier 244*593dc095SDavid du Colombier<p><strong><a name="2005-10-12_0816"></a> 245*593dc095SDavid du Colombier2005-10-12 08:16 Igor Melichev</strong></p> 246*593dc095SDavid du Colombier<blockquote> 247*593dc095SDavid du Colombier<pre> 248*593dc095SDavid du ColombierFix (pdfwrite) : Skip a clip path, which is set by setcachedevice (continued after July 28 205). 249*593dc095SDavid du Colombier 250*593dc095SDavid du ColombierDETAILS : 251*593dc095SDavid du Colombier 252*593dc095SDavid du ColombierBug 687678 "pdfwrite : A Type 3 character cut-off". 253*593dc095SDavid du ColombierBug 688327 "incorrect masking fill in pdfwrite". 254*593dc095SDavid du Colombier 255*593dc095SDavid du ColombierThe old patch for this problem appears to define a too weak 256*593dc095SDavid du Colombiercondition for recognizing a clipping set by setcachedevice, sectachedevice2. 257*593dc095SDavid du Colombier 258*593dc095SDavid du ColombierNow we think that a special stuff for this condition isn't needed because 259*593dc095SDavid du Colombierthe condition may be united with the contition for "setcharwidth" : 260*593dc095SDavid du Colombierboth things need to skip the clipping path, which was set exactly by 261*593dc095SDavid du Colombiersetcachedevice, sectachedevice2 or setcharwidth. 262*593dc095SDavid du ColombierChecking the rectangle coordinates is not relevant. 263*593dc095SDavid du Colombier 264*593dc095SDavid du ColombierTherefore the change consists of 2 parts : 265*593dc095SDavid du Colombier1. Unwinding the patch http://ghostscript.com/pipermail/gs-cvs/2005-July/005625.html (IM1358) 266*593dc095SDavid du Colombier (see also http://ghostscript.com/pipermail/gs-cvs/2005-July/005626.html). 267*593dc095SDavid du Colombier2. Remowing the (control == TEXT_SET_CHAR_WIDTH) check from pdf_text_set_cache, 268*593dc095SDavid du Colombier so that the "caching" clipping path will be skipped in any case. 269*593dc095SDavid du Colombier 270*593dc095SDavid du ColombierWill add Bug688327.ps to comparefiles. 271*593dc095SDavid du Colombier 272*593dc095SDavid du ColombierEXPECTED DIFFERENCES : 273*593dc095SDavid du Colombier 274*593dc095SDavid du ColombierNone.</pre> 275*593dc095SDavid du Colombier<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> 276*593dc095SDavid du Colombier</blockquote> 277*593dc095SDavid du Colombier 278*593dc095SDavid du Colombier<p><strong><a name="2005-10-11_1004"></a> 279*593dc095SDavid du Colombier2005-10-11 10:04 Igor Melichev</strong></p> 280*593dc095SDavid du Colombier<blockquote> 281*593dc095SDavid du Colombier<pre> 282*593dc095SDavid du ColombierFix (PS interpreter) : Allocate gs_screen_enum in same space as its components. 283*593dc095SDavid du Colombier 284*593dc095SDavid du ColombierDETAILS : 285*593dc095SDavid du Colombier 286*593dc095SDavid du ColombierBug 688330 "A dangling pointer in gx_screen_enum.". 287*593dc095SDavid du Colombier 288*593dc095SDavid du ColombierThe old code allocates gs_screen_enum in current memory space and frees to 289*593dc095SDavid du Colombierthe memory space of its components, which is obtained from 290*593dc095SDavid du Colombierthe 'setscreen' operand (the spot function). 291*593dc095SDavid du ColombierIn the test case the first memory space is local, and the second one is global. 292*593dc095SDavid du ColombierWe guess the last statement became true after a recent change to the PDF interpreter. 293*593dc095SDavid du Colombier 294*593dc095SDavid du ColombierThis patch allocates gs_screen_enum in same space as its components. 295*593dc095SDavid du ColombierThe pritotype of zscreen_enum_init has been changed due to no method for 296*593dc095SDavid du Colombierobtaining a space attribute value for iref from a gs_memory_t instance 297*593dc095SDavid du Colombier(well, generally it is impossible, but one could solve if the memory 298*593dc095SDavid du Colombierallocator is a PS interpreter's allocator except stable ones). 299*593dc095SDavid du Colombier 300*593dc095SDavid du ColombierWe noticed that components of gs_screen_enum have pointers to memory 301*593dc095SDavid du Colombierallocator structures, but don't list them in the related memory descriptors. 302*593dc095SDavid du ColombierWe're not sure whether a memory allocator structure may relocate or not - 303*593dc095SDavid du Colombierour investigation through code didn't give an unique answer. 304*593dc095SDavid du ColombierFor now we leave component descriptors as they were before the patch. 305*593dc095SDavid du Colombier 306*593dc095SDavid du ColombierEXPECTED DIFFERENCES : 307*593dc095SDavid du Colombier 308*593dc095SDavid du ColombierNone.</pre> 309*593dc095SDavid du Colombier<p>[src/iht.h 1.6, src/zht.c 1.8, src/zht1.c 1.7, src/zht2.c 1.14]</p> 310*593dc095SDavid du Colombier</blockquote> 311*593dc095SDavid du Colombier 312*593dc095SDavid du Colombier<p><strong><a name="2005-10-10_1909"></a> 313*593dc095SDavid du Colombier2005-10-10 19:09 Igor Melichev</strong></p> 314*593dc095SDavid du Colombier<blockquote> 315*593dc095SDavid du Colombier<pre> 316*593dc095SDavid du ColombierFix: Cygwin/gcc warninhs. 317*593dc095SDavid du Colombier 318*593dc095SDavid du ColombierEXPECTED DIFFERENCES : 319*593dc095SDavid du Colombier 320*593dc095SDavid du ColombierNone.</pre> 321*593dc095SDavid du Colombier<p>[src/devs.mak 1.139, src/gdevpdfb.c 1.34]</p> 322*593dc095SDavid du Colombier</blockquote> 323*593dc095SDavid du Colombier 324*593dc095SDavid du Colombier<p><strong><a name="2005-10-10_1858"></a> 325*593dc095SDavid du Colombier2005-10-10 18:58 Igor Melichev</strong></p> 326*593dc095SDavid du Colombier<blockquote> 327*593dc095SDavid du Colombier<pre> 328*593dc095SDavid du ColombierOptimizing the transparency compositor. 329*593dc095SDavid du Colombier 330*593dc095SDavid du ColombierDETAILS : 331*593dc095SDavid du Colombier 332*593dc095SDavid du ColombierBug 688255 "ai7 pdf fails on 7.03, runs for ten + minutes on 8.51". 333*593dc095SDavid du Colombier 334*593dc095SDavid du ColombierThe old code always allocates a transparency buffers for entire band. 335*593dc095SDavid du ColombierThe new code accounts group bbox to minimize buffers. 336*593dc095SDavid du ColombierDue to that buffers appear empty for many of bands. 337*593dc095SDavid du ColombierThe time consumption for the test case of the bug 688255 is dropped in about 100 times 338*593dc095SDavid du Colombier(from 8000 seconds to 71 seconds on a 3.07GHz machine, measured with debug build). 339*593dc095SDavid du Colombier 340*593dc095SDavid du Colombier1. The transparency bbox computes in pdf14_begin_transparency_group from 341*593dc095SDavid du Colombier the group bbox and the CTM (gdevp14.c). 342*593dc095SDavid du Colombier2. Handle an empty buffer pdf14_buf_new, pdf14_pop_transparency_group (gdevp14.c). 343*593dc095SDavid du Colombier3. Fixed a bug in the rectangle clipping in 344*593dc095SDavid du Colombier pdf14_mark_fill_rectangle, pdf14_mark_fill_rectangle_ko_simple. 345*593dc095SDavid du Colombier The old code didn't sense it because bbox always covered entire band (gdevp14.c). 346*593dc095SDavid du Colombier4. Write the bbox to clist in c_pdf14trans_write and read it in c_pdf14trans_read. 347*593dc095SDavid du Colombier5. The pdf14 compositor needs CTM to transform the group bbox to the device space. 348*593dc095SDavid du Colombier Forced the writing of CTM to clist before writing the compositor in clist_create_compositor. 349*593dc095SDavid du Colombier (Sorry, it appears some ugly due to pcte->type->procs.write creates a body 350*593dc095SDavid du Colombier of a command, but we need to create a set of two commands; 351*593dc095SDavid du Colombier Another minor optimization - a narrowing the set of bands - is delayed, 352*593dc095SDavid du Colombier see comments in code in clist_create_compositor) (gxclimag.c). 353*593dc095SDavid du Colombier6. New functions cmd_write_ctm_return_length, cmd_write_ctm are factored out for (5) 354*593dc095SDavid du Colombier (gxclpath.c, gxclpath.h). This part of the change is algorithmically eqiuivalent. 355*593dc095SDavid du Colombier7. Minor change : fixed coding style of "} else {" in gdevp14.c . 356*593dc095SDavid du Colombier 357*593dc095SDavid du ColombierEXPECTED DIFFERENCES : 358*593dc095SDavid du Colombier 359*593dc095SDavid du ColombierNone.</pre> 360*593dc095SDavid du Colombier<p>[src/gdevp14.c 1.35, src/gxclimag.c 1.13, src/gxclpath.c 1.21, src/gxclpath.h 1.13]</p> 361*593dc095SDavid du Colombier</blockquote> 362*593dc095SDavid du Colombier 363*593dc095SDavid du Colombier<p><strong><a name="2005-10-07_1949"></a> 364*593dc095SDavid du Colombier2005-10-07 19:49 Ray Johnston</strong></p> 365*593dc095SDavid du Colombier<blockquote> 366*593dc095SDavid du Colombier<pre> 367*593dc095SDavid du ColombierAdd missing space in CVS PRE-RELEASE string.</pre> 368*593dc095SDavid du Colombier<p>[src/gscdef.c 1.57]</p> 369*593dc095SDavid du Colombier</blockquote> 370*593dc095SDavid du Colombier 371*593dc095SDavid du Colombier<p><strong><a name="2005-10-07_1946"></a> 372*593dc095SDavid du Colombier2005-10-07 19:46 Ray Johnston</strong></p> 373*593dc095SDavid du Colombier<blockquote> 374*593dc095SDavid du Colombier<pre> 375*593dc095SDavid du ColombierBump version after the 8.52 release (to 8.53 CVS PRE-RELEASE).</pre> 376*593dc095SDavid du Colombier<p>[doc/News.htm 1.167, lib/gs_init.ps 1.120, src/gscdef.c 1.56, src/version.mak 1.86]</p> 377*593dc095SDavid du Colombier</blockquote> 378*593dc095SDavid du Colombier</body> 379*593dc095SDavid du Colombier</html> 380