< prev index next >

src/share/vm/gc/shared/cardTableRS.cpp

Print this page

        

*** 32,81 **** #include "runtime/atomic.hpp" #include "runtime/java.hpp" #include "runtime/os.hpp" #include "utilities/macros.hpp" - class HasAccumulatedModifiedOopsClosure : public KlassClosure { - bool _found; - public: - HasAccumulatedModifiedOopsClosure() : _found(false) {} - void do_klass(Klass* klass) { - if (_found) { - return; - } - - if (klass->has_accumulated_modified_oops()) { - _found = true; - } - } - bool found() { - return _found; - } - }; - - bool KlassRemSet::mod_union_is_clear() { - HasAccumulatedModifiedOopsClosure closure; - ClassLoaderDataGraph::classes_do(&closure); - - return !closure.found(); - } - - - class ClearKlassModUnionClosure : public KlassClosure { - public: - void do_klass(Klass* klass) { - if (klass->has_accumulated_modified_oops()) { - klass->clear_accumulated_modified_oops(); - } - } - }; - - void KlassRemSet::clear_mod_union() { - ClearKlassModUnionClosure closure; - ClassLoaderDataGraph::classes_do(&closure); - } - CardTableRS::CardTableRS(MemRegion whole_heap) : _bs(NULL), _cur_youngergen_card_val(youngergenP1_card) { _ct_bs = new CardTableModRefBSForCTRS(whole_heap); --- 32,41 ----
< prev index next >