26 #include "classfile/classLoader.hpp" |
26 #include "classfile/classLoader.hpp" |
27 #include "classfile/javaAssertions.hpp" |
27 #include "classfile/javaAssertions.hpp" |
28 #include "classfile/javaClasses.hpp" |
28 #include "classfile/javaClasses.hpp" |
29 #include "classfile/symbolTable.hpp" |
29 #include "classfile/symbolTable.hpp" |
30 #include "classfile/systemDictionary.hpp" |
30 #include "classfile/systemDictionary.hpp" |
|
31 #if INCLUDE_CDS |
|
32 #include "classfile/sharedClassUtil.hpp" |
|
33 #include "classfile/systemDictionaryShared.hpp" |
|
34 #endif |
31 #include "classfile/vmSymbols.hpp" |
35 #include "classfile/vmSymbols.hpp" |
32 #include "gc_interface/collectedHeap.inline.hpp" |
36 #include "gc_interface/collectedHeap.inline.hpp" |
33 #include "interpreter/bytecode.hpp" |
37 #include "interpreter/bytecode.hpp" |
34 #include "memory/oopFactory.hpp" |
38 #include "memory/oopFactory.hpp" |
35 #include "memory/universe.inline.hpp" |
39 #include "memory/universe.inline.hpp" |
994 |
998 |
995 Klass* k = SystemDictionary::find_instance_or_array_klass(klass_name, |
999 Klass* k = SystemDictionary::find_instance_or_array_klass(klass_name, |
996 h_loader, |
1000 h_loader, |
997 Handle(), |
1001 Handle(), |
998 CHECK_NULL); |
1002 CHECK_NULL); |
999 |
1003 #if INCLUDE_CDS |
|
1004 if (k == NULL) { |
|
1005 // If the class is not already loaded, try to see if it's in the shared |
|
1006 // archive for the current classloader (h_loader). |
|
1007 instanceKlassHandle ik = SystemDictionaryShared::find_or_load_shared_class( |
|
1008 klass_name, h_loader, CHECK_NULL); |
|
1009 k = ik(); |
|
1010 } |
|
1011 #endif |
1000 return (k == NULL) ? NULL : |
1012 return (k == NULL) ? NULL : |
1001 (jclass) JNIHandles::make_local(env, k->java_mirror()); |
1013 (jclass) JNIHandles::make_local(env, k->java_mirror()); |
1002 JVM_END |
1014 JVM_END |
1003 |
1015 |
1004 |
1016 |