1177 oop clazz = java_lang_invoke_MemberName::clazz(JNIHandles::resolve_non_null(mname_jh));
1178 return JNIHandles::make_local(THREAD, clazz);
1179 }
1180 JVM_END
1181
1182 JVM_ENTRY(jobject, MHN_getMemberVMInfo(JNIEnv *env, jobject igcls, jobject mname_jh)) {
1183 if (mname_jh == NULL) return NULL;
1184 Handle mname(THREAD, JNIHandles::resolve_non_null(mname_jh));
1185 intptr_t vmindex = java_lang_invoke_MemberName::vmindex(mname());
1186 Metadata* vmtarget = java_lang_invoke_MemberName::vmtarget(mname());
1187 objArrayHandle result = oopFactory::new_objArray(SystemDictionary::Object_klass(), 2, CHECK_NULL);
1188 jvalue vmindex_value; vmindex_value.j = (long)vmindex;
1189 oop x = java_lang_boxing_object::create(T_LONG, &vmindex_value, CHECK_NULL);
1190 result->obj_at_put(0, x);
1191 x = NULL;
1192 if (vmtarget == NULL) {
1193 x = NULL;
1194 } else if (vmtarget->is_klass()) {
1195 x = ((Klass*) vmtarget)->java_mirror();
1196 } else if (vmtarget->is_method()) {
1197 Handle mname2 = MethodHandles::new_MemberName(CHECK_NULL);
1198 CallInfo info((Method*)vmtarget);
1199 x = MethodHandles::init_method_MemberName(mname2, info);
1200 }
1201 result->obj_at_put(1, x);
1202 return JNIHandles::make_local(env, result());
1203 }
1204 JVM_END
1205
1206
1207
1208 // static native int getMembers(Class<?> defc, String matchName, String matchSig,
1209 // int matchFlags, Class<?> caller, int skip, MemberName[] results);
1210 JVM_ENTRY(jint, MHN_getMembers(JNIEnv *env, jobject igcls,
1211 jclass clazz_jh, jstring name_jh, jstring sig_jh,
1212 int mflags, jclass caller_jh, jint skip, jobjectArray results_jh)) {
1213 if (clazz_jh == NULL || results_jh == NULL) return -1;
1214 KlassHandle k(THREAD, java_lang_Class::as_Klass(JNIHandles::resolve_non_null(clazz_jh)));
1215
1216 objArrayHandle results(THREAD, (objArrayOop) JNIHandles::resolve(results_jh));
1217 if (results.is_null() || !results->is_objArray()) return -1;
1218
1219 TempNewSymbol name = NULL;
|
1177 oop clazz = java_lang_invoke_MemberName::clazz(JNIHandles::resolve_non_null(mname_jh));
1178 return JNIHandles::make_local(THREAD, clazz);
1179 }
1180 JVM_END
1181
1182 JVM_ENTRY(jobject, MHN_getMemberVMInfo(JNIEnv *env, jobject igcls, jobject mname_jh)) {
1183 if (mname_jh == NULL) return NULL;
1184 Handle mname(THREAD, JNIHandles::resolve_non_null(mname_jh));
1185 intptr_t vmindex = java_lang_invoke_MemberName::vmindex(mname());
1186 Metadata* vmtarget = java_lang_invoke_MemberName::vmtarget(mname());
1187 objArrayHandle result = oopFactory::new_objArray(SystemDictionary::Object_klass(), 2, CHECK_NULL);
1188 jvalue vmindex_value; vmindex_value.j = (long)vmindex;
1189 oop x = java_lang_boxing_object::create(T_LONG, &vmindex_value, CHECK_NULL);
1190 result->obj_at_put(0, x);
1191 x = NULL;
1192 if (vmtarget == NULL) {
1193 x = NULL;
1194 } else if (vmtarget->is_klass()) {
1195 x = ((Klass*) vmtarget)->java_mirror();
1196 } else if (vmtarget->is_method()) {
1197 x = mname();
1198 }
1199 result->obj_at_put(1, x);
1200 return JNIHandles::make_local(env, result());
1201 }
1202 JVM_END
1203
1204
1205
1206 // static native int getMembers(Class<?> defc, String matchName, String matchSig,
1207 // int matchFlags, Class<?> caller, int skip, MemberName[] results);
1208 JVM_ENTRY(jint, MHN_getMembers(JNIEnv *env, jobject igcls,
1209 jclass clazz_jh, jstring name_jh, jstring sig_jh,
1210 int mflags, jclass caller_jh, jint skip, jobjectArray results_jh)) {
1211 if (clazz_jh == NULL || results_jh == NULL) return -1;
1212 KlassHandle k(THREAD, java_lang_Class::as_Klass(JNIHandles::resolve_non_null(clazz_jh)));
1213
1214 objArrayHandle results(THREAD, (objArrayOop) JNIHandles::resolve(results_jh));
1215 if (results.is_null() || !results->is_objArray()) return -1;
1216
1217 TempNewSymbol name = NULL;
|