equal
deleted
inserted
replaced
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 |