< prev index next >

src/share/vm/oops/objArrayOop.hpp

Print this page

        

*** 23,32 **** --- 23,33 ---- */ #ifndef SHARE_VM_OOPS_OBJARRAYOOP_HPP #define SHARE_VM_OOPS_OBJARRAYOOP_HPP + #include "gc/shared/barrierSet.hpp" #include "gc/shared/specialized_oop_closures.hpp" #include "oops/arrayOop.hpp" // An objArrayOop is an array containing oops. // Evaluating "String arg[10]" will create an objArrayOop.
*** 80,93 **** // Accessing oop obj_at(int index) const; void obj_at_put(int index, oop value) { if (UseCompressedOops) { ! oop_store(obj_at_addr<narrowOop>(index), value); } else { ! oop_store(obj_at_addr<oop>(index), value); } } oop atomic_compare_exchange_oop(int index, oop exchange_value, oop compare_value); --- 81,95 ---- // Accessing oop obj_at(int index) const; void obj_at_put(int index, oop value) { + objArrayOop p = (objArrayOop) oopDesc::bs()->write_barrier(this); if (UseCompressedOops) { ! oop_store(p->obj_at_addr<narrowOop>(index), value); } else { ! oop_store(p->obj_at_addr<oop>(index), value); } } oop atomic_compare_exchange_oop(int index, oop exchange_value, oop compare_value);
< prev index next >