webrev Sdiff src/hotspot/share/jvmci (original) (raw)


108 assert(expectedType == T_OBJECT || java_lang_boxing_object::is_instance(arg, expectedType), "arg type mismatch"); 109 return Handle(Thread::current(), arg); 110 } 111 112 jobjectArray readConfiguration0(JNIEnv env, TRAPS); 113 114 C2V_VMENTRY(jobjectArray, readConfiguration, (JNIEnv env)) 115 jobjectArray config = readConfiguration0(env, CHECK_NULL); 116 return config; 117 C2V_END 118 119 C2V_VMENTRY(jobject, getFlagValue, (JNIEnv , jobject c2vm, jobject name_handle)) 120 #define RETURN_BOXED_LONG(value) oop box; jvalue p; p.j = (jlong) (value); box = java_lang_boxing_object::create(T_LONG, &p, CHECK_NULL); return JNIHandles::make_local(THREAD, box); 121 #define RETURN_BOXED_DOUBLE(value) oop box; jvalue p; p.d = (jdouble) (value); box = java_lang_boxing_object::create(T_DOUBLE, &p, CHECK_NULL); return JNIHandles::make_local(THREAD, box); 122 Handle name(THREAD, JNIHandles::resolve(name_handle)); 123 if (name.is_null()) { 124 THROW_0(vmSymbols::java_lang_NullPointerException()); 125 } 126 ResourceMark rm; 127 const char cstring = java_lang_String::as_utf8_string(name()); 128 Flag flag = Flag::find_flag(cstring, strlen(cstring), / allow_locked / true, / return_flag */ true); 129 if (flag == NULL) { 130 return c2vm; 131 } 132 if (flag->is_bool()) { 133 jvalue prim; 134 prim.z = flag->get_bool(); 135 oop box = java_lang_boxing_object::create(T_BOOLEAN, &prim, CHECK_NULL); 136 return JNIHandles::make_local(THREAD, box); 137 } else if (flag->is_ccstr()) { 138 Handle value = java_lang_String::create_from_str(flag->get_ccstr(), CHECK_NULL); 139 return JNIHandles::make_local(THREAD, value()); 140 } else if (flag->is_intx()) { 141 RETURN_BOXED_LONG(flag->get_intx()); 142 } else if (flag->is_int()) { 143 RETURN_BOXED_LONG(flag->get_int()); 144 } else if (flag->is_uint()) { 145 RETURN_BOXED_LONG(flag->get_uint()); 146 } else if (flag->is_uint64_t()) { 147 RETURN_BOXED_LONG(flag->get_uint64_t()); 148 } else if (flag->is_size_t()) {



108 assert(expectedType == T_OBJECT || java_lang_boxing_object::is_instance(arg, expectedType), "arg type mismatch"); 109 return Handle(Thread::current(), arg); 110 } 111 112 jobjectArray readConfiguration0(JNIEnv env, TRAPS); 113 114 C2V_VMENTRY(jobjectArray, readConfiguration, (JNIEnv env)) 115 jobjectArray config = readConfiguration0(env, CHECK_NULL); 116 return config; 117 C2V_END 118 119 C2V_VMENTRY(jobject, getFlagValue, (JNIEnv , jobject c2vm, jobject name_handle)) 120 #define RETURN_BOXED_LONG(value) oop box; jvalue p; p.j = (jlong) (value); box = java_lang_boxing_object::create(T_LONG, &p, CHECK_NULL); return JNIHandles::make_local(THREAD, box); 121 #define RETURN_BOXED_DOUBLE(value) oop box; jvalue p; p.d = (jdouble) (value); box = java_lang_boxing_object::create(T_DOUBLE, &p, CHECK_NULL); return JNIHandles::make_local(THREAD, box); 122 Handle name(THREAD, JNIHandles::resolve(name_handle)); 123 if (name.is_null()) { 124 THROW_0(vmSymbols::java_lang_NullPointerException()); 125 } 126 ResourceMark rm; 127 const char cstring = java_lang_String::as_utf8_string(name()); 128 JVMFlag flag = JVMFlag::find_flag(cstring, strlen(cstring), / allow_locked / true, / return_flag */ true); 129 if (flag == NULL) { 130 return c2vm; 131 } 132 if (flag->is_bool()) { 133 jvalue prim; 134 prim.z = flag->get_bool(); 135 oop box = java_lang_boxing_object::create(T_BOOLEAN, &prim, CHECK_NULL); 136 return JNIHandles::make_local(THREAD, box); 137 } else if (flag->is_ccstr()) { 138 Handle value = java_lang_String::create_from_str(flag->get_ccstr(), CHECK_NULL); 139 return JNIHandles::make_local(THREAD, value()); 140 } else if (flag->is_intx()) { 141 RETURN_BOXED_LONG(flag->get_intx()); 142 } else if (flag->is_int()) { 143 RETURN_BOXED_LONG(flag->get_int()); 144 } else if (flag->is_uint()) { 145 RETURN_BOXED_LONG(flag->get_uint()); 146 } else if (flag->is_uint64_t()) { 147 RETURN_BOXED_LONG(flag->get_uint64_t()); 148 } else if (flag->is_size_t()) {