503 assert(InstanceKlass::cast(k1)->contains_field_offset(offset), "stay within object");
504 ret = jfieldIDWorkaround::to_instance_jfieldID(k1, offset);
505 return ret;
506 JNI_END
507
508
509 DT_RETURN_MARK_DECL(ToReflectedMethod, jobject
510 , HOTSPOT_JNI_TOREFLECTEDMETHOD_RETURN(_ret_ref));
511
512 JNI_ENTRY(jobject, jni_ToReflectedMethod(JNIEnv *env, jclass cls, jmethodID method_id, jboolean isStatic))
513 JNIWrapper("ToReflectedMethod");
514
515 HOTSPOT_JNI_TOREFLECTEDMETHOD_ENTRY(env, cls, (uintptr_t) method_id, isStatic);
516
517 jobject ret = NULL;
518 DT_RETURN_MARK(ToReflectedMethod, jobject, (const jobject&)ret);
519
520 methodHandle m (THREAD, Method::resolve_jmethod_id(method_id));
521 assert(m->is_static() == (isStatic != 0), "jni_ToReflectedMethod access flags doesn't match");
522 oop reflection_method;
523 if (m->is_initializer()) {
524 reflection_method = Reflection::new_constructor(m, CHECK_NULL);
525 } else {
526 reflection_method = Reflection::new_method(m, false, CHECK_NULL);
527 }
528 ret = JNIHandles::make_local(env, reflection_method);
529 return ret;
530 JNI_END
531
532 DT_RETURN_MARK_DECL(GetSuperclass, jclass
533 , HOTSPOT_JNI_GETSUPERCLASS_RETURN(_ret_ref));
534
535 JNI_ENTRY(jclass, jni_GetSuperclass(JNIEnv *env, jclass sub))
536 JNIWrapper("GetSuperclass");
537
538 HOTSPOT_JNI_GETSUPERCLASS_ENTRY(env, sub);
539
540 jclass obj = NULL;
541 DT_RETURN_MARK(GetSuperclass, jclass, (const jclass&)obj);
542
543 oop mirror = JNIHandles::resolve_non_null(sub);
|
503 assert(InstanceKlass::cast(k1)->contains_field_offset(offset), "stay within object");
504 ret = jfieldIDWorkaround::to_instance_jfieldID(k1, offset);
505 return ret;
506 JNI_END
507
508
509 DT_RETURN_MARK_DECL(ToReflectedMethod, jobject
510 , HOTSPOT_JNI_TOREFLECTEDMETHOD_RETURN(_ret_ref));
511
512 JNI_ENTRY(jobject, jni_ToReflectedMethod(JNIEnv *env, jclass cls, jmethodID method_id, jboolean isStatic))
513 JNIWrapper("ToReflectedMethod");
514
515 HOTSPOT_JNI_TOREFLECTEDMETHOD_ENTRY(env, cls, (uintptr_t) method_id, isStatic);
516
517 jobject ret = NULL;
518 DT_RETURN_MARK(ToReflectedMethod, jobject, (const jobject&)ret);
519
520 methodHandle m (THREAD, Method::resolve_jmethod_id(method_id));
521 assert(m->is_static() == (isStatic != 0), "jni_ToReflectedMethod access flags doesn't match");
522 oop reflection_method;
523 if (m->is_object_constructor()) {
524 reflection_method = Reflection::new_constructor(m, CHECK_NULL);
525 } else {
526 reflection_method = Reflection::new_method(m, false, CHECK_NULL);
527 }
528 ret = JNIHandles::make_local(env, reflection_method);
529 return ret;
530 JNI_END
531
532 DT_RETURN_MARK_DECL(GetSuperclass, jclass
533 , HOTSPOT_JNI_GETSUPERCLASS_RETURN(_ret_ref));
534
535 JNI_ENTRY(jclass, jni_GetSuperclass(JNIEnv *env, jclass sub))
536 JNIWrapper("GetSuperclass");
537
538 HOTSPOT_JNI_GETSUPERCLASS_ENTRY(env, sub);
539
540 jclass obj = NULL;
541 DT_RETURN_MARK(GetSuperclass, jclass, (const jclass&)obj);
542
543 oop mirror = JNIHandles::resolve_non_null(sub);
|