DEC C++ AACRTVAXE03060 Run Time Components ECO Summary
Copyright (c) Digital Equipment Corporation 1994, 1995. All rights reserved.
PRODUCT: DEC C/C++ Run-Time Components Version 6.0 for OpenVMS VAX
OP/SYS: OpenVMS VAX
COMPONENT: Run-Time Components
SOURCE: Digital Equipment Corporation
ECO INFORMATION:
Engineering Cross Reference: AACRTVAXE03060
ECO Kits Superseded by This ECO Kit: AACRTVAXE02060
AACRTVAXECO01060
ECO Kit Approximate Size: 7560 Blocks
Kit Applies To: DEC C/C++ Run-Time Components Version 6.0
OpenVMS VAX V5.5, V5.5-1, V5.5-2, V6.0
System Reboot Necessary: No
ECO KIT SUMMARY:
An ECO (patch) kit exists for DEC C/C++ Run-Time Components V6.0
on OpenVMS VAX V5.5 through V6.0. This kit addresses the
following problems:
Problems addressed in AACRTVAXE03060:
The purpose of this ECO kit is to allow the DEC C/C++ Run-Time
Components Version 6.0 for OpenVMS VAX kit to contain a DEC C++
Class Library component which is equivalent to the fixes released in
OpenVMS VAX Version 6.2. It also contains some corrections to the
installation procedures. Please see the Release Notes contained in
the kit for complete installation instructions.
Known Problems Corrected in the DEC C/C++ Run-Time Components Version
6.0 for OpenVMS VAX kit CXXL V1.2 component and messages.
o An access violation or segmentation fault is no longer generated
when an application writes into an uninitialized ostream_withassign.
The written text is simply ignored.
o The class library image supplied with the previous ECO for
DEC C/C++ Run-Time Components for VAX/VMS (AACRTVAXE02060 or
CSCPAT_1150012) incorrectly believed that the size of a
strstreambuf was several bytes larger than the header file
defined. So if your application declared a strstreambuf, the
strstreambuf constructor and several other strstreambuf
functions would write into the memory beyond that allocated
your strstreambuf. The consequences were unpredictable.
o An access violation no longer occurs when a null pointer is
passed to the insertion (<<) operator within the ostream class.
o The dynamic expansion of strstream and ostrstream buffers has
been corrected. Previously, when data was inserted which
overflowed the buffer, the expansion of the buffer could fail
even if memory was available. This resulted in the buffer
contents being truncated.
o A file positioning problem for bidirectional fstreams has been
corrected. Previously if your application switched from reading
an fstream to writing fstream, with or without an intervening
seek operation, the necessary synchronization of the external
file position with the get pointer was 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 >> 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 The flush() function within the ostream class was incorrectly
calling overflow(). Now flush() calls sync() as documented.
o The ignore() function within the istream class now works
correctly. Previously it would ignore two and only two
characters.
o The input functions within the stdiostream class no longer skip
every other character.
o The sync_with_stdio() function within the ios class no longer
causes subsequent istream operations to skip every other
character.
o The SYS$OUTPUT and SYS$ERROR files are no longer opened during
the initialization of cout and cerr, respectively. Previously
this behavior resulted in an empty file being created when
SYS$OUTPUT or SYS$ERROR was defined to be a file and the
application generated no output.
o The showpoint flag within the ios class now forces the decimal
point to be displayed.
Known Problems Corrected in the DEC C/C++ Run-Time Components Version 6.0
for OpenVMS VAX kit installation files:
o CRT$STARTUP.COM now allows each node starting up in a cluster
to create its own version of check_id_results.txt, the file
used to hold the results of any installation problems. This
will prevent more than two nodes in a cluster which start up at
the same time from colliding in their use of this file.
o KITINSTAL.COM was corrected to check the last line of the
control file for the DEC C/C++ Run Time Components installation
kit for table parsing errors. Previously the next to last line
was checked, allowing table parsing errors to be missed.
o KITINSTAL.COM was also corrected to issue an error message when
a table parsing error is encountered. Previously no error
message was generated.
o CRT$SPEC.DAT had its table entry for CMA$OPEN_LIB_SHR.EXE
corrected.
Problems addressed in AACRTVAXE02060:
The DEC C/C++ Run-Time Component release notes contains a
complete explanation of the fixes that have been applied. All of
the fixes are to the DEC C++ Class Library component of the kit.
The DEC C++ Class Library provided with this ECO is functionally
equivalent to the one provided with the Version 6.1 release of
OpenVMS VAX. There have been no modifications to the C Run-Time
library or DECthread specific components.
o The seekpos and seekoff fstream member functions would not
reset the file pointer and would not return an error. This
ECO correctly resets the file pointer and returns an error
if the file pointer cannot be reset.
o There was a memory leak with the string concatenation
operator ("+"), such that the previous string storage
area was not released.
o There was a memory leak with the string substring operator
("()"), such that the previous string storage area was not
released.
o A string assignment of one string to another resulted in
subsequent assignments to one string incorrectly affecting
the other. Consequently, a constant string that was assigned
to another (non-constant) string would be incorrectly changed
when the non-constant string was modified through the += and
>> operators. This ECO prevents any string operation from
affecting other string objects.
o In some cases, a socket device created prior to an ifstream
object disappeared when the ifstream object was deleted.
This ECO correctly limits the effect of an ifstream deletion
to just its memory and associated file.
o EOF or other failures would not return any value. Consequently,
input operations that reused an input buffer without clearing
it would appear to return the last valid input twice. This
showed up as a loop that read a file and returned the last
line of the file twice. This ECO correctly zeroes the input
buffer if eof or another input error occurs.
o String input operations would return only the characters, but
would fail to null-terminate them. Consequently, input operations
that reused an input buffer without rezeroing it would appear to
return short strings appended to previously read longer strings.
This ECO correctly terminates the input buffer after reading a
string from a file.
o The fstream buffers would not have been cleared after a file had
been closed and reopened. Consequently, the first input operation
on a previously closed and reopened file would have incorrectly
returned the results of the last input operation prior to closing
the file. This ECO correctly resets all internal state of an
fstream object when its associated file is closed, and correctly
reopens files.
o A single zero in a file was incorrectly ignored when reading int
values. This ECO correctly reads single zero as zero.
INSTALLATION NOTES:
The system does not need to be rebooted after installation. The
installation procedure invokes the startup procedure
SYS$COMMON:[SYS$STARTUP]CRT$STARTUP.COM
to install DEC C/C++ Run Time Component shareable and message images.
This patch can be found at any of these sites:
Colorado Site
Georgia Site
Files on this server are as follows:
aacrtvaxe03060.README
aacrtvaxe03060.CHKSUM
aacrtvaxe03060.CVRLET_TXT
aacrtvaxe03060.a-dcx_vaxexe
|