< prev index next >
src/share/vm/gc/g1/g1SATBCardTableModRefBS.hpp
Print this page
rev 9847 : 8146395: Add inline qualifier in oop.hpp and fix inlining in gc files
Summary: Fix remaining issues after 8146401
*** 56,79 ****
virtual bool has_write_ref_pre_barrier() { return true; }
// We export this to make it available in cases where the static
// type of the barrier set is known. Note that it is non-virtual.
! template <class T> inline void inline_write_ref_field_pre(T* field, oop newVal) {
! T heap_oop = oopDesc::load_heap_oop(field);
! if (!oopDesc::is_null(heap_oop)) {
! enqueue(oopDesc::decode_heap_oop(heap_oop));
! }
! }
// These are the more general virtual versions.
! virtual void write_ref_field_pre_work(oop* field, oop new_val) {
! inline_write_ref_field_pre(field, new_val);
! }
! virtual void write_ref_field_pre_work(narrowOop* field, oop new_val) {
! inline_write_ref_field_pre(field, new_val);
! }
virtual void write_ref_field_pre_work(void* field, oop new_val) {
guarantee(false, "Not needed");
}
template <class T> void write_ref_array_pre_work(T* dst, int count);
--- 56,70 ----
virtual bool has_write_ref_pre_barrier() { return true; }
// We export this to make it available in cases where the static
// type of the barrier set is known. Note that it is non-virtual.
! template <class T> inline void inline_write_ref_field_pre(T* field, oop newVal);
// These are the more general virtual versions.
! inline virtual void write_ref_field_pre_work(oop* field, oop new_val);
! inline virtual void write_ref_field_pre_work(narrowOop* field, oop new_val);
virtual void write_ref_field_pre_work(void* field, oop new_val) {
guarantee(false, "Not needed");
}
template <class T> void write_ref_array_pre_work(T* dst, int count);
*** 96,114 ****
bool is_card_claimed(size_t card_index) {
jbyte val = _byte_map[card_index];
return (val & (clean_card_mask_val() | claimed_card_val())) == claimed_card_val();
}
! void set_card_claimed(size_t card_index) {
! jbyte val = _byte_map[card_index];
! if (val == clean_card_val()) {
! val = (jbyte)claimed_card_val();
! } else {
! val |= (jbyte)claimed_card_val();
! }
! _byte_map[card_index] = val;
! }
void verify_g1_young_region(MemRegion mr) PRODUCT_RETURN;
void g1_mark_as_young(const MemRegion& mr);
bool mark_card_deferred(size_t card_index);
--- 87,97 ----
bool is_card_claimed(size_t card_index) {
jbyte val = _byte_map[card_index];
return (val & (clean_card_mask_val() | claimed_card_val())) == claimed_card_val();
}
! inline void set_card_claimed(size_t card_index);
void verify_g1_young_region(MemRegion mr) PRODUCT_RETURN;
void g1_mark_as_young(const MemRegion& mr);
bool mark_card_deferred(size_t card_index);
< prev index next >