?? history4.htm
字號(hào):
- Per Adobe, in the CCITTFaxDecode filter, EndOfBlock = true should
cause Rows to be ignored. (scfd.c)
- If an output stream returned EOFC, an infinite loop might result.
This problem (and the fix) are in the same fragile code as the EOD fix in
4.74, and we may again have introduced a new bug. (stream.c)
Changes the eexecDecode filter so that instead of a number, it can take a
dictionary with two keys, seed and lenIV. (Having eexecDecode skip initial
bytes at all was a design bug that is too late to fix.) (sfilter.h,
seexec.c)
<h2><a name="V4.80_Library"></a>Library</h2>
Fixes bugs:
- The default mapping from RGB+alpha to RGB didn't lighten
(premultiply) the color according to the alpha value. (gxcmap.c)
- The angle error metric for rational tangent screen parameters
should be simply the difference in angle, not a ratio. (gshtscr.c)
- gs_setcolorscreen and gs_sethalftone didn't initialize an
allocator pointer, leading to memory access errors. (gsht1.c)
- If a banded image was clipped, an invalid band list could be
produced. (gxclimag.c)
- A picky compiler wouldn't allow an enum to be &&'ed with a
boolean. (gschar.c)
- A short-sighted compiler didn't allow the use of actual procedure
names (as opposed to procedure variables) in a conditional expression.
(gxfill.c)
- A compiler objected to a name longer than 31 characters. (gzht.h,
gsht.c, gxclread.c)
- The height computations for banded images were not consistent,
possibly leading to invalid band lists. (gxclimag.c)
- copypage didn't reset the band writer and band reader bookkeeping
consistently, leading to incorrect output and possible errors. (gxcldev.h,
gxclist.c, gxclread.c)
- When banding, changing the halftone could lead to accessing memory
after freeing it. (gxclread.c)
- When using disk files for band storage, showpage didn't actually
delete or truncate the band list file, possibly causing subsequent copypage
operations to become confused. (gxclfile.c)
- When banding, having more than one image operator in progress at a
time confused the rasterizing pass and could produce arbitrary errors. From
PostScript, this can only happen in the case of an image whose data source
was a procedure-based stream that itself invoked an image operator: this is
a senseless and perverse thing to do, but it shouldn't break the code (and a
Genoa CET file actually does it). (gxclist.h, gxclimag.c, gxclist.c)
- Some picky compilers objected to negating unsigned values.
(gsuid.h, gsht.c, gsmemory.c, gxpcopy.c)
- When banding, if a 90- or 270-degree rotated monobit image was
clipped, invalid memory accesses could occur. (gximage.h, gximage1.c)
- The showpage count passed to the BeginPage and EndPage procedures
was incremented only if a page was printed, rather than for every invocation
of showpage. Fixing this requires removing the incrementing of the count
from the library level altogether. (gsdevice.c)
- When rendering a subrectangle of an image, the X DDA was
initialized incorrectly, causing possible errors. We think this only
affected certain banded images. (gxdda.h)
Adds a provision for images with an alpha component, under an #ifdef DPNEXT.
****** THE BANDING CODE HAS NOT BEEN UPDATED YET. ****** (gsiparam.h,
gxcmap.h, gxdither.h, gximage.h, gsimage.c, gxclimag.c, gxclread.c,
gxcmap.c, gximage.c, gximage3.c, gximage4.c ****** NOT DONE YET ******,
gximage5.c)
Adds a return_if_error macro to capture the common idiom of making a call
and then returning its value if that value is negative (error). (gserror.h)
<h1><a name="Version4.74"></a>Version 4.74 (limited) (5/5/97)</h1>
This fileset is supposed to fix all remaining errors reported by the Genoa
CET, and is intended to be the last incremental test fileset before the 5.0
release.
<h2><a name="V4.74_Documentation"></a>Documentation</h2>
Fixes bugs:
- Mark procedures are *not* executed in the normal return case.
(estack.h)
- The line_params element of a gs_imager_state is *not* allocated
separately. (gsstate.c)
- The value passed to the PDF writer for text is a dictionary, not
an array. (gdevpdft.c)
Improves the documentation of gstate memory management. (gsstate.c)
Documents end_status = EOFC for writing streams. (stream.h, strimpl.h)
Clarifies memory management for halftones and device halftones. (gsht1.h,
gxdht.h, gxht.h, gzht.h)
Removes the "experimental" tag from the PostScript and EPS writers.
(devs.mak)
<h2><a name="V4.74_Utilities"></a>Utilities</h2>
Fixes bugs:
- The viewpcx utility scaled images improperly. (viewpcx.ps)
- If a PDF file used F instead of f for filling a path, pdf2ps
didn't output the fill operation. (pdf_base.ps)
Changes the ps2pdf script so that, like pdf2ps, it allows debugging
switches. (ps2pdf)
<h2><a name="V4.74_Drivers"></a>Drivers</h2>
Fixes bugs:
- The vgalib driver didn't clip monobit images properly.
(gdevvglb.c)
- The X driver asked for exposure events to be reported, but never
read them, causing the event queue to grow indefinitely. (gdevxini.c)
- The "vector" drivers and the PDF writer didn't properly keep track
of whether the current clipping region was the default one. (gs_pdfwr.ps,
gdevvec.h, gdevvec.c, gdevpdf.c, gdevpdft.c)
- The PDF writer had word and character spacing interchanged.
(gdevpdft.c)
- The PDF writer scaled word and character spacing incorrectly.
(gdevpdft.c)
<h2><a name="V4.74_Interpreter"></a>Interpreter</h2>
Fixes bugs:
- The user object operators didn't leave the stack in a clean state
if they failed. (gs_dps2.ps)
- UserObjects wasn't actually defined. (gs_dps2.ps)
- deviceinfo and set/currenthalftonephase were defined even if the
dps feature wasn't selected. (int.mak, gs_dps.ps, gs_dps1.ps, gs_lev2.ps,
zdps.c, zdps1.c)
- The dps feature didn't automatically include the level2 feature,
which it needs. (int.mak)
- The DPS user names mechanism didn't work, since the user names
array was subject to save and restore. (It still doesn't really work --
there is no provision for expanding the user names array, which is created
with length 0.) (gs_btokn.ps, ivmspace.h, zbseq.c, zdps.c)
- The DPS context operators didn't do all the necessary error
checking. (zcontext.c)
- The debugging printout for names printed the name index in hex
without identifying it as such. (idebug.c)
- Adding the first non-name key (or name key with a name index
beyond 4K) to a dictionary that had any deleted entries could cause some
entries to apparently disappear. (idict.c)
- If a sub-table of the name table was freed during garbage
collection, memory could be left in an inconsistent state. (iname.c, igc.c)
- findfont didn't restore the stacks reliably if an error occurred.
(gs_fonts.ps)
- definefont with an invalid Type 0 font sometimes added a FID entry
(with a dangling pointer) if it failed. (Recovering properly from a VMerror
during font creation would require a much more complicated fix than this,
but since we expect a garbage collection to occur in that case, we aren't
concerned about it.) (zfont0.c)
- Reading parameter values from a dictionary could access beyond the
end of the array that keeps track of which entries had been referenced.
(idict.h, idict.c, iparam.c)
- Halftone data was allocated in the current VM rather than in the
same VM as the halftone dictionary or procedure. (Fixing this includes
updating code as necessary for the change in halftone and device halftone
allocation.) (iht.h, ivmspace.h, zht.c, zht1.c, zht2.c)
- Closed non-executable files on the e-stack could cause a restore
to be invalid. (zvmem.c)
Adds skeleton code for the NeXT Display PostScript alpha and compositing
operators. This is not ready for use yet! (errors.h, gs_dpnxt.ps,
zdpsnext.c)
Implements more of state saving and restoring for Display PostScript
contexts. This is not ready for use yet either. (int.mak, icontext.h,
istack.h, icontext.c, zcontext.c)
Adds stub code for the Display PostScript view clip operators. (gs_dps.ps,
zdps.c)
Removes the obsolete PPM-writing operator. (int.mak, vms.mak, *.mak,
zwppm.c)
Makes the random number generator state public so it can be stored in the
context state. (zmath.c)
Changes the flag for forcing global garbage collection to a run-time
variable, for debugging. (igc.c)
Changes the handling of job control so that it doesn't use procedures that
produce an execstackoverflow when being printed. (gs_init.ps)
Updates code as necessary for the change in reference counting. (zcie.c,
zcrd.c)
Updates code as necessary for the change in off-stack gstate copying.
(zdps1.c)
Removes a small bit of obsolete code. (interp.c)
<h2><a name="V4.74_Streams"></a>Streams</h2>
Fixes bugs:
- An output stream that was not the last one in a pipeline could
incorrectly be asked to write its EOD marker more than once. (The fix is
very fragile and may have introduced new bugs.) (stream.c)
<h2><a name="V4.74_Library"></a>Library</h2>
Fixes bugs:
- The gx_device_halftone_release procedure was declared in two
different header files. (gzht.h)
- Off-stack copying of gstates could lead to a situation where
different parts of a single gstate were owned by different allocators; this
could cause them to be freed improperly, corrupting memory. We fixed this
partly by making the mixed ownership situation work, and partly by copying
more of the gstate when off-stack gstates are involved. Unfortunately, the
fixes are subtle and may have introduced new bugs. (gsstate.h, gsht.c,
gsht1.c, gspcolor.c, gsstate.c)
- If an error occurred while creating a Pattern instance, the
partially initialized instance structure wasn't freed. (gspcolor.c)
- Halftones and device halftones didn't allocate their clones or
their subsidiary structures with the correct allocator. (gsht.c, gsht1.c)
- The error statement when allocating a reference-counted object had
to be a control transfer. (gsrefct.h)
- Copying gstates incorrectly copied the memory and saved pointers,
and the pointer to the dash pattern. (gsstate.c)
- Flatness values less than 0.5 produced far more line segments than
necessary (roughly the square of the required number). Fixing this may have
bad effects on character quality -- this remains to be seen. (gxpflat.c)
- An error during installation of a halftone could leave things in
an inconsistent state. (gsht.c)
- The API didn't provide enough flexibility with respect to memory
management for halftones, or guarantee consistent allocation of a halftone
and its subelements. (gsht1.h, gsht.c, gsht1.c, gshtscr.c)
- Releasing a path didn't clear enough pointers to ensure clean
garbage collection. (gxpath.c)
- Finalizing or discarding a (cached) scaled font didn't properly
unlink it from the scaled_fonts list. (gsfont.c)
- Invoking an image operator within the BuildChar procedure for a
charpath caused an infinite loop. (gsimage.c)
- The bookkeeping for the scaled font cache was incorrect: the count
didn't always get decremented when a scaled font was freed. (gsfont.c)
- "High level" masked images were written incorrectly in the band
list as black-and-white images. (gxclimag.c)
- For "high level" images with fewer than 4 samples per pixel,
non-standard Decode values were written incorrectly in the band list.
(gxclimag.c)
- The color wasn't set correctly for "high level" masked images.
(gxclimag.c)
- The fastest case of monobit image rendering could get a memory
access error if the image lay partly outside the page. (gximage1.c)
- Clipping with an empty path was a no-op, rather than clipping out
everything. (gxcpath.c)
Makes reference-counted objects remember which allocator owns them: this
entails a NON-BACKWARD-COMPATIBLE change to some of the macros for reference
counting. This was necessary to fix the off-stack gstate copying problem.
(gsrefct.h, gscie.c, gscolor.c, gscolor1.c, gscolor2.c, gscsepr.c,
gsstate.c, gxclread.c)
Refactors the unpacking of image data, to make unpacking available as a
general facility. (gximage.h, gxsample.h, gximage.c, gximage0.c,
gximage1.c, gximage4.c, gxsample.c)
Enhances -Z? so that before freeing an object, it checks that the object was
owned by the correct allocator. (gsalloc.c)
<h1><a name="Version4.73"></a>Version 4.73 (limited) (4/19/97)</h1>
This is an incremental bug fix release made primarily to provide a
synchronization point for an upcoming trip.
<h2><a name="V4.73_Documentation"></a>Documentation</h2>
Fixes bugs:
- A reference to the uniprint documentation was incorrect.
(current.txt)
- -Olimit 1000 is not enough now for DEC Ultrix, 1200 is required;
this is also required for SGI IRIX. (make.txt)
Adds argument/result comments to all the operators defined in gs_lev2.ps.
(Eventually we will do this for all operators defined as PostScript
procedures.) (gs_lev2.ps)
<h2><a name="V4.73_Procedures"></a>Procedures</h2>
Fixes bugs:
- The makefiles didn't provide a default value for GCONFIG_EXTRAS.
(gs.mak)
<h2><a name="V4.73_Utilities"></a>Utilities</h2>
Fixes bugs:
- pdf2ps didn't work with TrueType or compressed Type 1 fonts.
(gs_pdf.ps, pdf_2ps.ps, pdf_font.ps)
<h2><a name="V4.73_Drivers"></a>Drivers</h2>
Fixes bugs:
- A cast from byte to char was omitted. (gdevpdfm.c)
<h2><a name="V4.73_Platforms"></a>Platforms</h2>
Updates the VMS script (again). (vms.mak)
<h2><a name="V4.73_Interpreter"></a>Interpreter</h2>
Fixes bugs:
- A module that used strlen didn't include string_.h. (zdevice.c)
- Because of some bad PostScript code in FrameMaker output, identity
rather than unity black generation and undercolor removal functions are
required on black-and-white devices. (gs_init.ps)
- A harmless internal error during initialization left bogus
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -