src/share/vm/prims/whitebox.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 8059557_open Sdiff src/share/vm/prims

src/share/vm/prims/whitebox.cpp

Print this page




 613 
 614   mh->clear_not_c1_compilable();
 615   mh->clear_not_c2_compilable();
 616   mh->clear_not_c2_osr_compilable();
 617   NOT_PRODUCT(mh->set_compiled_invocation_count(0));
 618   if (mcs != NULL) {
 619     mcs->backedge_counter()->init();
 620     mcs->invocation_counter()->init();
 621     mcs->set_interpreter_invocation_count(0);
 622     mcs->set_interpreter_throwout_count(0);
 623 
 624 #ifdef TIERED
 625     mcs->set_rate(0.0F);
 626     mh->set_prev_event_count(0);
 627     mh->set_prev_time(0);
 628 #endif
 629   }
 630 WB_END
 631 
 632 template <typename T>
 633 static bool GetVMFlag(JavaThread* thread, JNIEnv* env, jstring name, T* value, bool (*TAt)(const char*, T*, bool, bool)) {
 634   if (name == NULL) {
 635     return false;
 636   }
 637   ThreadToNativeFromVM ttnfv(thread);   // can't be in VM when we call JNI
 638   const char* flag_name = env->GetStringUTFChars(name, NULL);
 639   bool result = (*TAt)(flag_name, value, true, true);
 640   env->ReleaseStringUTFChars(name, flag_name);
 641   return result;
 642 }
 643 
 644 template <typename T>
 645 static bool SetVMFlag(JavaThread* thread, JNIEnv* env, jstring name, T* value, bool (*TAtPut)(const char*, T*, Flag::Flags)) {
 646   if (name == NULL) {
 647     return false;
 648   }
 649   ThreadToNativeFromVM ttnfv(thread);   // can't be in VM when we call JNI
 650   const char* flag_name = env->GetStringUTFChars(name, NULL);
 651   bool result = (*TAtPut)(flag_name, value, Flag::INTERNAL);
 652   env->ReleaseStringUTFChars(name, flag_name);
 653   return result;
 654 }
 655 
 656 template <typename T>
 657 static jobject box(JavaThread* thread, JNIEnv* env, Symbol* name, Symbol* sig, T value) {
 658   ResourceMark rm(thread);
 659   jclass clazz = env->FindClass(name->as_C_string());
 660   CHECK_JNI_EXCEPTION_(env, NULL);
 661   jmethodID methodID = env->GetStaticMethodID(clazz,
 662         vmSymbols::valueOf_name()->as_C_string(),
 663         sig->as_C_string());
 664   CHECK_JNI_EXCEPTION_(env, NULL);
 665   jobject result = env->CallStaticObjectMethod(clazz, methodID, value);
 666   CHECK_JNI_EXCEPTION_(env, NULL);
 667   return result;
 668 }
 669 
 670 static jobject booleanBox(JavaThread* thread, JNIEnv* env, jboolean value) {
 671   return box(thread, env, vmSymbols::java_lang_Boolean(), vmSymbols::Boolean_valueOf_signature(), value);
 672 }
 673 static jobject integerBox(JavaThread* thread, JNIEnv* env, jint value) {




 613 
 614   mh->clear_not_c1_compilable();
 615   mh->clear_not_c2_compilable();
 616   mh->clear_not_c2_osr_compilable();
 617   NOT_PRODUCT(mh->set_compiled_invocation_count(0));
 618   if (mcs != NULL) {
 619     mcs->backedge_counter()->init();
 620     mcs->invocation_counter()->init();
 621     mcs->set_interpreter_invocation_count(0);
 622     mcs->set_interpreter_throwout_count(0);
 623 
 624 #ifdef TIERED
 625     mcs->set_rate(0.0F);
 626     mh->set_prev_event_count(0);
 627     mh->set_prev_time(0);
 628 #endif
 629   }
 630 WB_END
 631 
 632 template <typename T>
 633 static bool GetVMFlag(JavaThread* thread, JNIEnv* env, jstring name, T* value, Flag::Error (*TAt)(const char*, T*, bool, bool)) {
 634   if (name == NULL) {
 635     return false;
 636   }
 637   ThreadToNativeFromVM ttnfv(thread);   // can't be in VM when we call JNI
 638   const char* flag_name = env->GetStringUTFChars(name, NULL);
 639   Flag::Error result = (*TAt)(flag_name, value, true, true);
 640   env->ReleaseStringUTFChars(name, flag_name);
 641   return (result == Flag::SUCCESS);
 642 }
 643 
 644 template <typename T>
 645 static bool SetVMFlag(JavaThread* thread, JNIEnv* env, jstring name, T* value, Flag::Error (*TAtPut)(const char*, T*, Flag::Flags)) {
 646   if (name == NULL) {
 647     return false;
 648   }
 649   ThreadToNativeFromVM ttnfv(thread);   // can't be in VM when we call JNI
 650   const char* flag_name = env->GetStringUTFChars(name, NULL);
 651   Flag::Error result = (*TAtPut)(flag_name, value, Flag::INTERNAL);
 652   env->ReleaseStringUTFChars(name, flag_name);
 653   return (result == Flag::SUCCESS);
 654 }
 655 
 656 template <typename T>
 657 static jobject box(JavaThread* thread, JNIEnv* env, Symbol* name, Symbol* sig, T value) {
 658   ResourceMark rm(thread);
 659   jclass clazz = env->FindClass(name->as_C_string());
 660   CHECK_JNI_EXCEPTION_(env, NULL);
 661   jmethodID methodID = env->GetStaticMethodID(clazz,
 662         vmSymbols::valueOf_name()->as_C_string(),
 663         sig->as_C_string());
 664   CHECK_JNI_EXCEPTION_(env, NULL);
 665   jobject result = env->CallStaticObjectMethod(clazz, methodID, value);
 666   CHECK_JNI_EXCEPTION_(env, NULL);
 667   return result;
 668 }
 669 
 670 static jobject booleanBox(JavaThread* thread, JNIEnv* env, jboolean value) {
 671   return box(thread, env, vmSymbols::java_lang_Boolean(), vmSymbols::Boolean_valueOf_signature(), value);
 672 }
 673 static jobject integerBox(JavaThread* thread, JNIEnv* env, jint value) {


src/share/vm/prims/whitebox.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File