src/share/vm/prims/unsafe.cpp

changeset 5784
190899198332
parent 5237
f2110083203d
child 6346
56cd09c4a5c9
child 6502
3514ee402842
equal deleted inserted replaced
5783:c1fbf21c7397 5784:190899198332
290 oop p = JNIHandles::resolve(obj); 290 oop p = JNIHandles::resolve(obj);
291 void* addr = index_oop_from_field_offset_long(p, offset); 291 void* addr = index_oop_from_field_offset_long(p, offset);
292 volatile oop v; 292 volatile oop v;
293 if (UseCompressedOops) { 293 if (UseCompressedOops) {
294 volatile narrowOop n = *(volatile narrowOop*) addr; 294 volatile narrowOop n = *(volatile narrowOop*) addr;
295 v = oopDesc::decode_heap_oop(n); 295 (void)const_cast<oop&>(v = oopDesc::decode_heap_oop(n));
296 } else { 296 } else {
297 v = *(volatile oop*) addr; 297 (void)const_cast<oop&>(v = *(volatile oop*) addr);
298 } 298 }
299 OrderAccess::acquire(); 299 OrderAccess::acquire();
300 return JNIHandles::make_local(env, v); 300 return JNIHandles::make_local(env, v);
301 UNSAFE_END 301 UNSAFE_END
302 302
1220 HOTSPOT_THREAD_PARK_END( 1220 HOTSPOT_THREAD_PARK_END(
1221 (uintptr_t) thread->parker()); 1221 (uintptr_t) thread->parker());
1222 #endif /* USDT2 */ 1222 #endif /* USDT2 */
1223 if (event.should_commit()) { 1223 if (event.should_commit()) {
1224 oop obj = thread->current_park_blocker(); 1224 oop obj = thread->current_park_blocker();
1225 event.set_klass(obj ? obj->klass() : NULL); 1225 event.set_klass((obj != NULL) ? obj->klass() : NULL);
1226 event.set_timeout(time); 1226 event.set_timeout(time);
1227 event.set_address(obj ? (TYPE_ADDRESS) (uintptr_t) obj : 0); 1227 event.set_address((obj != NULL) ? (TYPE_ADDRESS) cast_from_oop<uintptr_t>(obj) : 0);
1228 event.commit(); 1228 event.commit();
1229 } 1229 }
1230 UNSAFE_END 1230 UNSAFE_END
1231 1231
1232 UNSAFE_ENTRY(void, Unsafe_Unpark(JNIEnv *env, jobject unsafe, jobject jthread)) 1232 UNSAFE_ENTRY(void, Unsafe_Unpark(JNIEnv *env, jobject unsafe, jobject jthread))

mercurial