hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp
template <class T> inline void FilterIntoCSClosure::do_oop_nv(T* p) {
{- -------------------------------------------
(1) p 引数で渡されたポインタが, (NULL ではなくかつ) collection set 内を指していれば,
コンストラクタ引数で指定された OopClosure (_oc) を
そのポインタに適用する.
(なお, FILTERINTOCSCLOSURE_DOHISTOGRAMCOUNT 定数が 0 でない場合には,
コンストラクタ引数で指定された DirtyCardToOopClosure のカウントアップ処理も行っている)
---------------------------------------- -}
T heap_oop = oopDesc::load_heap_oop(p);
if (!oopDesc::is_null(heap_oop) &&
_g1->obj_in_cs(oopDesc::decode_heap_oop_not_null(heap_oop))) {
_oc->do_oop(p);
#if FILTERINTOCSCLOSURE_DOHISTOGRAMCOUNT
if (_dcto_cl != NULL)
_dcto_cl->incr_count();
#endif
}
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.