mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 23:04:50 +02:00
8194759: Support caching class mirror objects
Support archiving mirror objects for shared classes in 'open' archive java heap region. Reviewed-by: coleenp, iklam, mseledtsov, tschatzl
This commit is contained in:
parent
979d5b7986
commit
f987dec395
20 changed files with 1681 additions and 200 deletions
|
@ -71,6 +71,7 @@ class java_lang_String : AllStatic {
|
|||
};
|
||||
|
||||
static void compute_offsets();
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
|
||||
// Instance creation
|
||||
static Handle create_from_unicode(jchar* unicode, int len, TRAPS);
|
||||
|
@ -222,6 +223,15 @@ class java_lang_Class : AllStatic {
|
|||
static void fixup_mirror(Klass* k, TRAPS);
|
||||
static oop create_basic_type_mirror(const char* basic_type_name, BasicType type, TRAPS);
|
||||
|
||||
// Archiving
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
static void archive_basic_type_mirrors(TRAPS) NOT_CDS_JAVA_HEAP_RETURN;
|
||||
static oop archive_mirror(Klass* k, TRAPS) NOT_CDS_JAVA_HEAP_RETURN_(NULL);
|
||||
static oop process_archived_mirror(Klass* k, oop mirror, oop archived_mirror, Thread *THREAD)
|
||||
NOT_CDS_JAVA_HEAP_RETURN_(NULL);
|
||||
static void restore_archived_mirror(Klass *k, Handle mirror, Handle class_loader, Handle module,
|
||||
Handle protection_domain, TRAPS) NOT_CDS_JAVA_HEAP_RETURN;
|
||||
|
||||
static void fixup_module_field(Klass* k, Handle module);
|
||||
|
||||
// Conversion
|
||||
|
@ -306,6 +316,8 @@ class java_lang_Thread : AllStatic {
|
|||
static void compute_offsets();
|
||||
|
||||
public:
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
|
||||
// Instance creation
|
||||
static oop create();
|
||||
// Returns the JavaThread associated with the thread obj
|
||||
|
@ -406,6 +418,8 @@ class java_lang_ThreadGroup : AllStatic {
|
|||
static void compute_offsets();
|
||||
|
||||
public:
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
|
||||
// parent ThreadGroup
|
||||
static oop parent(oop java_thread_group);
|
||||
// name
|
||||
|
@ -485,6 +499,7 @@ class java_lang_Throwable: AllStatic {
|
|||
static void print_stack_usage(Handle stream);
|
||||
|
||||
static void compute_offsets();
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
|
||||
// Allocate space for backtrace (created but stack trace not filled in)
|
||||
static void allocate_backtrace(Handle throwable, TRAPS);
|
||||
|
@ -515,6 +530,8 @@ class java_lang_reflect_AccessibleObject: AllStatic {
|
|||
static void compute_offsets();
|
||||
|
||||
public:
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
|
||||
// Accessors
|
||||
static jboolean override(oop reflect);
|
||||
static void set_override(oop reflect, jboolean value);
|
||||
|
@ -546,6 +563,8 @@ class java_lang_reflect_Method : public java_lang_reflect_AccessibleObject {
|
|||
static void compute_offsets();
|
||||
|
||||
public:
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
|
||||
// Allocation
|
||||
static Handle create(TRAPS);
|
||||
|
||||
|
@ -615,6 +634,8 @@ class java_lang_reflect_Constructor : public java_lang_reflect_AccessibleObject
|
|||
static void compute_offsets();
|
||||
|
||||
public:
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
|
||||
// Allocation
|
||||
static Handle create(TRAPS);
|
||||
|
||||
|
@ -673,6 +694,8 @@ class java_lang_reflect_Field : public java_lang_reflect_AccessibleObject {
|
|||
static void compute_offsets();
|
||||
|
||||
public:
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
|
||||
// Allocation
|
||||
static Handle create(TRAPS);
|
||||
|
||||
|
@ -728,6 +751,8 @@ class java_lang_reflect_Parameter {
|
|||
static void compute_offsets();
|
||||
|
||||
public:
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
|
||||
// Allocation
|
||||
static Handle create(TRAPS);
|
||||
|
||||
|
@ -758,6 +783,8 @@ class java_lang_Module {
|
|||
static void compute_offsets();
|
||||
|
||||
public:
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
|
||||
// Allocation
|
||||
static Handle create(Handle loader, Handle module_name, TRAPS);
|
||||
|
||||
|
@ -787,6 +814,8 @@ class reflect_ConstantPool {
|
|||
static void compute_offsets();
|
||||
|
||||
public:
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
|
||||
// Allocation
|
||||
static Handle create(TRAPS);
|
||||
|
||||
|
@ -809,6 +838,8 @@ class reflect_UnsafeStaticFieldAccessorImpl {
|
|||
static void compute_offsets();
|
||||
|
||||
public:
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
|
||||
static int base_offset() {
|
||||
return _base_offset;
|
||||
}
|
||||
|
@ -910,6 +941,7 @@ class java_lang_ref_SoftReference: public java_lang_ref_Reference {
|
|||
static void set_clock(jlong value);
|
||||
|
||||
static void compute_offsets();
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
};
|
||||
|
||||
// Interface to java.lang.invoke.MethodHandle objects
|
||||
|
@ -926,6 +958,8 @@ class java_lang_invoke_MethodHandle: AllStatic {
|
|||
static void compute_offsets();
|
||||
|
||||
public:
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
|
||||
// Accessors
|
||||
static oop type(oop mh);
|
||||
static void set_type(oop mh, oop mtype);
|
||||
|
@ -955,6 +989,8 @@ class java_lang_invoke_DirectMethodHandle: AllStatic {
|
|||
static void compute_offsets();
|
||||
|
||||
public:
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
|
||||
// Accessors
|
||||
static oop member(oop mh);
|
||||
|
||||
|
@ -980,6 +1016,8 @@ class java_lang_invoke_LambdaForm: AllStatic {
|
|||
static void compute_offsets();
|
||||
|
||||
public:
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
|
||||
// Accessors
|
||||
static oop vmentry(oop lform);
|
||||
static void set_vmentry(oop lform, oop invoker);
|
||||
|
@ -1011,6 +1049,8 @@ class java_lang_invoke_ResolvedMethodName : AllStatic {
|
|||
|
||||
static void compute_offsets();
|
||||
public:
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
|
||||
static int vmtarget_offset_in_bytes() { return _vmtarget_offset; }
|
||||
|
||||
static Method* vmtarget(oop resolved_method);
|
||||
|
@ -1048,6 +1088,7 @@ class java_lang_invoke_MemberName: AllStatic {
|
|||
static void compute_offsets();
|
||||
|
||||
public:
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
// Accessors
|
||||
static oop clazz(oop mname);
|
||||
static void set_clazz(oop mname, oop clazz);
|
||||
|
@ -1112,6 +1153,7 @@ class java_lang_invoke_MethodType: AllStatic {
|
|||
static void compute_offsets();
|
||||
|
||||
public:
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
// Accessors
|
||||
static oop rtype(oop mt);
|
||||
static objArrayOop ptypes(oop mt);
|
||||
|
@ -1147,6 +1189,7 @@ private:
|
|||
static void compute_offsets();
|
||||
|
||||
public:
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
// Accessors
|
||||
static oop target( oop site);
|
||||
static void set_target( oop site, oop target);
|
||||
|
@ -1180,6 +1223,7 @@ private:
|
|||
static void compute_offsets();
|
||||
|
||||
public:
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
// Accessors
|
||||
static DependencyContext vmdependencies(oop context);
|
||||
|
||||
|
@ -1203,6 +1247,7 @@ class java_security_AccessControlContext: AllStatic {
|
|||
|
||||
static void compute_offsets();
|
||||
public:
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
static oop create(objArrayHandle context, bool isPrivileged, Handle privileged_context, TRAPS);
|
||||
|
||||
static bool is_authorized(Handle context);
|
||||
|
@ -1228,6 +1273,7 @@ class java_lang_ClassLoader : AllStatic {
|
|||
|
||||
public:
|
||||
static void compute_offsets();
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
|
||||
static ClassLoaderData* loader_data(oop loader);
|
||||
static ClassLoaderData* cmpxchg_loader_data(ClassLoaderData* new_data, oop loader, ClassLoaderData* expected_data);
|
||||
|
@ -1279,6 +1325,7 @@ class java_lang_System : AllStatic {
|
|||
static bool has_security_manager();
|
||||
|
||||
static void compute_offsets();
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
|
||||
// Debugging
|
||||
friend class JavaClasses;
|
||||
|
@ -1316,6 +1363,7 @@ class java_lang_StackTraceElement: AllStatic {
|
|||
int version, int bci, Symbol* name, TRAPS);
|
||||
|
||||
static void compute_offsets();
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
|
||||
// Debugging
|
||||
friend class JavaClasses;
|
||||
|
@ -1359,6 +1407,7 @@ public:
|
|||
static void set_version(oop info, short value);
|
||||
|
||||
static void compute_offsets();
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
|
||||
static void to_stack_trace_element(Handle stackFrame, Handle stack_trace_element, TRAPS);
|
||||
|
||||
|
@ -1380,6 +1429,7 @@ class java_lang_LiveStackFrameInfo: AllStatic {
|
|||
static void set_mode(oop info, int value);
|
||||
|
||||
static void compute_offsets();
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
|
||||
// Debugging
|
||||
friend class JavaClasses;
|
||||
|
@ -1404,6 +1454,7 @@ class java_lang_AssertionStatusDirectives: AllStatic {
|
|||
static void set_deflt(oop obj, bool val);
|
||||
|
||||
static void compute_offsets();
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
|
||||
// Debugging
|
||||
friend class JavaClasses;
|
||||
|
@ -1417,6 +1468,7 @@ class java_nio_Buffer: AllStatic {
|
|||
public:
|
||||
static int limit_offset();
|
||||
static void compute_offsets();
|
||||
static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
};
|
||||
|
||||
class java_util_concurrent_locks_AbstractOwnableSynchronizer : AllStatic {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue