mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 02:54:35 +02:00
8046070: Class Data Sharing clean up and refactoring
Cleaned up CDS to be more configurable, maintainable and extensible Reviewed-by: dholmes, coleenp, acorn, mchung
This commit is contained in:
parent
1fec07f4bf
commit
bbe6f51f81
42 changed files with 2087 additions and 434 deletions
|
@ -28,6 +28,10 @@
|
|||
#include "classfile/javaClasses.hpp"
|
||||
#include "classfile/stringTable.hpp"
|
||||
#include "classfile/systemDictionary.hpp"
|
||||
#if INCLUDE_CDS
|
||||
#include "classfile/sharedClassUtil.hpp"
|
||||
#include "classfile/systemDictionaryShared.hpp"
|
||||
#endif
|
||||
#include "classfile/vmSymbols.hpp"
|
||||
#include "gc_interface/collectedHeap.inline.hpp"
|
||||
#include "interpreter/bytecode.hpp"
|
||||
|
@ -993,7 +997,15 @@ JVM_ENTRY(jclass, JVM_FindLoadedClass(JNIEnv *env, jobject loader, jstring name)
|
|||
h_loader,
|
||||
Handle(),
|
||||
CHECK_NULL);
|
||||
|
||||
#if INCLUDE_CDS
|
||||
if (k == NULL) {
|
||||
// If the class is not already loaded, try to see if it's in the shared
|
||||
// archive for the current classloader (h_loader).
|
||||
instanceKlassHandle ik = SystemDictionaryShared::find_or_load_shared_class(
|
||||
klass_name, h_loader, CHECK_NULL);
|
||||
k = ik();
|
||||
}
|
||||
#endif
|
||||
return (k == NULL) ? NULL :
|
||||
(jclass) JNIHandles::make_local(env, k->java_mirror());
|
||||
JVM_END
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue