< prev index next >

hotspot/src/share/vm/prims/whitebox.cpp

Print this page




1270   MutexLockerEx ml(new Mutex(Mutex::leaf, "SFPT_Test_lock", true, sfpt_check_required),
1271                    attemptedNoSafepointValue == JNI_TRUE);
1272 WB_END
1273 
1274 WB_ENTRY(jboolean, WB_IsSharedClass(JNIEnv* env, jobject wb, jclass clazz))
1275   return (jboolean)MetaspaceShared::is_in_shared_space(java_lang_Class::as_Klass(JNIHandles::resolve_non_null(clazz)));
1276 WB_END
1277 
1278 WB_ENTRY(jboolean, WB_IsMonitorInflated(JNIEnv* env, jobject wb, jobject obj))
1279   oop obj_oop = JNIHandles::resolve(obj);
1280   return (jboolean) obj_oop->mark()->has_monitor();
1281 WB_END
1282 
1283 WB_ENTRY(void, WB_ForceSafepoint(JNIEnv* env, jobject wb))
1284   VM_ForceSafepoint force_safepoint_op;
1285   VMThread::execute(&force_safepoint_op);
1286 WB_END
1287 
1288 WB_ENTRY(jlong, WB_GetConstantPool(JNIEnv* env, jobject wb, jclass klass))
1289   instanceKlassHandle ikh(java_lang_Class::as_Klass(JNIHandles::resolve(klass)));
1290   return (jlong) ikh->constants();
1291 WB_END
1292 
1293 template <typename T>
1294 static bool GetMethodOption(JavaThread* thread, JNIEnv* env, jobject method, jstring name, T* value) {
1295   assert(value != NULL, "sanity");
1296   if (method == NULL || name == NULL) {
1297     return false;
1298   }
1299   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
1300   CHECK_JNI_EXCEPTION_(env, false);
1301   methodHandle mh(thread, Method::checked_resolve_jmethod_id(jmid));
1302   // can't be in VM when we call JNI
1303   ThreadToNativeFromVM ttnfv(thread);
1304   const char* flag_name = env->GetStringUTFChars(name, NULL);
1305   bool result =  CompilerOracle::has_option_value(mh, flag_name, *value);
1306   env->ReleaseStringUTFChars(name, flag_name);
1307   return result;
1308 }
1309 
1310 WB_ENTRY(jobject, WB_GetMethodBooleaneOption(JNIEnv* env, jobject wb, jobject method, jstring name))




1270   MutexLockerEx ml(new Mutex(Mutex::leaf, "SFPT_Test_lock", true, sfpt_check_required),
1271                    attemptedNoSafepointValue == JNI_TRUE);
1272 WB_END
1273 
1274 WB_ENTRY(jboolean, WB_IsSharedClass(JNIEnv* env, jobject wb, jclass clazz))
1275   return (jboolean)MetaspaceShared::is_in_shared_space(java_lang_Class::as_Klass(JNIHandles::resolve_non_null(clazz)));
1276 WB_END
1277 
1278 WB_ENTRY(jboolean, WB_IsMonitorInflated(JNIEnv* env, jobject wb, jobject obj))
1279   oop obj_oop = JNIHandles::resolve(obj);
1280   return (jboolean) obj_oop->mark()->has_monitor();
1281 WB_END
1282 
1283 WB_ENTRY(void, WB_ForceSafepoint(JNIEnv* env, jobject wb))
1284   VM_ForceSafepoint force_safepoint_op;
1285   VMThread::execute(&force_safepoint_op);
1286 WB_END
1287 
1288 WB_ENTRY(jlong, WB_GetConstantPool(JNIEnv* env, jobject wb, jclass klass))
1289   instanceKlassHandle ikh(java_lang_Class::as_Klass(JNIHandles::resolve(klass)));
1290   return (jlong)(uintptr_t)ikh->constants();
1291 WB_END
1292 
1293 template <typename T>
1294 static bool GetMethodOption(JavaThread* thread, JNIEnv* env, jobject method, jstring name, T* value) {
1295   assert(value != NULL, "sanity");
1296   if (method == NULL || name == NULL) {
1297     return false;
1298   }
1299   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
1300   CHECK_JNI_EXCEPTION_(env, false);
1301   methodHandle mh(thread, Method::checked_resolve_jmethod_id(jmid));
1302   // can't be in VM when we call JNI
1303   ThreadToNativeFromVM ttnfv(thread);
1304   const char* flag_name = env->GetStringUTFChars(name, NULL);
1305   bool result =  CompilerOracle::has_option_value(mh, flag_name, *value);
1306   env->ReleaseStringUTFChars(name, flag_name);
1307   return result;
1308 }
1309 
1310 WB_ENTRY(jobject, WB_GetMethodBooleaneOption(JNIEnv* env, jobject wb, jobject method, jstring name))


< prev index next >