< prev index next > src/hotspot/share/jvmci/jvmciEnv.cpp
Print this page
// Clear and ignore any exceptions raised during printing
CLEAR_PENDING_EXCEPTION;
had_nested_exception = true;
} else {
oop pair = result.get_oop();
! guarantee(pair->is_objArray(), "must be");
! objArrayOop pair_arr = objArrayOop(pair);
int len = pair_arr->length();
guarantee(len == 2, "bad len is %d", len);
if (to_string != nullptr) {
to_string_obj = HotSpotJVMCI::wrap(pair_arr->obj_at(0));
}
// Clear and ignore any exceptions raised during printing
CLEAR_PENDING_EXCEPTION;
had_nested_exception = true;
} else {
oop pair = result.get_oop();
! guarantee(pair->is_refArray(), "must be");
! refArrayOop pair_arr = refArrayOop(pair);
int len = pair_arr->length();
guarantee(len == 2, "bad len is %d", len);
if (to_string != nullptr) {
to_string_obj = HotSpotJVMCI::wrap(pair_arr->obj_at(0));
}
JNIAccessMark jni(this);
return jni()->GetArrayLength(get_jarray(array));
}
}
! JVMCIObject JVMCIEnv::get_object_at(JVMCIObjectArray array, int index) {
if (is_hotspot()) {
! oop result = HotSpotJVMCI::resolve(array)->obj_at(index);
return wrap(result);
} else {
JNIAccessMark jni(this);
jobject result = jni()->GetObjectArrayElement(get_jobjectArray(array), index);
return wrap(result);
JNIAccessMark jni(this);
return jni()->GetArrayLength(get_jarray(array));
}
}
! JVMCIObject JVMCIEnv::get_object_at(JVMCIObjectArray array, int index, JVMCI_TRAPS) {
if (is_hotspot()) {
! JavaThread* THREAD = JavaThread::current(); // For exception macros.
+ oop result = HotSpotJVMCI::resolve(array)->obj_at(index, CHECK_({}));
return wrap(result);
} else {
JNIAccessMark jni(this);
jobject result = jni()->GetObjectArrayElement(get_jobjectArray(array), index);
return wrap(result);
}
return wrap(result);
}
}
! JVMCIObject JVMCIEnv::get_jvmci_primitive_type(BasicType type) {
JVMCIObjectArray primitives = get_HotSpotResolvedPrimitiveType_primitives();
! JVMCIObject result = get_object_at(primitives, type);
return result;
}
JVMCIObject JVMCIEnv::new_StackTraceElement(const methodHandle& method, int bci, JVMCI_TRAPS) {
JavaThread* THREAD = JavaThread::current(); // For exception macros.
}
return wrap(result);
}
}
! JVMCIObject JVMCIEnv::get_jvmci_primitive_type(BasicType type, JVMCI_TRAPS) {
JVMCIObjectArray primitives = get_HotSpotResolvedPrimitiveType_primitives();
! JVMCIObject result = get_object_at(primitives, type, JVMCI_CHECK_({}));
return result;
}
JVMCIObject JVMCIEnv::new_StackTraceElement(const methodHandle& method, int bci, JVMCI_TRAPS) {
JavaThread* THREAD = JavaThread::current(); // For exception macros.
< prev index next >