819
820 java_lang_reflect_Parameter::set_modifiers(rh(), flags);
821 java_lang_reflect_Parameter::set_executable(rh(), method());
822 java_lang_reflect_Parameter::set_index(rh(), index);
823 return rh();
824 }
825
826
827 static methodHandle resolve_interface_call(instanceKlassHandle klass,
828 const methodHandle& method,
829 KlassHandle recv_klass,
830 Handle receiver,
831 TRAPS) {
832
833 assert(!method.is_null() , "method should not be null");
834
835 CallInfo info;
836 Symbol* signature = method->signature();
837 Symbol* name = method->name();
838 LinkResolver::resolve_interface_call(info, receiver, recv_klass,
839 LinkInfo(klass, name, signature, KlassHandle(), false),
840 true,
841 CHECK_(methodHandle()));
842 return info.selected_method();
843 }
844
845 // Conversion
846 static BasicType basic_type_mirror_to_basic_type(oop basic_type_mirror, TRAPS) {
847 assert(java_lang_Class::is_primitive(basic_type_mirror),
848 "just checking");
849 return java_lang_Class::primitive_type(basic_type_mirror);
850 }
851
852 // Narrowing of basic types. Used to create correct jvalues for
853 // boolean, byte, char and short return return values from interpreter
854 // which are returned as ints. Throws IllegalArgumentException.
855 static void narrow(jvalue* value, BasicType narrow_type, TRAPS) {
856 switch (narrow_type) {
857 case T_BOOLEAN:
858 value->z = (jboolean)value->i;
859 return;
|
819
820 java_lang_reflect_Parameter::set_modifiers(rh(), flags);
821 java_lang_reflect_Parameter::set_executable(rh(), method());
822 java_lang_reflect_Parameter::set_index(rh(), index);
823 return rh();
824 }
825
826
827 static methodHandle resolve_interface_call(instanceKlassHandle klass,
828 const methodHandle& method,
829 KlassHandle recv_klass,
830 Handle receiver,
831 TRAPS) {
832
833 assert(!method.is_null() , "method should not be null");
834
835 CallInfo info;
836 Symbol* signature = method->signature();
837 Symbol* name = method->name();
838 LinkResolver::resolve_interface_call(info, receiver, recv_klass,
839 LinkInfo(klass, name, signature),
840 true,
841 CHECK_(methodHandle()));
842 return info.selected_method();
843 }
844
845 // Conversion
846 static BasicType basic_type_mirror_to_basic_type(oop basic_type_mirror, TRAPS) {
847 assert(java_lang_Class::is_primitive(basic_type_mirror),
848 "just checking");
849 return java_lang_Class::primitive_type(basic_type_mirror);
850 }
851
852 // Narrowing of basic types. Used to create correct jvalues for
853 // boolean, byte, char and short return return values from interpreter
854 // which are returned as ints. Throws IllegalArgumentException.
855 static void narrow(jvalue* value, BasicType narrow_type, TRAPS) {
856 switch (narrow_type) {
857 case T_BOOLEAN:
858 value->z = (jboolean)value->i;
859 return;
|