--- a/hotspot/src/share/vm/prims/unsafe.cpp Fri Jul 10 16:01:20 2009 -0700
+++ b/hotspot/src/share/vm/prims/unsafe.cpp Tue Jul 14 15:40:39 2009 -0700
@@ -1048,7 +1048,11 @@
oop e = JNIHandles::resolve(e_h);
oop p = JNIHandles::resolve(obj);
HeapWord* addr = (HeapWord *)index_oop_from_field_offset_long(p, offset);
- update_barrier_set_pre((void*)addr, e);
+ if (UseCompressedOops) {
+ update_barrier_set_pre((narrowOop*)addr, e);
+ } else {
+ update_barrier_set_pre((oop*)addr, e);
+ }
oop res = oopDesc::atomic_compare_exchange_oop(x, addr, e);
jboolean success = (res == e);
if (success)