232 // if the recorder is full 233 inline bool is_full() const { 234 assert(_pointer_records != NULL, "just check"); 235 return _pointer_records->is_full(); 236 } 237 238 // if running out of memory when initializing recorder's internal 239 // data 240 inline bool out_of_memory() const { 241 return (_pointer_records == NULL || 242 _pointer_records->out_of_memory()); 243 } 244 245 inline void clear() { 246 assert(_pointer_records != NULL, "Just check"); 247 _pointer_records->clear(); 248 } 249 250 SequencedRecordIterator pointer_itr(); 251 252 public: 253 // number of MemRecorder instance 254 debug_only(static volatile jint _instance_count;) 255 256 private: 257 // sorting function, sort records into following order 258 // 1. memory address 259 // 2. allocation type 260 // 3. sequence number 261 static int sort_record_fn(const void* e1, const void* e2); 262 263 debug_only(void check_dup_seq(jint seq) const;) 264 debug_only(void set_generation();) 265 }; 266 267 #endif // SHARE_VM_SERVICES_MEM_RECORDER_HPP | 232 // if the recorder is full 233 inline bool is_full() const { 234 assert(_pointer_records != NULL, "just check"); 235 return _pointer_records->is_full(); 236 } 237 238 // if running out of memory when initializing recorder's internal 239 // data 240 inline bool out_of_memory() const { 241 return (_pointer_records == NULL || 242 _pointer_records->out_of_memory()); 243 } 244 245 inline void clear() { 246 assert(_pointer_records != NULL, "Just check"); 247 _pointer_records->clear(); 248 } 249 250 SequencedRecordIterator pointer_itr(); 251 252 protected: 253 // number of MemRecorder instance 254 static volatile jint _instance_count; 255 256 private: 257 // sorting function, sort records into following order 258 // 1. memory address 259 // 2. allocation type 260 // 3. sequence number 261 static int sort_record_fn(const void* e1, const void* e2); 262 263 debug_only(void check_dup_seq(jint seq) const;) 264 debug_only(void set_generation();) 265 }; 266 267 #endif // SHARE_VM_SERVICES_MEM_RECORDER_HPP |