comparison src/share/vm/prims/unsafe.cpp @ 362:f8199438385b

Merge
author apetrusenko
date Wed, 17 Sep 2008 16:49:18 +0400
parents 1ee8caae33af
children a45484ea312d
comparison
equal deleted inserted replaced
316:5fa96a5a7e76 362:f8199438385b
889 UnsafeWrapper("Unsafe_CompareAndSwapObject"); 889 UnsafeWrapper("Unsafe_CompareAndSwapObject");
890 oop x = JNIHandles::resolve(x_h); 890 oop x = JNIHandles::resolve(x_h);
891 oop e = JNIHandles::resolve(e_h); 891 oop e = JNIHandles::resolve(e_h);
892 oop p = JNIHandles::resolve(obj); 892 oop p = JNIHandles::resolve(obj);
893 HeapWord* addr = (HeapWord *)index_oop_from_field_offset_long(p, offset); 893 HeapWord* addr = (HeapWord *)index_oop_from_field_offset_long(p, offset);
894 update_barrier_set_pre((void*)addr, e);
894 oop res = oopDesc::atomic_compare_exchange_oop(x, addr, e); 895 oop res = oopDesc::atomic_compare_exchange_oop(x, addr, e);
895 jboolean success = (res == e); 896 jboolean success = (res == e);
896 if (success) 897 if (success)
897 update_barrier_set((void*)addr, x); 898 update_barrier_set((void*)addr, x);
898 return success; 899 return success;