< prev index next >

src/share/vm/memory/cardTableModRefBS.hpp

Print this page
rev 7800 : [mq]: cleanupOopInlineHpp

*** 25,35 **** #ifndef SHARE_VM_MEMORY_CARDTABLEMODREFBS_HPP #define SHARE_VM_MEMORY_CARDTABLEMODREFBS_HPP #include "memory/modRefBarrierSet.hpp" #include "oops/oop.hpp" - #include "oops/oop.inline2.hpp" // This kind of "BarrierSet" allows a "CollectedHeap" to detect and // enumerate ref fields that have been modified (since the last // enumeration.) --- 25,34 ----
*** 43,52 **** --- 42,52 ---- class Generation; class OopsInGenClosure; class DirtyCardToOopClosure; class ClearNoncleanCardWrapper; + class CardTableRS; class CardTableModRefBS: public ModRefBarrierSet { // Some classes get to look at some private stuff. friend class BytecodeInterpreter; friend class VMStructs;
*** 331,349 **** // *** Card-table-barrier-specific things. template <class T> inline void inline_write_ref_field_pre(T* field, oop newVal) {} ! template <class T> inline void inline_write_ref_field(T* field, oop newVal, bool release) { ! jbyte* byte = byte_for((void*)field); ! if (release) { ! // Perform a releasing store if requested. ! OrderAccess::release_store((volatile jbyte*) byte, dirty_card); ! } else { ! *byte = dirty_card; ! } ! } // These are used by G1, when it uses the card table as a temporary data // structure for card claiming. bool is_card_dirty(size_t card_index) { return _byte_map[card_index] == dirty_card_val(); --- 331,341 ---- // *** Card-table-barrier-specific things. template <class T> inline void inline_write_ref_field_pre(T* field, oop newVal) {} ! template <class T> inline void inline_write_ref_field(T* field, oop newVal, bool release); // These are used by G1, when it uses the card table as a temporary data // structure for card claiming. bool is_card_dirty(size_t card_index) { return _byte_map[card_index] == dirty_card_val();
< prev index next >