equal
deleted
inserted
replaced
43 |
43 |
44 return itr_cur; |
44 return itr_cur; |
45 } |
45 } |
46 |
46 |
47 |
47 |
48 debug_only(volatile jint MemRecorder::_instance_count = 0;) |
48 volatile jint MemRecorder::_instance_count = 0; |
49 |
49 |
50 MemRecorder::MemRecorder() { |
50 MemRecorder::MemRecorder() { |
51 assert(MemTracker::is_on(), "Native memory tracking is off"); |
51 assert(MemTracker::is_on(), "Native memory tracking is off"); |
52 debug_only(Atomic::inc(&_instance_count);) |
52 Atomic::inc(&_instance_count); |
53 debug_only(set_generation();) |
53 debug_only(set_generation();) |
54 |
54 |
55 if (MemTracker::track_callsite()) { |
55 if (MemTracker::track_callsite()) { |
56 _pointer_records = new (std::nothrow)FixedSizeMemPointerArray<SeqMemPointerRecordEx, |
56 _pointer_records = new (std::nothrow)FixedSizeMemPointerArray<SeqMemPointerRecordEx, |
57 DEFAULT_RECORDER_PTR_ARRAY_SIZE>(); |
57 DEFAULT_RECORDER_PTR_ARRAY_SIZE>(); |
81 } |
81 } |
82 if (_next != NULL) { |
82 if (_next != NULL) { |
83 delete _next; |
83 delete _next; |
84 } |
84 } |
85 |
85 |
86 #ifdef ASSERT |
|
87 Atomic::dec(&_instance_count); |
86 Atomic::dec(&_instance_count); |
88 #endif |
|
89 } |
87 } |
90 |
88 |
91 // Sorting order: |
89 // Sorting order: |
92 // 1. memory block address |
90 // 1. memory block address |
93 // 2. mem pointer record tags |
91 // 2. mem pointer record tags |