RFR (S) 8185296: java_lang_Class::array_klass should be array_klass_acquire
coleen.phillimore at oracle.com
coleen.phillimore at oracle.com
Tue Jul 25 17:51:29 UTC 2017
For consistency with https://bugs.openjdk.java.net/browse/JDK-8185296
should have made array_klass use load_acquire.
open webrev at http://cr.openjdk.java.net/~coleenp/8185296.01/webrev
bug link https://bugs.openjdk.java.net/browse/JDK-8185296
Tested with inserted (now removed) print for the component mirror. Eg:
printing mirror for component mirror:
java.lang.Class
{0x00000000f3a25be8} - klass: 'java/lang/Class'
- ---- fields (total size 15 words):
- private volatile transient strict 'cachedConstructor'
'Ljava/lang/reflect/Constructor;' @12 NULL (0 0)
- private volatile transient strict 'newInstanceCallerCache'
'Ljava/lang/Class;' @16 NULL (0 f3a26948)
- private transient 'name' 'Ljava/lang/String;' @20
"jdk.tools.jlink.internal.ImageLocationWriter"{0x00000000f3a26948}
(f3a26948 eab3f768)
- private transient 'module' 'Ljava/lang/Module;' @24 a
'java/lang/Module'{0x00000000eab3f768} (eab3f768 eaaa0000)
- private final 'classLoader' 'Ljava/lang/ClassLoader;' @28 a
'jdk/internal/loader/ClassLoaders$AppClassLoader'{0x00000000eaaa0000}
(eaaa0000 eab4d438)
- private transient 'packageName' 'Ljava/lang/String;' @32
"jdk.tools.jlink.internal"{0x00000000eab4d438} (eab4d438 0)
- private final strict 'componentType' 'Ljava/lang/Class;' @36 NULL (0 0)
- private volatile transient strict 'reflectionData'
'Ljava/lang/ref/SoftReference;' @40 NULL (0 0)
- private volatile transient 'genericInfo'
'Lsun/reflect/generics/repository/ClassRepository;' @44 NULL (0 0)
- private volatile transient strict 'enumConstants'
'[Ljava/lang/Object;' @48 NULL (0 0)
- private volatile transient strict 'enumConstantDirectory'
'Ljava/util/Map;' @52 NULL (0 0)
- private volatile transient 'annotationData'
'Ljava/lang/Class$AnnotationData;' @56 NULL (0 0)
- private volatile transient 'annotationType'
'Lsun/reflect/annotation/AnnotationType;' @60 NULL (0 0)
- transient 'classValueMap' 'Ljava/lang/ClassValue$ClassValueMap;'
@64 NULL (0 eab49d08)
- private volatile transient 'classRedefinedCount' 'I' @96 0
- signature: Ljdk/tools/jlink/internal/ImageLocationWriter;
- fake entry for mirror: 'jdk/tools/jlink/internal/ImageLocationWriter'
- fake entry for array:
'jdk/tools/jlink/internal/ImageLocationWriter'[] <=== HERE
- fake entry for oop_size: 15
- fake entry for static_oop_field_count: 0
- static final synthetic '$assertionsDisabled' 'Z' @112 true
Thanks,
Coleen
More information about the hotspot-dev
mailing list