hotspot/src/share/vm/prims/unsafe.cpp
changeset 20282 7f9cbdf89af2
parent 18025 b7bcf7497f93
child 22868 7f6eb436873b
child 22786 86644d9539c2
equal deleted inserted replaced
20281:e4d33bd980c4 20282:7f9cbdf89af2
   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))