See bug https://bugs.openjdk.java.net/browse/JDK-8240254
This is for the new added quick_resolve function investigation.
diff -r 624d51be7acd src/hotspot/share/classfile/systemDictionary.cpp
--- a/src/hotspot/share/classfile/systemDictionary.cpp Fri Feb 28 12:49:37 2020 -0800
+++ b/src/hotspot/share/classfile/systemDictionary.cpp Fri Feb 28 17:53:35 2020 -0800
@@ -1918,6 +1918,7 @@
}
#endif
+#if INCLUDE_CDS
void SystemDictionary::quick_resolve(InstanceKlass* klass, ClassLoaderData* loader_data, Handle domain, TRAPS) {
assert(!Universe::is_fully_initialized(), "We can make short cuts only during VM initialization");
assert(klass->is_shared(), "Must be shared class");
@@ -1948,6 +1949,7 @@
add_to_hierarchy(klass, CHECK);
assert(klass->is_loaded(), "Must be in at least loaded state");
}
+#endif
bool SystemDictionary::resolve_wk_klass(WKID id, TRAPS) {
assert(id >= (int)FIRST_WKID && id < (int)WKID_LIMIT, "oob");
diff -r 624d51be7acd src/hotspot/share/classfile/systemDictionary.hpp
--- a/src/hotspot/share/classfile/systemDictionary.hpp Fri Feb 28 12:49:37 2020 -0800
+++ b/src/hotspot/share/classfile/systemDictionary.hpp Fri Feb 28 17:53:35 2020 -0800
@@ -634,7 +634,7 @@
// Resolve well-known classes so they can be used like SystemDictionary::String_klass()
static void resolve_well_known_classes(TRAPS);
// quick resolve using CDS for well-known classes only.
- static void quick_resolve(InstanceKlass* klass, ClassLoaderData* loader_data, Handle domain, TRAPS);
+ static void quick_resolve(InstanceKlass* klass, ClassLoaderData* loader_data, Handle domain, TRAPS) NOT_CDS_RETURN;
// Class loader constraints
static void check_constraints(unsigned int hash,
This is for the new added quick_resolve function investigation.
diff -r 624d51be7acd src/hotspot/share/classfile/systemDictionary.cpp
--- a/src/hotspot/share/classfile/systemDictionary.cpp Fri Feb 28 12:49:37 2020 -0800
+++ b/src/hotspot/share/classfile/systemDictionary.cpp Fri Feb 28 17:53:35 2020 -0800
@@ -1918,6 +1918,7 @@
}
#endif
+#if INCLUDE_CDS
void SystemDictionary::quick_resolve(InstanceKlass* klass, ClassLoaderData* loader_data, Handle domain, TRAPS) {
assert(!Universe::is_fully_initialized(), "We can make short cuts only during VM initialization");
assert(klass->is_shared(), "Must be shared class");
@@ -1948,6 +1949,7 @@
add_to_hierarchy(klass, CHECK);
assert(klass->is_loaded(), "Must be in at least loaded state");
}
+#endif
bool SystemDictionary::resolve_wk_klass(WKID id, TRAPS) {
assert(id >= (int)FIRST_WKID && id < (int)WKID_LIMIT, "oob");
diff -r 624d51be7acd src/hotspot/share/classfile/systemDictionary.hpp
--- a/src/hotspot/share/classfile/systemDictionary.hpp Fri Feb 28 12:49:37 2020 -0800
+++ b/src/hotspot/share/classfile/systemDictionary.hpp Fri Feb 28 17:53:35 2020 -0800
@@ -634,7 +634,7 @@
// Resolve well-known classes so they can be used like SystemDictionary::String_klass()
static void resolve_well_known_classes(TRAPS);
// quick resolve using CDS for well-known classes only.
- static void quick_resolve(InstanceKlass* klass, ClassLoaderData* loader_data, Handle domain, TRAPS);
+ static void quick_resolve(InstanceKlass* klass, ClassLoaderData* loader_data, Handle domain, TRAPS) NOT_CDS_RETURN;
// Class loader constraints
static void check_constraints(unsigned int hash,
- duplicates
-
JDK-8240257 Add CDS guard to SystemDictionary::quick_resolve
-
- Closed
-
- relates to
-
JDK-8240254 Build is broken when cds is disabled after JDK-8236604
-
- Resolved
-
-
JDK-8236604 Optimize SystemDictionary::resolve_well_known_classes for CDS
-
- Resolved
-