< prev index next >
src/hotspot/share/memory/universe.cpp
Print this page
rev 64188 : Rework xxx::verify() functions
*** 146,155 ****
--- 146,156 ----
OopStorage* Universe::_vm_weak = NULL;
OopStorage* Universe::_vm_global = NULL;
CollectedHeap* Universe::_collectedHeap = NULL;
+ intptr_t Universe::_non_heap_offset = 0;
objArrayOop Universe::the_empty_class_array () {
return (objArrayOop)_the_empty_class_array.resolve();
}
*** 851,860 ****
--- 852,868 ----
CompressedOops::initialize(total_rs);
}
Universe::calculate_verify_data((HeapWord*)total_rs.base(), (HeapWord*)total_rs.end());
+ // Make sure oop + offset is past the Java heap, plus some random positive offset.
+ // The offset should not hide the real alignment up to object alignment or cache line size.
+ intptr_t non_heap_offset = (intptr_t) total_rs.size() + abs(os::random());
+ non_heap_offset = align_up(non_heap_offset, MinObjAlignmentInBytes);
+ non_heap_offset = align_up(non_heap_offset, VM_Version::L1_data_cache_line_size());
+ Universe::_non_heap_offset = non_heap_offset;
+
return total_rs;
}
vm_exit_during_initialization(
err_msg("Could not reserve enough space for " SIZE_FORMAT "KB object heap",
< prev index next >