comparison src/share/vm/services/memSnapshot.hpp @ 7166:49cbd3e25ba9

8003487: NMT: incorrect assertion in VMMemPointerIterator::remove_released_region method (memSnapshot.cpp) Summary: The assertion is applied to only the region to be released, also performs region integrity checking Reviewed-by: acorn, coleenp
author zgu
date Fri, 16 Nov 2012 09:05:19 -0500
parents fb3190e77d3c
children ecd24264898b
comparison
equal deleted inserted replaced
6984:24e193d2a007 7166:49cbd3e25ba9
144 bool insert_reserved_region(MemPointerRecord* rec); 144 bool insert_reserved_region(MemPointerRecord* rec);
145 145
146 // reset current position 146 // reset current position
147 inline void reset() { _pos = 0; } 147 inline void reset() { _pos = 0; }
148 #ifdef ASSERT 148 #ifdef ASSERT
149 // check integrity of records on current reserved memory region.
150 bool check_reserved_region() {
151 VMMemRegion* reserved_region = (VMMemRegion*)current();
152 assert(reserved_region != NULL && reserved_region->is_reserved_region(),
153 "Sanity check");
154 // all committed regions that follow current reserved region, should all
155 // belong to the reserved region.
156 VMMemRegion* next_region = (VMMemRegion*)next();
157 for (; next_region != NULL && next_region->is_committed_region();
158 next_region = (VMMemRegion*)next() ) {
159 if(!reserved_region->contains_region(next_region)) {
160 return false;
161 }
162 }
163 return true;
164 }
165
149 virtual bool is_dup_pointer(const MemPointer* ptr1, 166 virtual bool is_dup_pointer(const MemPointer* ptr1,
150 const MemPointer* ptr2) const { 167 const MemPointer* ptr2) const {
151 VMMemRegion* p1 = (VMMemRegion*)ptr1; 168 VMMemRegion* p1 = (VMMemRegion*)ptr1;
152 VMMemRegion* p2 = (VMMemRegion*)ptr2; 169 VMMemRegion* p2 = (VMMemRegion*)ptr2;
153 170