Mercurial > hg > graal-jvmci-8
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 |