896 java_lang_reflect_Method::set_return_type(mh(), return_type()); |
896 java_lang_reflect_Method::set_return_type(mh(), return_type()); |
897 java_lang_reflect_Method::set_parameter_types(mh(), parameter_types()); |
897 java_lang_reflect_Method::set_parameter_types(mh(), parameter_types()); |
898 java_lang_reflect_Method::set_exception_types(mh(), exception_types()); |
898 java_lang_reflect_Method::set_exception_types(mh(), exception_types()); |
899 java_lang_reflect_Method::set_modifiers(mh(), modifiers); |
899 java_lang_reflect_Method::set_modifiers(mh(), modifiers); |
900 java_lang_reflect_Method::set_override(mh(), false); |
900 java_lang_reflect_Method::set_override(mh(), false); |
901 if (java_lang_reflect_Method::has_signature_field() && |
901 if (method->generic_signature() != NULL) { |
902 method->generic_signature() != NULL) { |
|
903 Symbol* gs = method->generic_signature(); |
902 Symbol* gs = method->generic_signature(); |
904 Handle sig = java_lang_String::create_from_symbol(gs, CHECK_NULL); |
903 Handle sig = java_lang_String::create_from_symbol(gs, CHECK_NULL); |
905 java_lang_reflect_Method::set_signature(mh(), sig()); |
904 java_lang_reflect_Method::set_signature(mh(), sig()); |
906 } |
905 } |
907 if (java_lang_reflect_Method::has_annotations_field()) { |
906 typeArrayOop an_oop = Annotations::make_java_array(method->annotations(), CHECK_NULL); |
908 typeArrayOop an_oop = Annotations::make_java_array(method->annotations(), CHECK_NULL); |
907 java_lang_reflect_Method::set_annotations(mh(), an_oop); |
909 java_lang_reflect_Method::set_annotations(mh(), an_oop); |
908 an_oop = Annotations::make_java_array(method->parameter_annotations(), CHECK_NULL); |
910 } |
909 java_lang_reflect_Method::set_parameter_annotations(mh(), an_oop); |
911 if (java_lang_reflect_Method::has_parameter_annotations_field()) { |
910 an_oop = Annotations::make_java_array(method->annotation_default(), CHECK_NULL); |
912 typeArrayOop an_oop = Annotations::make_java_array(method->parameter_annotations(), CHECK_NULL); |
911 java_lang_reflect_Method::set_annotation_default(mh(), an_oop); |
913 java_lang_reflect_Method::set_parameter_annotations(mh(), an_oop); |
|
914 } |
|
915 if (java_lang_reflect_Method::has_annotation_default_field()) { |
|
916 typeArrayOop an_oop = Annotations::make_java_array(method->annotation_default(), CHECK_NULL); |
|
917 java_lang_reflect_Method::set_annotation_default(mh(), an_oop); |
|
918 } |
|
919 if (java_lang_reflect_Method::has_type_annotations_field()) { |
|
920 typeArrayOop an_oop = Annotations::make_java_array(method->type_annotations(), CHECK_NULL); |
|
921 java_lang_reflect_Method::set_type_annotations(mh(), an_oop); |
|
922 } |
|
923 return mh(); |
912 return mh(); |
924 } |
913 } |
925 |
914 |
926 |
915 |
927 oop Reflection::new_constructor(const methodHandle& method, TRAPS) { |
916 oop Reflection::new_constructor(const methodHandle& method, TRAPS) { |
946 java_lang_reflect_Constructor::set_slot(ch(), slot); |
935 java_lang_reflect_Constructor::set_slot(ch(), slot); |
947 java_lang_reflect_Constructor::set_parameter_types(ch(), parameter_types()); |
936 java_lang_reflect_Constructor::set_parameter_types(ch(), parameter_types()); |
948 java_lang_reflect_Constructor::set_exception_types(ch(), exception_types()); |
937 java_lang_reflect_Constructor::set_exception_types(ch(), exception_types()); |
949 java_lang_reflect_Constructor::set_modifiers(ch(), modifiers); |
938 java_lang_reflect_Constructor::set_modifiers(ch(), modifiers); |
950 java_lang_reflect_Constructor::set_override(ch(), false); |
939 java_lang_reflect_Constructor::set_override(ch(), false); |
951 if (java_lang_reflect_Constructor::has_signature_field() && |
940 if (method->generic_signature() != NULL) { |
952 method->generic_signature() != NULL) { |
|
953 Symbol* gs = method->generic_signature(); |
941 Symbol* gs = method->generic_signature(); |
954 Handle sig = java_lang_String::create_from_symbol(gs, CHECK_NULL); |
942 Handle sig = java_lang_String::create_from_symbol(gs, CHECK_NULL); |
955 java_lang_reflect_Constructor::set_signature(ch(), sig()); |
943 java_lang_reflect_Constructor::set_signature(ch(), sig()); |
956 } |
944 } |
957 if (java_lang_reflect_Constructor::has_annotations_field()) { |
945 typeArrayOop an_oop = Annotations::make_java_array(method->annotations(), CHECK_NULL); |
958 typeArrayOop an_oop = Annotations::make_java_array(method->annotations(), CHECK_NULL); |
946 java_lang_reflect_Constructor::set_annotations(ch(), an_oop); |
959 java_lang_reflect_Constructor::set_annotations(ch(), an_oop); |
947 an_oop = Annotations::make_java_array(method->parameter_annotations(), CHECK_NULL); |
960 } |
948 java_lang_reflect_Constructor::set_parameter_annotations(ch(), an_oop); |
961 if (java_lang_reflect_Constructor::has_parameter_annotations_field()) { |
|
962 typeArrayOop an_oop = Annotations::make_java_array(method->parameter_annotations(), CHECK_NULL); |
|
963 java_lang_reflect_Constructor::set_parameter_annotations(ch(), an_oop); |
|
964 } |
|
965 if (java_lang_reflect_Constructor::has_type_annotations_field()) { |
|
966 typeArrayOop an_oop = Annotations::make_java_array(method->type_annotations(), CHECK_NULL); |
|
967 java_lang_reflect_Constructor::set_type_annotations(ch(), an_oop); |
|
968 } |
|
969 return ch(); |
949 return ch(); |
970 } |
950 } |
971 |
951 |
972 |
952 |
973 oop Reflection::new_field(fieldDescriptor* fd, TRAPS) { |
953 oop Reflection::new_field(fieldDescriptor* fd, TRAPS) { |
984 java_lang_reflect_Field::set_name(rh(), name()); |
964 java_lang_reflect_Field::set_name(rh(), name()); |
985 java_lang_reflect_Field::set_type(rh(), type()); |
965 java_lang_reflect_Field::set_type(rh(), type()); |
986 // Note the ACC_ANNOTATION bit, which is a per-class access flag, is never set here. |
966 // Note the ACC_ANNOTATION bit, which is a per-class access flag, is never set here. |
987 java_lang_reflect_Field::set_modifiers(rh(), fd->access_flags().as_int() & JVM_RECOGNIZED_FIELD_MODIFIERS); |
967 java_lang_reflect_Field::set_modifiers(rh(), fd->access_flags().as_int() & JVM_RECOGNIZED_FIELD_MODIFIERS); |
988 java_lang_reflect_Field::set_override(rh(), false); |
968 java_lang_reflect_Field::set_override(rh(), false); |
989 if (java_lang_reflect_Field::has_signature_field() && |
969 if (fd->has_generic_signature()) { |
990 fd->has_generic_signature()) { |
|
991 Symbol* gs = fd->generic_signature(); |
970 Symbol* gs = fd->generic_signature(); |
992 Handle sig = java_lang_String::create_from_symbol(gs, CHECK_NULL); |
971 Handle sig = java_lang_String::create_from_symbol(gs, CHECK_NULL); |
993 java_lang_reflect_Field::set_signature(rh(), sig()); |
972 java_lang_reflect_Field::set_signature(rh(), sig()); |
994 } |
973 } |
995 if (java_lang_reflect_Field::has_annotations_field()) { |
974 typeArrayOop an_oop = Annotations::make_java_array(fd->annotations(), CHECK_NULL); |
996 typeArrayOop an_oop = Annotations::make_java_array(fd->annotations(), CHECK_NULL); |
975 java_lang_reflect_Field::set_annotations(rh(), an_oop); |
997 java_lang_reflect_Field::set_annotations(rh(), an_oop); |
|
998 } |
|
999 if (java_lang_reflect_Field::has_type_annotations_field()) { |
|
1000 typeArrayOop an_oop = Annotations::make_java_array(fd->type_annotations(), CHECK_NULL); |
|
1001 java_lang_reflect_Field::set_type_annotations(rh(), an_oop); |
|
1002 } |
|
1003 return rh(); |
976 return rh(); |
1004 } |
977 } |
1005 |
978 |
1006 oop Reflection::new_parameter(Handle method, int index, Symbol* sym, |
979 oop Reflection::new_parameter(Handle method, int index, Symbol* sym, |
1007 int flags, TRAPS) { |
980 int flags, TRAPS) { |