220 JVMCIObject box = JVMCIENV->create_box(T_BOOLEAN, &prim, JVMCI_CHECK_NULL);
221 return JVMCIENV->get_jobject(box);
222 } else if (flag->is_ccstr()) {
223 JVMCIObject value = JVMCIENV->create_string(flag->get_ccstr(), JVMCI_CHECK_NULL);
224 return JVMCIENV->get_jobject(value);
225 } else if (flag->is_intx()) {
226 RETURN_BOXED_LONG(flag->get_intx());
227 } else if (flag->is_int()) {
228 RETURN_BOXED_LONG(flag->get_int());
229 } else if (flag->is_uint()) {
230 RETURN_BOXED_LONG(flag->get_uint());
231 } else if (flag->is_uint64_t()) {
232 RETURN_BOXED_LONG(flag->get_uint64_t());
233 } else if (flag->is_size_t()) {
234 RETURN_BOXED_LONG(flag->get_size_t());
235 } else if (flag->is_uintx()) {
236 RETURN_BOXED_LONG(flag->get_uintx());
237 } else if (flag->is_double()) {
238 RETURN_BOXED_DOUBLE(flag->get_double());
239 } else {
240 JVMCI_ERROR_NULL("VM flag %s has unsupported type %s", flag->_name, flag->_type);
241 }
242 #undef RETURN_BOXED_LONG
243 #undef RETURN_BOXED_DOUBLE
244 C2V_END
245
246 C2V_VMENTRY_NULL(jobject, getObjectAtAddress, (JNIEnv* env, jobject c2vm, jlong oop_address))
247 requireInHotSpot("getObjectAtAddress", JVMCI_CHECK_NULL);
248 if (oop_address == 0) {
249 JVMCI_THROW_MSG_NULL(InternalError, "Handle must be non-zero");
250 }
251 oop obj = *((oopDesc**) oop_address);
252 if (obj != NULL) {
253 oopDesc::verify(obj);
254 }
255 return JNIHandles::make_local(obj);
256 C2V_END
257
258 C2V_VMENTRY_NULL(jbyteArray, getBytecode, (JNIEnv* env, jobject, jobject jvmci_method))
259 methodHandle method(THREAD, JVMCIENV->asMethod(jvmci_method));
260
|
220 JVMCIObject box = JVMCIENV->create_box(T_BOOLEAN, &prim, JVMCI_CHECK_NULL);
221 return JVMCIENV->get_jobject(box);
222 } else if (flag->is_ccstr()) {
223 JVMCIObject value = JVMCIENV->create_string(flag->get_ccstr(), JVMCI_CHECK_NULL);
224 return JVMCIENV->get_jobject(value);
225 } else if (flag->is_intx()) {
226 RETURN_BOXED_LONG(flag->get_intx());
227 } else if (flag->is_int()) {
228 RETURN_BOXED_LONG(flag->get_int());
229 } else if (flag->is_uint()) {
230 RETURN_BOXED_LONG(flag->get_uint());
231 } else if (flag->is_uint64_t()) {
232 RETURN_BOXED_LONG(flag->get_uint64_t());
233 } else if (flag->is_size_t()) {
234 RETURN_BOXED_LONG(flag->get_size_t());
235 } else if (flag->is_uintx()) {
236 RETURN_BOXED_LONG(flag->get_uintx());
237 } else if (flag->is_double()) {
238 RETURN_BOXED_DOUBLE(flag->get_double());
239 } else {
240 JVMCI_ERROR_NULL("VM flag %s has unsupported type %d", flag->name(), flag->type());
241 }
242 #undef RETURN_BOXED_LONG
243 #undef RETURN_BOXED_DOUBLE
244 C2V_END
245
246 C2V_VMENTRY_NULL(jobject, getObjectAtAddress, (JNIEnv* env, jobject c2vm, jlong oop_address))
247 requireInHotSpot("getObjectAtAddress", JVMCI_CHECK_NULL);
248 if (oop_address == 0) {
249 JVMCI_THROW_MSG_NULL(InternalError, "Handle must be non-zero");
250 }
251 oop obj = *((oopDesc**) oop_address);
252 if (obj != NULL) {
253 oopDesc::verify(obj);
254 }
255 return JNIHandles::make_local(obj);
256 C2V_END
257
258 C2V_VMENTRY_NULL(jbyteArray, getBytecode, (JNIEnv* env, jobject, jobject jvmci_method))
259 methodHandle method(THREAD, JVMCIENV->asMethod(jvmci_method));
260
|