< prev index next >
src/hotspot/share/memory/metaspaceShared.cpp
Print this page
*** 712,721 ****
--- 712,734 ----
k->remove_java_mirror();
}
}
}
+ static void clear_basic_type_mirrors() {
+ assert(!HeapShared::is_heap_object_archiving_allowed(), "Sanity");
+ Universe::set_int_mirror(NULL);
+ Universe::set_float_mirror(NULL);
+ Universe::set_double_mirror(NULL);
+ Universe::set_byte_mirror(NULL);
+ Universe::set_bool_mirror(NULL);
+ Universe::set_char_mirror(NULL);
+ Universe::set_long_mirror(NULL);
+ Universe::set_short_mirror(NULL);
+ Universe::set_void_mirror(NULL);
+ }
+
static void rewrite_nofast_bytecode(const methodHandle& method) {
BytecodeStream bcs(method);
while (!bcs.is_last_bytecode()) {
Bytecodes::Code opcode = bcs.next();
switch (opcode) {
*** 1525,1535 ****
char* VM_PopulateDumpSharedSpace::dump_read_only_tables() {
ArchiveCompactor::OtherROAllocMark mark;
log_info(cds)("Removing java_mirror ... ");
if (!HeapShared::is_heap_object_archiving_allowed()) {
! Universe::clear_basic_type_mirrors();
}
remove_java_mirror_in_classes();
log_info(cds)("done. ");
SystemDictionaryShared::write_to_archive();
--- 1538,1548 ----
char* VM_PopulateDumpSharedSpace::dump_read_only_tables() {
ArchiveCompactor::OtherROAllocMark mark;
log_info(cds)("Removing java_mirror ... ");
if (!HeapShared::is_heap_object_archiving_allowed()) {
! clear_basic_type_mirrors();
}
remove_java_mirror_in_classes();
log_info(cds)("done. ");
SystemDictionaryShared::write_to_archive();
*** 2077,2087 ****
}
void ReadClosure::do_oop(oop *p) {
narrowOop o = (narrowOop)nextPtr();
if (o == 0 || !HeapShared::open_archive_heap_region_mapped()) {
! *p = NULL;
} else {
assert(HeapShared::is_heap_object_archiving_allowed(),
"Archived heap object is not allowed");
assert(HeapShared::open_archive_heap_region_mapped(),
"Open archive heap region is not mapped");
--- 2090,2100 ----
}
void ReadClosure::do_oop(oop *p) {
narrowOop o = (narrowOop)nextPtr();
if (o == 0 || !HeapShared::open_archive_heap_region_mapped()) {
! p = NULL;
} else {
assert(HeapShared::is_heap_object_archiving_allowed(),
"Archived heap object is not allowed");
assert(HeapShared::open_archive_heap_region_mapped(),
"Open archive heap region is not mapped");
< prev index next >