Mercurial > hg > truffle
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; |