1.1 --- a/src/share/vm/services/memSnapshot.hpp Tue Nov 13 15:14:27 2012 -0500 1.2 +++ b/src/share/vm/services/memSnapshot.hpp Fri Nov 16 09:05:19 2012 -0500 1.3 @@ -146,6 +146,23 @@ 1.4 // reset current position 1.5 inline void reset() { _pos = 0; } 1.6 #ifdef ASSERT 1.7 + // check integrity of records on current reserved memory region. 1.8 + bool check_reserved_region() { 1.9 + VMMemRegion* reserved_region = (VMMemRegion*)current(); 1.10 + assert(reserved_region != NULL && reserved_region->is_reserved_region(), 1.11 + "Sanity check"); 1.12 + // all committed regions that follow current reserved region, should all 1.13 + // belong to the reserved region. 1.14 + VMMemRegion* next_region = (VMMemRegion*)next(); 1.15 + for (; next_region != NULL && next_region->is_committed_region(); 1.16 + next_region = (VMMemRegion*)next() ) { 1.17 + if(!reserved_region->contains_region(next_region)) { 1.18 + return false; 1.19 + } 1.20 + } 1.21 + return true; 1.22 + } 1.23 + 1.24 virtual bool is_dup_pointer(const MemPointer* ptr1, 1.25 const MemPointer* ptr2) const { 1.26 VMMemRegion* p1 = (VMMemRegion*)ptr1;