equal
deleted
inserted
replaced
211 |
211 |
212 private: |
212 private: |
213 // used for linked list |
213 // used for linked list |
214 MemRecorder* _next; |
214 MemRecorder* _next; |
215 // active recorder can only record a certain generation data |
215 // active recorder can only record a certain generation data |
216 debug_only(unsigned long _generation;) |
216 unsigned long _generation; |
217 |
217 |
218 protected: |
218 protected: |
219 _NOINLINE_ MemRecorder(); |
219 _NOINLINE_ MemRecorder(); |
220 ~MemRecorder(); |
220 ~MemRecorder(); |
221 |
221 |
249 _pointer_records->clear(); |
249 _pointer_records->clear(); |
250 } |
250 } |
251 |
251 |
252 SequencedRecordIterator pointer_itr(); |
252 SequencedRecordIterator pointer_itr(); |
253 |
253 |
|
254 // return the generation of this recorder which it belongs to |
|
255 unsigned long get_generation() const { return _generation; } |
254 protected: |
256 protected: |
255 // number of MemRecorder instance |
257 // number of MemRecorder instance |
256 static volatile jint _instance_count; |
258 static volatile jint _instance_count; |
257 |
259 |
258 private: |
260 private: |
261 // 2. allocation type |
263 // 2. allocation type |
262 // 3. sequence number |
264 // 3. sequence number |
263 static int sort_record_fn(const void* e1, const void* e2); |
265 static int sort_record_fn(const void* e1, const void* e2); |
264 |
266 |
265 debug_only(void check_dup_seq(jint seq) const;) |
267 debug_only(void check_dup_seq(jint seq) const;) |
266 debug_only(void set_generation();) |
268 void set_generation(); |
267 }; |
269 }; |
268 |
270 |
269 #endif // SHARE_VM_SERVICES_MEM_RECORDER_HPP |
271 #endif // SHARE_VM_SERVICES_MEM_RECORDER_HPP |