4218 // Check if we should initialize the class 4219 if (init && klass_handle->oop_is_instance()) { 4220 klass_handle->initialize(CHECK_NULL); 4221 } 4222 return (jclass) JNIHandles::make_local(env, klass_handle->java_mirror()); 4223 } 4224 4225 4226 // Internal SQE debugging support /////////////////////////////////////////////////////////// 4227 4228 #ifndef PRODUCT 4229 4230 extern "C" { 4231 JNIEXPORT jboolean JNICALL JVM_AccessVMBooleanFlag(const char* name, jboolean* value, jboolean is_get); 4232 JNIEXPORT jboolean JNICALL JVM_AccessVMIntFlag(const char* name, jint* value, jboolean is_get); 4233 JNIEXPORT void JNICALL JVM_VMBreakPoint(JNIEnv *env, jobject obj); 4234 } 4235 4236 JVM_LEAF(jboolean, JVM_AccessVMBooleanFlag(const char* name, jboolean* value, jboolean is_get)) 4237 JVMWrapper("JVM_AccessBoolVMFlag"); 4238 return is_get ? CommandLineFlags::boolAt((char*) name, (bool*) value) : CommandLineFlags::boolAtPut((char*) name, (bool*) value, INTERNAL); 4239 JVM_END 4240 4241 JVM_LEAF(jboolean, JVM_AccessVMIntFlag(const char* name, jint* value, jboolean is_get)) 4242 JVMWrapper("JVM_AccessVMIntFlag"); 4243 intx v; 4244 jboolean result = is_get ? CommandLineFlags::intxAt((char*) name, &v) : CommandLineFlags::intxAtPut((char*) name, &v, INTERNAL); 4245 *value = (jint)v; 4246 return result; 4247 JVM_END 4248 4249 4250 JVM_ENTRY(void, JVM_VMBreakPoint(JNIEnv *env, jobject obj)) 4251 JVMWrapper("JVM_VMBreakPoint"); 4252 oop the_obj = JNIHandles::resolve(obj); 4253 BREAKPOINT; 4254 JVM_END 4255 4256 4257 #endif 4258 4259 4260 // Method /////////////////////////////////////////////////////////////////////////////////////////// 4261 4262 JVM_ENTRY(jobject, JVM_InvokeMethod(JNIEnv *env, jobject method, jobject obj, jobjectArray args0)) 4263 JVMWrapper("JVM_InvokeMethod"); 4264 Handle method_handle; | 4218 // Check if we should initialize the class 4219 if (init && klass_handle->oop_is_instance()) { 4220 klass_handle->initialize(CHECK_NULL); 4221 } 4222 return (jclass) JNIHandles::make_local(env, klass_handle->java_mirror()); 4223 } 4224 4225 4226 // Internal SQE debugging support /////////////////////////////////////////////////////////// 4227 4228 #ifndef PRODUCT 4229 4230 extern "C" { 4231 JNIEXPORT jboolean JNICALL JVM_AccessVMBooleanFlag(const char* name, jboolean* value, jboolean is_get); 4232 JNIEXPORT jboolean JNICALL JVM_AccessVMIntFlag(const char* name, jint* value, jboolean is_get); 4233 JNIEXPORT void JNICALL JVM_VMBreakPoint(JNIEnv *env, jobject obj); 4234 } 4235 4236 JVM_LEAF(jboolean, JVM_AccessVMBooleanFlag(const char* name, jboolean* value, jboolean is_get)) 4237 JVMWrapper("JVM_AccessBoolVMFlag"); 4238 return is_get ? CommandLineFlags::boolAt((char*) name, (bool*) value) : CommandLineFlags::boolAtPut((char*) name, (bool*) value, Flag::INTERNAL); 4239 JVM_END 4240 4241 JVM_LEAF(jboolean, JVM_AccessVMIntFlag(const char* name, jint* value, jboolean is_get)) 4242 JVMWrapper("JVM_AccessVMIntFlag"); 4243 intx v; 4244 jboolean result = is_get ? CommandLineFlags::intxAt((char*) name, &v) : CommandLineFlags::intxAtPut((char*) name, &v, Flag::INTERNAL); 4245 *value = (jint)v; 4246 return result; 4247 JVM_END 4248 4249 4250 JVM_ENTRY(void, JVM_VMBreakPoint(JNIEnv *env, jobject obj)) 4251 JVMWrapper("JVM_VMBreakPoint"); 4252 oop the_obj = JNIHandles::resolve(obj); 4253 BREAKPOINT; 4254 JVM_END 4255 4256 4257 #endif 4258 4259 4260 // Method /////////////////////////////////////////////////////////////////////////////////////////// 4261 4262 JVM_ENTRY(jobject, JVM_InvokeMethod(JNIEnv *env, jobject method, jobject obj, jobjectArray args0)) 4263 JVMWrapper("JVM_InvokeMethod"); 4264 Handle method_handle; |