--- a/hotspot/src/share/vm/utilities/copy.hpp Fri Apr 11 09:56:35 2008 -0400
+++ b/hotspot/src/share/vm/utilities/copy.hpp Sun Apr 13 17:43:42 2008 -0400
@@ -148,11 +148,19 @@
// oops, conjoint, atomic on each oop
static void conjoint_oops_atomic(oop* from, oop* to, size_t count) {
- assert_params_ok(from, to, LogBytesPerOop);
+ assert_params_ok(from, to, LogBytesPerHeapOop);
assert_non_zero(count);
pd_conjoint_oops_atomic(from, to, count);
}
+ // overloaded for UseCompressedOops
+ static void conjoint_oops_atomic(narrowOop* from, narrowOop* to, size_t count) {
+ assert(sizeof(narrowOop) == sizeof(jint), "this cast is wrong");
+ assert_params_ok(from, to, LogBytesPerInt);
+ assert_non_zero(count);
+ pd_conjoint_jints_atomic((jint*)from, (jint*)to, count);
+ }
+
// Copy a span of memory. If the span is an integral number of aligned
// longs, words, or ints, copy those units atomically.
// The largest atomic transfer unit is 8 bytes, or the largest power
@@ -188,7 +196,7 @@
// oops, conjoint array, atomic on each oop
static void arrayof_conjoint_oops(HeapWord* from, HeapWord* to, size_t count) {
- assert_params_ok(from, to, LogBytesPerOop);
+ assert_params_ok(from, to, LogBytesPerHeapOop);
assert_non_zero(count);
pd_arrayof_conjoint_oops(from, to, count);
}