OSF-AXP CXXSHRDAE01307 DEC C++ Class Library Run-Time V3.0 ECO Summary
Copyright (c) Digital Equipment Corporation 1995. All rights reserved.
PRODUCT: DEC OSF/1 Version 3.0, 3.2, 3.2C
COMPONENT: DEC C++ Class Library Run-Time Version 3.0
SOURCE: Digital Equipment Corporation
ECO INFORMATION:
ECO Kit Name: CXXSHRDAE01307
ECO Kits Superseded by This ECO Kit: CXXSHRDAE01306
ECO Kit Approximate Size: cxxshrdae01307.tar 399360 Bytes
ECO KIT SUMMARY:
An ECO kit exists for DEC C++ Class Library Run-Time V3.0 on DEC OSF/1
V3.0,3.2,3.2C. This kit addresses the following problems:
o When the Complex Library exp() function detects an underflow
error, the resulting value is now (0,0) instead of (+/-
max-float, +/- max-float).
o The division routines within the Complex Library now catch
divide-by-zero errors instead of signaling them.
o There is no longer a memory leak when you use the *_withassign
assignment operators to initialize an object for which you have
called xalloc(). Previously, the memory allocated for the
object by xalloc() was lost.
o The String extraction operator now takes care of dynamically
allocating the String to accommodate the input.
o When you open a file specifying ios::ate but not ios::app to
the filebuf open() function, the file is no longer opened in
O_APPEND mode. This incorrect behavior caused all data to be
written to the end of the file, regardless of the current file
position.
o Various problems with exception handling have been fixed.
Also, support for exception handling in DEC C++ V5.3 has been
added.
o The catch(...) clause now catches C structured exceptions.
o The fstream, ifstream, and ofstream close() member functions
now clear the stream's error status when the close succeeds.
Known restrictions in CXXSHRDAE01307 kit
o A single application is restricted from using both the math
library function clog() and the iostream Package's clog object.
This restriction is due to the fact that libm and libcxx each
contain a definition for the global symbol clog and those
definitions are incompatible.
Furthermore, applications which reference one of the clog
symbols cannot include both -lcxx and -lm on their ld command
line. ld will generate an error because clog is multiply
defined.
Problems addressed in previous CXXSHRDAE01306 kit
o The >> operator within the istrstream class now works correctly
when converting from a character string to a float.
o An access violation or segmentation fault is no longer
generated when your application writes into an uninitialized
ostream_withassign. Instead the written text is simply
ignored.
o A file positioning problem for bidirectional fstreams has been
corrected. Previously if your application switched from
reading an fstream to writing an fstream, with or without an
intervening seek operation, the necessary synchronization of
the external file position with the get pointer was often
skipped. This resulted in the written data being placed
incorrectly within the file.
o The real() function within the stopwatch class was incorrectly
returning the CPU time. Now it returns the clock time as
documented.
o The flush() function within the ostream class was incorrectly
calling overflow(). Now flush() calls sync() as documented.
o During the destruction of a Message object, the value of the
LANG environment variable is no longer cleared.
o Instances of ostrstream no longer delete their strstreambuf
twice. This had no effect on the standard memory allocators,
but it did cause problems for some third party memory
allocators.
o The segmentation fault in sync_with_stdio() no longer occurs.
The segmentation fault was due to the conflict between the clog
function within the math library and the clog object within the
iostream Package.
o The strstreambuf destructor no longer deletes the buffer if
str() has been called. As documented, the str() function now
transfers the responsibility of freeing the buffer to the
caller.
o The >> operator within the istrstream class now works correctly
when the conversion base format is hex and hexadecimal values
are read which begin with "0" but are not prefixed with "0x".
o A segmentation fault no longer occurs during image exit for
applications which called sync_with_stdio(). Previously, the
call to sync_with_stdio() would free memory which was again
freed at image exit; this sometimes generated a segmentation
fault.
o The algorithm used by ostrstream for dynamic allocation has
been corrected. The previous algorithm doubled the buffer size
each time additional space was needed, and this resulted in
very inefficient use of memory for large buffers.
INSTALLATION NOTES:
This DEC C++ Class Library kit may be installed on DEC OSF/1
Version 3.0, 3.2, and 3.2C. The tar file, CXXSHRDAE01307.tar, must
be unpacked before using the setld utility to install the kit.
When you unpack the tar file, you will find the release notes in a
separate file, CXXSHRDAE01307.RELEASE_NOTES.
After unpacking the tar file, install this kit with the setld
utility by logging into the root account and typing the following:
/usr/sbin/setld -l [location of the unpacked files]
This patch can be found at any of these sites:
Colorado Site
Georgia Site
European Site
Files on this server are as follows:
cxxshrdae01307.README
cxxshrdae01307.CHKSUM
cxxshrdae01307.CVRLET_TXT
cxxshrdae01307.tar