src/share/vm/memory/barrierSet.cpp

changeset 1280
df6caf649ff7
parent 777
37f87013dfd8
child 1526
6aa7255741f3
equal deleted inserted replaced
1274:bb18957ad21e 1280:df6caf649ff7
23 */ 23 */
24 24
25 # include "incls/_precompiled.incl" 25 # include "incls/_precompiled.incl"
26 # include "incls/_barrierSet.cpp.incl" 26 # include "incls/_barrierSet.cpp.incl"
27 27
28 // count is in HeapWord's 28 // count is number of array elements being written
29 void BarrierSet::static_write_ref_array_pre(HeapWord* start, size_t count) { 29 void BarrierSet::static_write_ref_array_pre(HeapWord* start, size_t count) {
30 Universe::heap()->barrier_set()->write_ref_array_pre(MemRegion(start, start + count)); 30 assert(count <= (size_t)max_intx, "count too large");
31 #if 0
32 warning("Pre: \t" INTPTR_FORMAT "[" SIZE_FORMAT "]\t",
33 start, count);
34 #endif
35 if (UseCompressedOops) {
36 Universe::heap()->barrier_set()->write_ref_array_pre((narrowOop*)start, (int)count);
37 } else {
38 Universe::heap()->barrier_set()->write_ref_array_pre( (oop*)start, (int)count);
39 }
31 } 40 }
32 41
33 // count is in HeapWord's 42 // count is number of array elements being written
34 void BarrierSet::static_write_ref_array_post(HeapWord* start, size_t count) { 43 void BarrierSet::static_write_ref_array_post(HeapWord* start, size_t count) {
35 Universe::heap()->barrier_set()->write_ref_array_work(MemRegion(start, start + count)); 44 assert(count <= (size_t)max_intx, "count too large");
45 HeapWord* end = start + objArrayOopDesc::array_size((int)count);
46 #if 0
47 warning("Post:\t" INTPTR_FORMAT "[" SIZE_FORMAT "] : [" INTPTR_FORMAT","INTPTR_FORMAT")\t",
48 start, count, start, end);
49 #endif
50 Universe::heap()->barrier_set()->write_ref_array_work(MemRegion(start, end));
36 } 51 }

mercurial