Mercurial > hg > truffle
comparison src/share/vm/prims/unsafe.cpp @ 12355:cefad50507d8
Merge with hs25-b53
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Fri, 11 Oct 2013 10:38:03 +0200 |
parents | 836a62f43af9 190899198332 |
children | 359f7e70ae7f |
comparison
equal
deleted
inserted
replaced
12058:ccb4f2af2319 | 12355:cefad50507d8 |
---|---|
302 oop p = JNIHandles::resolve(obj); | 302 oop p = JNIHandles::resolve(obj); |
303 void* addr = index_oop_from_field_offset_long(p, offset); | 303 void* addr = index_oop_from_field_offset_long(p, offset); |
304 volatile oop v; | 304 volatile oop v; |
305 if (UseCompressedOops) { | 305 if (UseCompressedOops) { |
306 volatile narrowOop n = *(volatile narrowOop*) addr; | 306 volatile narrowOop n = *(volatile narrowOop*) addr; |
307 v = oopDesc::decode_heap_oop(n); | 307 (void)const_cast<oop&>(v = oopDesc::decode_heap_oop(n)); |
308 } else { | 308 } else { |
309 v = *(volatile oop*) addr; | 309 (void)const_cast<oop&>(v = *(volatile oop*) addr); |
310 } | 310 } |
311 OrderAccess::acquire(); | 311 OrderAccess::acquire(); |
312 return JNIHandles::make_local(env, v); | 312 return JNIHandles::make_local(env, v); |
313 UNSAFE_END | 313 UNSAFE_END |
314 | 314 |
1232 HOTSPOT_THREAD_PARK_END( | 1232 HOTSPOT_THREAD_PARK_END( |
1233 (uintptr_t) thread->parker()); | 1233 (uintptr_t) thread->parker()); |
1234 #endif /* USDT2 */ | 1234 #endif /* USDT2 */ |
1235 if (event.should_commit()) { | 1235 if (event.should_commit()) { |
1236 oop obj = thread->current_park_blocker(); | 1236 oop obj = thread->current_park_blocker(); |
1237 event.set_klass(obj ? obj->klass() : NULL); | 1237 event.set_klass((obj != NULL) ? obj->klass() : NULL); |
1238 event.set_timeout(time); | 1238 event.set_timeout(time); |
1239 event.set_address(obj ? (TYPE_ADDRESS) (uintptr_t) obj : 0); | 1239 event.set_address((obj != NULL) ? (TYPE_ADDRESS) cast_from_oop<uintptr_t>(obj) : 0); |
1240 event.commit(); | 1240 event.commit(); |
1241 } | 1241 } |
1242 UNSAFE_END | 1242 UNSAFE_END |
1243 | 1243 |
1244 UNSAFE_ENTRY(void, Unsafe_Unpark(JNIEnv *env, jobject unsafe, jobject jthread)) | 1244 UNSAFE_ENTRY(void, Unsafe_Unpark(JNIEnv *env, jobject unsafe, jobject jthread)) |