src/share/vm/services/memSnapshot.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
hotspot Cdiff src/share/vm/services/memSnapshot.cpp
src/share/vm/services/memSnapshot.cpp
Print this page
*** 121,144 ****
// we don't consolidate reserved regions, since they may be categorized
// in different types.
bool VMMemPointerIterator::add_reserved_region(MemPointerRecord* rec) {
assert(rec->is_allocation_record(), "Sanity check");
! VMMemRegion* cur = (VMMemRegion*)current();
// we don't have anything yet
! if (cur == NULL) {
return insert_record(rec);
}
! assert(cur->is_reserved_region(), "Sanity check");
// duplicated records
! if (cur->is_same_region(rec)) {
return true;
}
! assert(cur->base() > rec->addr(), "Just check: locate()");
! assert(!cur->overlaps_region(rec), "overlapping reserved regions");
return insert_record(rec);
}
// we do consolidate committed regions
bool VMMemPointerIterator::add_committed_region(MemPointerRecord* rec) {
--- 121,155 ----
// we don't consolidate reserved regions, since they may be categorized
// in different types.
bool VMMemPointerIterator::add_reserved_region(MemPointerRecord* rec) {
assert(rec->is_allocation_record(), "Sanity check");
! VMMemRegion* reserved_rgn = (VMMemRegion*)current();
// we don't have anything yet
! if (reserved_rgn == NULL) {
return insert_record(rec);
}
! assert(reserved_rgn->is_reserved_region(), "Sanity check");
// duplicated records
! if (reserved_rgn->is_same_region(rec)) {
return true;
}
! // an attached JNI thread can exit without detaching the thread, that results
! // JVM to leak JavaThread object (JDK-8001743)
! if (CheckJNICalls) {
! guarantee(FLAGS_TO_MEMORY_TYPE(reserved_rgn->flags()) != mtThreadStack ||
! !reserved_rgn->overlaps_region(rec),
! "Attached JNI thread exited without being detached");
! }
! // otherwise, we should not have overlapping reserved regions
! assert(FLAGS_TO_MEMORY_TYPE(reserved_rgn->flags()) == mtThreadStack ||
! reserved_rgn->base() > rec->addr(), "Just check: locate()");
! assert(FLAGS_TO_MEMORY_TYPE(reserved_rgn->flags()) == mtThreadStack ||
! !reserved_rgn->overlaps_region(rec), "overlapping reserved regions");
!
return insert_record(rec);
}
// we do consolidate committed regions
bool VMMemPointerIterator::add_committed_region(MemPointerRecord* rec) {
src/share/vm/services/memSnapshot.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File