src/hotspot/share/prims/whitebox.cpp
changeset 53647 82c95d4b61f0
parent 53582 881c5fbeb849
child 53709 2b64ebacce93
equal deleted inserted replaced
53646:043ae846819f 53647:82c95d4b61f0
   390   return (jlong)alignment;
   390   return (jlong)alignment;
   391 WB_END
   391 WB_END
   392 
   392 
   393 WB_ENTRY(jboolean, WB_SupportsConcurrentGCPhaseControl(JNIEnv* env, jobject o))
   393 WB_ENTRY(jboolean, WB_SupportsConcurrentGCPhaseControl(JNIEnv* env, jobject o))
   394   return Universe::heap()->supports_concurrent_phase_control();
   394   return Universe::heap()->supports_concurrent_phase_control();
   395 WB_END
       
   396 
       
   397 WB_ENTRY(jobjectArray, WB_GetConcurrentGCPhases(JNIEnv* env, jobject o))
       
   398   const char* const* phases = Universe::heap()->concurrent_phases();
       
   399   jint nphases = 0;
       
   400   for ( ; phases[nphases] != NULL; ++nphases) ;
       
   401 
       
   402   ResourceMark rm(thread);
       
   403   ThreadToNativeFromVM ttn(thread);
       
   404   jclass clazz = env->FindClass(vmSymbols::java_lang_Object()->as_C_string());
       
   405   CHECK_JNI_EXCEPTION_(env, NULL);
       
   406 
       
   407   jobjectArray result = env->NewObjectArray(nphases, clazz, NULL);
       
   408   CHECK_JNI_EXCEPTION_(env, NULL);
       
   409 
       
   410   // If push fails, return with pending exception.
       
   411   if (env->PushLocalFrame(nphases) < 0) return NULL;
       
   412   for (jint i = 0; i < nphases; ++i) {
       
   413     jstring phase = env->NewStringUTF(phases[i]);
       
   414     CHECK_JNI_EXCEPTION_(env, NULL);
       
   415     env->SetObjectArrayElement(result, i, phase);
       
   416     CHECK_JNI_EXCEPTION_(env, NULL);
       
   417   }
       
   418   env->PopLocalFrame(NULL);
       
   419 
       
   420   return result;
       
   421 WB_END
   395 WB_END
   422 
   396 
   423 WB_ENTRY(jboolean, WB_RequestConcurrentGCPhase(JNIEnv* env, jobject o, jstring name))
   397 WB_ENTRY(jboolean, WB_RequestConcurrentGCPhase(JNIEnv* env, jobject o, jstring name))
   424   Handle h_name(THREAD, JNIHandles::resolve(name));
   398   Handle h_name(THREAD, JNIHandles::resolve(name));
   425   ResourceMark rm;
   399   ResourceMark rm;
  2349   {CC"removeCompilerDirective",   CC"(I)V",           (void*)&WB_RemoveCompilerDirective },
  2323   {CC"removeCompilerDirective",   CC"(I)V",           (void*)&WB_RemoveCompilerDirective },
  2350   {CC"isGCSupported",             CC"(I)Z",           (void*)&WB_IsGCSupported},
  2324   {CC"isGCSupported",             CC"(I)Z",           (void*)&WB_IsGCSupported},
  2351   {CC"isGCSelected",              CC"(I)Z",           (void*)&WB_IsGCSelected},
  2325   {CC"isGCSelected",              CC"(I)Z",           (void*)&WB_IsGCSelected},
  2352   {CC"isGCSelectedErgonomically", CC"()Z",            (void*)&WB_IsGCSelectedErgonomically},
  2326   {CC"isGCSelectedErgonomically", CC"()Z",            (void*)&WB_IsGCSelectedErgonomically},
  2353   {CC"supportsConcurrentGCPhaseControl", CC"()Z",     (void*)&WB_SupportsConcurrentGCPhaseControl},
  2327   {CC"supportsConcurrentGCPhaseControl", CC"()Z",     (void*)&WB_SupportsConcurrentGCPhaseControl},
  2354   {CC"getConcurrentGCPhases",     CC"()[Ljava/lang/String;",
       
  2355                                                       (void*)&WB_GetConcurrentGCPhases},
       
  2356   {CC"requestConcurrentGCPhase0", CC"(Ljava/lang/String;)Z",
  2328   {CC"requestConcurrentGCPhase0", CC"(Ljava/lang/String;)Z",
  2357                                                       (void*)&WB_RequestConcurrentGCPhase},
  2329                                                       (void*)&WB_RequestConcurrentGCPhase},
  2358   {CC"checkLibSpecifiesNoexecstack", CC"(Ljava/lang/String;)Z",
  2330   {CC"checkLibSpecifiesNoexecstack", CC"(Ljava/lang/String;)Z",
  2359                                                       (void*)&WB_CheckLibSpecifiesNoexecstack},
  2331                                                       (void*)&WB_CheckLibSpecifiesNoexecstack},
  2360   {CC"isContainerized",           CC"()Z",            (void*)&WB_IsContainerized },
  2332   {CC"isContainerized",           CC"()Z",            (void*)&WB_IsContainerized },