< prev index next >

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

Print this page
rev 12854 : [mq]: gcinterface.patch

*** 29,44 **** // count is number of array elements being written void BarrierSet::static_write_ref_array_pre(HeapWord* start, size_t count) { assert(count <= (size_t)max_intx, "count too large"); if (UseCompressedOops) { ! Universe::heap()->barrier_set()->write_ref_array_pre((narrowOop*)start, (int)count, false); } else { ! Universe::heap()->barrier_set()->write_ref_array_pre( (oop*)start, (int)count, false); } } // count is number of array elements being written void BarrierSet::static_write_ref_array_post(HeapWord* start, size_t count) { // simply delegate to instance method ! Universe::heap()->barrier_set()->write_ref_array(start, count); } --- 29,76 ---- // count is number of array elements being written void BarrierSet::static_write_ref_array_pre(HeapWord* start, size_t count) { assert(count <= (size_t)max_intx, "count too large"); if (UseCompressedOops) { ! GC::gc()->heap()->barrier_set()->write_ref_array_pre((narrowOop*)start, (int)count, false); } else { ! GC::gc()->heap()->barrier_set()->write_ref_array_pre( (oop*)start, (int)count, false); } } // count is number of array elements being written void BarrierSet::static_write_ref_array_post(HeapWord* start, size_t count) { // simply delegate to instance method ! GC::gc()->heap()->barrier_set()->write_ref_array(start, count); ! } ! ! void BarrierSet::oop_store(oop* p, oop v) { ! write_ref_field_pre(p, v); ! oopDesc::encode_store_heap_oop(p, v); ! write_ref_field(p, v, false /* release */); ! } ! ! void BarrierSet::oop_store(narrowOop* p, oop v) { ! write_ref_field_pre(p, v); ! oopDesc::encode_store_heap_oop(p, v); ! write_ref_field(p, v, false /* release */); ! } ! ! void BarrierSet::oop_store(volatile oop* p, oop v) { ! write_ref_field_pre((oop*) p, v); // cast away volatile ! oopDesc::release_encode_store_heap_oop(p, v); ! write_ref_field((void*) p, v, true); // cast away type ! } ! ! void BarrierSet::oop_store(volatile narrowOop* p, oop v) { ! write_ref_field_pre((narrowOop*) p, v); // cast away volatile ! oopDesc::release_encode_store_heap_oop(p, v); ! write_ref_field((void*) p, v, true /* release */); // cast away type ! } ! ! void BarrierSet::klass_oop_store(oop* p, oop v) { ! oopDesc::encode_store_heap_oop(p, v); ! } ! ! void BarrierSet::klass_oop_store(volatile oop* p, oop v) { ! oopDesc::release_encode_store_heap_oop(p, v); }
< prev index next >