For the JDK 116 release on the OpenVMS platform running on DIGITAL's
hardware, DIGITAL has changed, the following JDK 116 source files
in the shared part of the JDK.
A potential bug footprint occurs, i.e. an unhand followed by a memory operation that can provoke GC followed by a use of the unhanded pointer;
src/share/java/lang/filesystem.c
* @(#)filesystem.c 1.49 98/07/01
Added called to unhand directly before use of thisptr:
i.e. thisptr = unhand(this);
diff -c -r JDK116/src/share/java/lang/filesystem.c
sun_JDK116/src/share/java/lang/filesystem.c
*** JDK116/src/share/java/lang/filesystem.c Thu May 21 02:03:44 1998
--- sun_JDK116/src/share/java/lang/filesystem.c Thu Apr 16 13:49:48 1998
***************
*** 299,307 ****
narr = (HArrayOfString *) ArrayAlloc(T_CLASS, maxlen <<= 1);
if (narr == NULL) {
char utfPath[128];
- /* Dir ops may trigger GC, trashing ptr; reunhand -- jlr */
- /* follow DU lead MPH __VMS */
- thisptr = unhand(this);
javaString2UTF(thisptr->path, utfPath, sizeof(utfPath));
sysCloseDir(dir);
SignalError(0, JAVAPKG "OutOfMemoryError", utfPath);
--- 297,302 ----
***************
*** 329,337 ****
narr = (HArrayOfString *)ArrayAlloc(T_CLASS, len);
if (narr == NULL) {
char utfPath[128];
- /* follow digital Unix lead MPH __VMS */
- /* May not need to reunhand here, but it's cheap insurance-- jlr */
- thisptr = unhand(this);
javaString2UTF(thisptr->path, utfPath, sizeof(utfPath));
sysCloseDir(dir);
SignalError(0, JAVAPKG "OutOfMemoryError", utfPath);
hardware, DIGITAL has changed, the following JDK 116 source files
in the shared part of the JDK.
A potential bug footprint occurs, i.e. an unhand followed by a memory operation that can provoke GC followed by a use of the unhanded pointer;
src/share/java/lang/filesystem.c
* @(#)filesystem.c 1.49 98/07/01
Added called to unhand directly before use of thisptr:
i.e. thisptr = unhand(this);
diff -c -r JDK116/src/share/java/lang/filesystem.c
sun_JDK116/src/share/java/lang/filesystem.c
*** JDK116/src/share/java/lang/filesystem.c Thu May 21 02:03:44 1998
--- sun_JDK116/src/share/java/lang/filesystem.c Thu Apr 16 13:49:48 1998
***************
*** 299,307 ****
narr = (HArrayOfString *) ArrayAlloc(T_CLASS, maxlen <<= 1);
if (narr == NULL) {
char utfPath[128];
- /* Dir ops may trigger GC, trashing ptr; reunhand -- jlr */
- /* follow DU lead MPH __VMS */
- thisptr = unhand(this);
javaString2UTF(thisptr->path, utfPath, sizeof(utfPath));
sysCloseDir(dir);
SignalError(0, JAVAPKG "OutOfMemoryError", utfPath);
--- 297,302 ----
***************
*** 329,337 ****
narr = (HArrayOfString *)ArrayAlloc(T_CLASS, len);
if (narr == NULL) {
char utfPath[128];
- /* follow digital Unix lead MPH __VMS */
- /* May not need to reunhand here, but it's cheap insurance-- jlr */
- thisptr = unhand(this);
javaString2UTF(thisptr->path, utfPath, sizeof(utfPath));
sysCloseDir(dir);
SignalError(0, JAVAPKG "OutOfMemoryError", utfPath);
- relates to
-
JDK-4084384 KEEP_POINTER_ALIVE missing in 1.1.x
- Closed