comparison src/share/vm/services/memRecorder.cpp @ 6882:716c64bda5ba

7199092: NMT: NMT needs to deal overlapped virtual memory ranges Summary: Enhanced virtual memory tracking to track committed regions as well as reserved regions, so NMT now can generate virtual memory map. Reviewed-by: acorn, coleenp
author zgu
date Fri, 19 Oct 2012 21:40:07 -0400
parents 7e5976e66c62
children ecd24264898b
comparison
equal deleted inserted replaced
6879:8ebcedb7604d 6882:716c64bda5ba
29 #include "services/memRecorder.hpp" 29 #include "services/memRecorder.hpp"
30 #include "services/memPtr.hpp" 30 #include "services/memPtr.hpp"
31 #include "services/memTracker.hpp" 31 #include "services/memTracker.hpp"
32 32
33 MemPointer* SequencedRecordIterator::next_record() { 33 MemPointer* SequencedRecordIterator::next_record() {
34 MemPointer* itr_cur = _itr.current(); 34 MemPointerRecord* itr_cur = (MemPointerRecord*)_itr.current();
35 if (itr_cur == NULL) return NULL; 35 if (itr_cur == NULL) {
36 MemPointer* itr_next = _itr.next(); 36 return itr_cur;
37 }
37 38
38 while (itr_next != NULL && 39 MemPointerRecord* itr_next = (MemPointerRecord*)_itr.next();
39 same_kind((MemPointerRecord*)itr_cur, (MemPointerRecord*)itr_next)) { 40
41 // don't collapse virtual memory records
42 while (itr_next != NULL && !itr_cur->is_vm_pointer() &&
43 !itr_next->is_vm_pointer() &&
44 same_kind(itr_cur, itr_next)) {
40 itr_cur = itr_next; 45 itr_cur = itr_next;
41 itr_next = _itr.next(); 46 itr_next = (MemPointerRecord*)_itr.next();
42 } 47 }
43 48
44 return itr_cur; 49 return itr_cur;
45 } 50 }
46 51