src/share/vm/prims/whitebox.cpp

Print this page




  99 
 100     bool found() const {
 101         return _found;
 102     }
 103 };
 104 
 105 WB_ENTRY(jboolean, WB_IsClassAlive(JNIEnv* env, jobject target, jstring name))
 106   Handle h_name = JNIHandles::resolve(name);
 107   if (h_name.is_null()) return false;
 108   Symbol* sym = java_lang_String::as_symbol(h_name, CHECK_false);
 109   TempNewSymbol tsym(sym); // Make sure to decrement reference count on sym on return
 110 
 111   WBIsKlassAliveClosure closure(sym);
 112   ClassLoaderDataGraph::classes_do(&closure);
 113 
 114   return closure.found();
 115 WB_END
 116 
 117 WB_ENTRY(void, WB_AddToBootstrapClassLoaderSearch(JNIEnv* env, jobject o, jstring segment)) {
 118 #if INCLUDE_JVMTI
 119   ThreadToNativeFromVM ttnfv(thread);   // can't be in VM when we call JNI
 120   const char* seg = env->GetStringUTFChars(segment, NULL);



 121   JvmtiEnv* jvmti_env = JvmtiEnv::create_a_jvmti(JVMTI_VERSION);
 122   jvmtiError err = jvmti_env->AddToBootstrapClassLoaderSearch(seg);
 123   assert(err == JVMTI_ERROR_NONE, "must not fail");


 124   env->ReleaseStringUTFChars(segment, seg);

 125 #endif
 126 }
 127 WB_END
 128 
 129 WB_ENTRY(void, WB_AddToSystemClassLoaderSearch(JNIEnv* env, jobject o, jstring segment)) {
 130 #if INCLUDE_JVMTI
 131   ThreadToNativeFromVM ttnfv(thread);   // can't be in VM when we call JNI
 132   const char* seg = env->GetStringUTFChars(segment, NULL);



 133   JvmtiEnv* jvmti_env = JvmtiEnv::create_a_jvmti(JVMTI_VERSION);
 134   jvmtiError err = jvmti_env->AddToSystemClassLoaderSearch(seg);
 135   assert(err == JVMTI_ERROR_NONE, "must not fail");


 136   env->ReleaseStringUTFChars(segment, seg);

 137 #endif
 138 }
 139 WB_END
 140 
 141 
 142 WB_ENTRY(jlong, WB_GetCompressedOopsMaxHeapSize(JNIEnv* env, jobject o)) {
 143   return (jlong)Arguments::max_heap_for_compressed_oops();
 144 }
 145 WB_END
 146 
 147 WB_ENTRY(void, WB_PrintHeapSizes(JNIEnv* env, jobject o)) {
 148   CollectorPolicy * p = Universe::heap()->collector_policy();
 149   gclog_or_tty->print_cr("Minimum heap "SIZE_FORMAT" Initial heap "
 150     SIZE_FORMAT" Maximum heap "SIZE_FORMAT" Space alignment "SIZE_FORMAT" Heap alignment "SIZE_FORMAT,
 151     p->min_heap_byte_size(), p->initial_heap_byte_size(), p->max_heap_byte_size(),
 152     p->space_alignment(), p->heap_alignment());
 153 }
 154 WB_END
 155 
 156 #ifndef PRODUCT




  99 
 100     bool found() const {
 101         return _found;
 102     }
 103 };
 104 
 105 WB_ENTRY(jboolean, WB_IsClassAlive(JNIEnv* env, jobject target, jstring name))
 106   Handle h_name = JNIHandles::resolve(name);
 107   if (h_name.is_null()) return false;
 108   Symbol* sym = java_lang_String::as_symbol(h_name, CHECK_false);
 109   TempNewSymbol tsym(sym); // Make sure to decrement reference count on sym on return
 110 
 111   WBIsKlassAliveClosure closure(sym);
 112   ClassLoaderDataGraph::classes_do(&closure);
 113 
 114   return closure.found();
 115 WB_END
 116 
 117 WB_ENTRY(void, WB_AddToBootstrapClassLoaderSearch(JNIEnv* env, jobject o, jstring segment)) {
 118 #if INCLUDE_JVMTI
 119   const char* seg;
 120   {
 121     ThreadToNativeFromVM ttnfv(thread);
 122     seg = env->GetStringUTFChars(segment, NULL);
 123   }
 124   JvmtiEnv* jvmti_env = JvmtiEnv::create_a_jvmti(JVMTI_VERSION);
 125   jvmtiError err = jvmti_env->AddToBootstrapClassLoaderSearch(seg);
 126   assert(err == JVMTI_ERROR_NONE, "must not fail");
 127   {
 128     ThreadToNativeFromVM ttnfv(thread);
 129     env->ReleaseStringUTFChars(segment, seg);
 130   }
 131 #endif
 132 }
 133 WB_END
 134 
 135 WB_ENTRY(void, WB_AddToSystemClassLoaderSearch(JNIEnv* env, jobject o, jstring segment)) {
 136 #if INCLUDE_JVMTI
 137   const char* seg;
 138   {
 139     ThreadToNativeFromVM ttnfv(thread);
 140     seg = env->GetStringUTFChars(segment, NULL);
 141   }
 142   JvmtiEnv* jvmti_env = JvmtiEnv::create_a_jvmti(JVMTI_VERSION);
 143   jvmtiError err = jvmti_env->AddToSystemClassLoaderSearch(seg);
 144   assert(err == JVMTI_ERROR_NONE, "must not fail");
 145   {
 146     ThreadToNativeFromVM ttnfv(thread);
 147     env->ReleaseStringUTFChars(segment, seg);
 148   }
 149 #endif
 150 }
 151 WB_END
 152 
 153 
 154 WB_ENTRY(jlong, WB_GetCompressedOopsMaxHeapSize(JNIEnv* env, jobject o)) {
 155   return (jlong)Arguments::max_heap_for_compressed_oops();
 156 }
 157 WB_END
 158 
 159 WB_ENTRY(void, WB_PrintHeapSizes(JNIEnv* env, jobject o)) {
 160   CollectorPolicy * p = Universe::heap()->collector_policy();
 161   gclog_or_tty->print_cr("Minimum heap "SIZE_FORMAT" Initial heap "
 162     SIZE_FORMAT" Maximum heap "SIZE_FORMAT" Space alignment "SIZE_FORMAT" Heap alignment "SIZE_FORMAT,
 163     p->min_heap_byte_size(), p->initial_heap_byte_size(), p->max_heap_byte_size(),
 164     p->space_alignment(), p->heap_alignment());
 165 }
 166 WB_END
 167 
 168 #ifndef PRODUCT