equal
deleted
inserted
replaced
40 HeapWord* _unmarked_addr; |
40 HeapWord* _unmarked_addr; |
41 jbyte* _unmarked_card; |
41 jbyte* _unmarked_card; |
42 |
42 |
43 protected: |
43 protected: |
44 template <class T> void do_oop_work(T* p) { |
44 template <class T> void do_oop_work(T* p) { |
45 oop obj = oopDesc::load_decode_heap_oop_not_null(p); |
45 oop obj = oopDesc::load_decode_heap_oop(p); |
46 if (_young_gen->is_in_reserved(obj) && |
46 if (_young_gen->is_in_reserved(obj) && |
47 !_card_table->addr_is_marked_imprecise(p)) { |
47 !_card_table->addr_is_marked_imprecise(p)) { |
48 // Don't overwrite the first missing card mark |
48 // Don't overwrite the first missing card mark |
49 if (_unmarked_addr == NULL) { |
49 if (_unmarked_addr == NULL) { |
50 _unmarked_addr = (HeapWord*)p; |
50 _unmarked_addr = (HeapWord*)p; |