MemRecorder::MemRecorder() { assert(MemTracker::is_on(), "Native memory tracking is off"); Atomic::inc(&_instance_count); set_generation(); if (MemTracker::track_callsite()) { _pointer_records = new (std::nothrow)FixedSizeMemPointerArray<SeqMemPointerRecordEx, DEFAULT_RECORDER_PTR_ARRAY_SIZE>(); } else { _pointer_records = new (std::nothrow)FixedSizeMemPointerArray<SeqMemPointerRecord, DEFAULT_RECORDER_PTR_ARRAY_SIZE>(); } _next = NULL; if (_pointer_records != NULL) { // recode itself record((address)this, (MemPointerRecord::malloc_tag()|mtNMT|otNMTRecorder), sizeof(MemRecorder), CALLER_PC); record((address)_pointer_records, (MemPointerRecord::malloc_tag()|mtNMT|otNMTRecorder), _pointer_records->instance_size(),CURRENT_PC); } }
inline OopsInGenClosure::OopsInGenClosure(Generation* gen) : OopClosure(gen->ref_processor()), _orig_gen(gen), _rs(NULL) { set_generation(gen); }