8202709: Move oopDesc::is_archive_object to MetaspaceShared::is_archive_object

Reviewed-by: ehelin, jiangli
This commit is contained in:
Stefan Karlsson 2018-05-07 14:57:23 +02:00
parent 7574941d5f
commit 90a2a92fe3
8 changed files with 14 additions and 17 deletions

@ -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))