--- a/src/hotspot/share/gc/shared/collectedHeap.cpp Thu Sep 05 08:26:44 2019 +0200
+++ b/src/hotspot/share/gc/shared/collectedHeap.cpp Thu Sep 05 08:26:49 2019 +0200
@@ -91,7 +91,7 @@
size_t capacity_in_words = capacity() / HeapWordSize;
return VirtualSpaceSummary(
- reserved_region().start(), reserved_region().start() + capacity_in_words, reserved_region().end());
+ _reserved.start(), _reserved.start() + capacity_in_words, _reserved.end());
}
GCHeapSummary CollectedHeap::create_heap_summary() {
@@ -178,11 +178,11 @@
return false;
}
- if (!is_in_reserved(object)) {
+ if (!is_in(object)) {
return false;
}
- if (is_in_reserved(object->klass_or_null())) {
+ if (is_in(object->klass_or_null())) {
return false;
}
@@ -343,6 +343,11 @@
}
#endif // PRODUCT
+void CollectedHeap::check_oop_location(void* addr) const {
+ assert(check_obj_alignment(addr), "address is not aligned");
+ assert(_reserved.contains(addr), "address is not in reserved heap");
+}
+
size_t CollectedHeap::max_tlab_size() const {
// TLABs can't be bigger than we can fill with a int[Integer.MAX_VALUE].
// This restriction could be removed by enabling filling with multiple arrays.
@@ -371,8 +376,8 @@
{
assert(words >= min_fill_size(), "too small to fill");
assert(is_object_aligned(words), "unaligned size");
- assert(Universe::heap()->is_in_reserved(start), "not in heap");
- assert(Universe::heap()->is_in_reserved(start + words - 1), "not in heap");
+ DEBUG_ONLY(Universe::heap()->check_oop_location(start);)
+ DEBUG_ONLY(Universe::heap()->check_oop_location(start + words - MinObjAlignment);)
}
void CollectedHeap::zap_filler_array(HeapWord* start, size_t words, bool zap)
@@ -516,12 +521,12 @@
full_gc_dump(timer, false);
}
-void CollectedHeap::initialize_reserved_region(HeapWord *start, HeapWord *end) {
+void CollectedHeap::initialize_reserved_region(const ReservedHeapSpace& rs) {
// It is important to do this in a way such that concurrent readers can't
// temporarily think something is in the heap. (Seen this happen in asserts.)
_reserved.set_word_size(0);
- _reserved.set_start(start);
- _reserved.set_end(end);
+ _reserved.set_start((HeapWord*)rs.base());
+ _reserved.set_end((HeapWord*)rs.end());
}
void CollectedHeap::post_initialize() {