8202709: Move oopDesc::is_archive_object to MetaspaceShared::is_archive_object
Reviewed-by: ehelin, jiangli
This commit is contained in:
parent
7574941d5f
commit
90a2a92fe3
src/hotspot/share
@ -768,7 +768,7 @@ static void initialize_static_field(fieldDescriptor* fd, Handle mirror, TRAPS) {
|
||||
{
|
||||
assert(fd->signature() == vmSymbols::string_signature(),
|
||||
"just checking");
|
||||
if (DumpSharedSpaces && oopDesc::is_archive_object(mirror())) {
|
||||
if (DumpSharedSpaces && MetaspaceShared::is_archive_object(mirror())) {
|
||||
// Archive the String field and update the pointer.
|
||||
oop s = mirror()->obj_field(fd->offset());
|
||||
oop archived_s = StringTable::create_archived_string(s, CHECK);
|
||||
@ -809,7 +809,7 @@ void java_lang_Class::fixup_mirror(Klass* k, TRAPS) {
|
||||
if (MetaspaceShared::open_archive_heap_region_mapped()) {
|
||||
oop m = k->archived_java_mirror();
|
||||
assert(m != NULL, "archived mirror is NULL");
|
||||
assert(oopDesc::is_archive_object(m), "must be archived mirror object");
|
||||
assert(MetaspaceShared::is_archive_object(m), "must be archived mirror object");
|
||||
Handle m_h(THREAD, m);
|
||||
// restore_archived_mirror() clears the klass' _has_raw_archived_mirror flag
|
||||
restore_archived_mirror(k, m_h, Handle(), Handle(), Handle(), CHECK);
|
||||
|
@ -1922,6 +1922,10 @@ void MetaspaceShared::archive_klass_objects(Thread* THREAD) {
|
||||
}
|
||||
}
|
||||
|
||||
bool MetaspaceShared::is_archive_object(oop p) {
|
||||
return (p == NULL) ? false : G1ArchiveAllocator::is_archive_object(p);
|
||||
}
|
||||
|
||||
void MetaspaceShared::fixup_mapped_heap_regions() {
|
||||
FileMapInfo *mapinfo = FileMapInfo::current_info();
|
||||
mapinfo->fixup_mapped_heap_regions();
|
||||
|
@ -113,6 +113,9 @@ class MetaspaceShared : AllStatic {
|
||||
static oop archive_heap_object(oop obj, Thread* THREAD);
|
||||
static void archive_klass_objects(Thread* THREAD);
|
||||
#endif
|
||||
|
||||
static bool is_archive_object(oop p) NOT_CDS_JAVA_HEAP_RETURN_(false);
|
||||
|
||||
static bool is_heap_object_archiving_allowed() {
|
||||
CDS_JAVA_HEAP_ONLY(return (UseG1GC && UseCompressedOops && UseCompressedClassPointers);)
|
||||
NOT_CDS_JAVA_HEAP(return false;)
|
||||
|
@ -536,7 +536,7 @@ void Klass::restore_unshareable_info(ClassLoaderData* loader_data, Handle protec
|
||||
log_debug(cds, mirror)("Archived mirror is: " PTR_FORMAT, p2i(m));
|
||||
if (m != NULL) {
|
||||
// mirror is archived, restore
|
||||
assert(oopDesc::is_archive_object(m), "must be archived mirror object");
|
||||
assert(MetaspaceShared::is_archive_object(m), "must be archived mirror object");
|
||||
Handle m_h(THREAD, m);
|
||||
java_lang_Class::restore_archived_mirror(this, m_h, loader, module_handle, protection_domain, CHECK);
|
||||
return;
|
||||
|
@ -32,9 +32,6 @@
|
||||
#include "runtime/handles.inline.hpp"
|
||||
#include "runtime/thread.inline.hpp"
|
||||
#include "utilities/copy.hpp"
|
||||
#if INCLUDE_G1GC
|
||||
#include "gc/g1/g1Allocator.inline.hpp"
|
||||
#endif
|
||||
|
||||
bool always_do_update_barrier = false;
|
||||
|
||||
@ -214,9 +211,3 @@ void oopDesc::release_float_field_put(int offset, jfloat value) { HeapAcce
|
||||
|
||||
jdouble oopDesc::double_field_acquire(int offset) const { return HeapAccess<MO_ACQUIRE>::load_at(as_oop(), offset); }
|
||||
void oopDesc::release_double_field_put(int offset, jdouble value) { HeapAccess<MO_RELEASE>::store_at(as_oop(), offset, value); }
|
||||
|
||||
#if INCLUDE_CDS_JAVA_HEAP
|
||||
bool oopDesc::is_archive_object(oop p) {
|
||||
return (p == NULL) ? false : G1ArchiveAllocator::is_archive_object(p);
|
||||
}
|
||||
#endif
|
||||
|
@ -339,8 +339,6 @@ class oopDesc {
|
||||
assert(has_klass_gap(), "only applicable to compressed klass pointers");
|
||||
return klass_offset_in_bytes() + sizeof(narrowKlass);
|
||||
}
|
||||
|
||||
static bool is_archive_object(oop p) NOT_CDS_JAVA_HEAP_RETURN_(false);
|
||||
};
|
||||
|
||||
#endif // SHARE_VM_OOPS_OOP_HPP
|
||||
|
@ -26,6 +26,7 @@
|
||||
#define SHARE_VM_OOPS_OOP_INLINE_HPP
|
||||
|
||||
#include "gc/shared/collectedHeap.hpp"
|
||||
#include "memory/metaspaceShared.hpp"
|
||||
#include "oops/access.inline.hpp"
|
||||
#include "oops/arrayKlass.hpp"
|
||||
#include "oops/arrayOop.hpp"
|
||||
@ -329,8 +330,8 @@ void oopDesc::forward_to(oop p) {
|
||||
"forwarding to something not aligned");
|
||||
assert(Universe::heap()->is_in_reserved(p),
|
||||
"forwarding to something not in heap");
|
||||
assert(!is_archive_object(oop(this)) &&
|
||||
!is_archive_object(p),
|
||||
assert(!MetaspaceShared::is_archive_object(oop(this)) &&
|
||||
!MetaspaceShared::is_archive_object(p),
|
||||
"forwarding archive object");
|
||||
markOop m = markOopDesc::encode_pointer_as_mark(p);
|
||||
assert(m->decode_pointer() == p, "encoding must be reversable");
|
||||
|
@ -1713,7 +1713,7 @@ WB_END
|
||||
|
||||
WB_ENTRY(jboolean, WB_IsShared(JNIEnv* env, jobject wb, jobject obj))
|
||||
oop obj_oop = JNIHandles::resolve(obj);
|
||||
return oopDesc::is_archive_object(obj_oop);
|
||||
return MetaspaceShared::is_archive_object(obj_oop);
|
||||
WB_END
|
||||
|
||||
WB_ENTRY(jboolean, WB_IsSharedClass(JNIEnv* env, jobject wb, jclass clazz))
|
||||
|
Loading…
x
Reference in New Issue
Block a user