src/share/vm/runtime/reflection.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8073191-work Sdiff src/share/vm/runtime

src/share/vm/runtime/reflection.cpp

Print this page




 981 
 982   java_lang_reflect_Parameter::set_modifiers(rh(), flags);
 983   java_lang_reflect_Parameter::set_executable(rh(), method());
 984   java_lang_reflect_Parameter::set_index(rh(), index);
 985   return rh();
 986 }
 987 
 988 
 989 static methodHandle resolve_interface_call(instanceKlassHandle klass,
 990                                            const methodHandle& method,
 991                                            KlassHandle recv_klass,
 992                                            Handle receiver,
 993                                            TRAPS) {
 994 
 995   assert(!method.is_null() , "method should not be null");
 996 
 997   CallInfo info;
 998   Symbol*  signature  = method->signature();
 999   Symbol*  name       = method->name();
1000   LinkResolver::resolve_interface_call(info, receiver, recv_klass,
1001                                        LinkInfo(klass, name, signature, KlassHandle(), false),
1002                                        true,
1003                                        CHECK_(methodHandle()));
1004   return info.selected_method();
1005 }
1006 
1007 // Conversion
1008 static BasicType basic_type_mirror_to_basic_type(oop basic_type_mirror, TRAPS) {
1009   assert(java_lang_Class::is_primitive(basic_type_mirror),
1010     "just checking");
1011   return java_lang_Class::primitive_type(basic_type_mirror);
1012 }
1013 
1014 // Narrowing of basic types. Used to create correct jvalues for
1015 // boolean, byte, char and short return return values from interpreter
1016 // which are returned as ints. Throws IllegalArgumentException.
1017 static void narrow(jvalue* value, BasicType narrow_type, TRAPS) {
1018   switch (narrow_type) {
1019   case T_BOOLEAN:
1020     value->z = (jboolean) (value->i & 1);
1021     return;




 981 
 982   java_lang_reflect_Parameter::set_modifiers(rh(), flags);
 983   java_lang_reflect_Parameter::set_executable(rh(), method());
 984   java_lang_reflect_Parameter::set_index(rh(), index);
 985   return rh();
 986 }
 987 
 988 
 989 static methodHandle resolve_interface_call(instanceKlassHandle klass,
 990                                            const methodHandle& method,
 991                                            KlassHandle recv_klass,
 992                                            Handle receiver,
 993                                            TRAPS) {
 994 
 995   assert(!method.is_null() , "method should not be null");
 996 
 997   CallInfo info;
 998   Symbol*  signature  = method->signature();
 999   Symbol*  name       = method->name();
1000   LinkResolver::resolve_interface_call(info, receiver, recv_klass,
1001                                        LinkInfo(klass, name, signature, KlassHandle(), NULL, false),
1002                                        true,
1003                                        CHECK_(methodHandle()));
1004   return info.selected_method();
1005 }
1006 
1007 // Conversion
1008 static BasicType basic_type_mirror_to_basic_type(oop basic_type_mirror, TRAPS) {
1009   assert(java_lang_Class::is_primitive(basic_type_mirror),
1010     "just checking");
1011   return java_lang_Class::primitive_type(basic_type_mirror);
1012 }
1013 
1014 // Narrowing of basic types. Used to create correct jvalues for
1015 // boolean, byte, char and short return return values from interpreter
1016 // which are returned as ints. Throws IllegalArgumentException.
1017 static void narrow(jvalue* value, BasicType narrow_type, TRAPS) {
1018   switch (narrow_type) {
1019   case T_BOOLEAN:
1020     value->z = (jboolean) (value->i & 1);
1021     return;


src/share/vm/runtime/reflection.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File