Mercurial > hg > graal-jvmci-8
comparison src/share/vm/classfile/classFileParser.cpp @ 7615:f422634e5828
Merge
author | brutisso |
---|---|
date | Fri, 18 Jan 2013 11:03:15 +0100 |
parents | 5b6a231e5a86 ff0a7943fd29 |
children | 22ead76da3f4 |
comparison
equal
deleted
inserted
replaced
7607:eab4f9ed602c | 7615:f422634e5828 |
---|---|
2501 if (is_interface && !method->is_abstract() && !method->is_static()) { | 2501 if (is_interface && !method->is_abstract() && !method->is_static()) { |
2502 // default method | 2502 // default method |
2503 *has_default_methods = true; | 2503 *has_default_methods = true; |
2504 } | 2504 } |
2505 methods->at_put(index, method()); | 2505 methods->at_put(index, method()); |
2506 if (*methods_annotations == NULL) { | 2506 |
2507 *methods_annotations = | 2507 if (method_annotations != NULL) { |
2508 MetadataFactory::new_array<AnnotationArray*>(loader_data, length, NULL, CHECK_NULL); | 2508 if (*methods_annotations == NULL) { |
2509 } | 2509 *methods_annotations = |
2510 (*methods_annotations)->at_put(index, method_annotations); | 2510 MetadataFactory::new_array<AnnotationArray*>(loader_data, length, NULL, CHECK_NULL); |
2511 if (*methods_parameter_annotations == NULL) { | 2511 } |
2512 *methods_parameter_annotations = | 2512 (*methods_annotations)->at_put(index, method_annotations); |
2513 MetadataFactory::new_array<AnnotationArray*>(loader_data, length, NULL, CHECK_NULL); | 2513 } |
2514 } | 2514 |
2515 (*methods_parameter_annotations)->at_put(index, method_parameter_annotations); | 2515 if (method_parameter_annotations != NULL) { |
2516 if (*methods_default_annotations == NULL) { | 2516 if (*methods_parameter_annotations == NULL) { |
2517 *methods_default_annotations = | 2517 *methods_parameter_annotations = |
2518 MetadataFactory::new_array<AnnotationArray*>(loader_data, length, NULL, CHECK_NULL); | 2518 MetadataFactory::new_array<AnnotationArray*>(loader_data, length, NULL, CHECK_NULL); |
2519 } | 2519 } |
2520 (*methods_default_annotations)->at_put(index, method_default_annotations); | 2520 (*methods_parameter_annotations)->at_put(index, method_parameter_annotations); |
2521 if (*methods_type_annotations == NULL) { | 2521 } |
2522 *methods_type_annotations = | 2522 |
2523 MetadataFactory::new_array<AnnotationArray*>(loader_data, length, NULL, CHECK_NULL); | 2523 if (method_default_annotations != NULL) { |
2524 } | 2524 if (*methods_default_annotations == NULL) { |
2525 (*methods_type_annotations)->at_put(index, method_type_annotations); | 2525 *methods_default_annotations = |
2526 MetadataFactory::new_array<AnnotationArray*>(loader_data, length, NULL, CHECK_NULL); | |
2527 } | |
2528 (*methods_default_annotations)->at_put(index, method_default_annotations); | |
2529 } | |
2530 | |
2531 if (method_type_annotations != NULL) { | |
2532 if (*methods_type_annotations == NULL) { | |
2533 *methods_type_annotations = | |
2534 MetadataFactory::new_array<AnnotationArray*>(loader_data, length, NULL, CHECK_NULL); | |
2535 } | |
2536 (*methods_type_annotations)->at_put(index, method_type_annotations); | |
2537 } | |
2526 } | 2538 } |
2527 | 2539 |
2528 if (_need_verify && length > 1) { | 2540 if (_need_verify && length > 1) { |
2529 // Check duplicated methods | 2541 // Check duplicated methods |
2530 ResourceMark rm(THREAD); | 2542 ResourceMark rm(THREAD); |
3336 CHECK_(nullHandle)); | 3348 CHECK_(nullHandle)); |
3337 // Methods | 3349 // Methods |
3338 bool has_final_method = false; | 3350 bool has_final_method = false; |
3339 AccessFlags promoted_flags; | 3351 AccessFlags promoted_flags; |
3340 promoted_flags.set_flags(0); | 3352 promoted_flags.set_flags(0); |
3341 // These need to be oop pointers because they are allocated lazily | 3353 |
3342 // inside parse_methods inside a nested HandleMark | |
3343 Array<AnnotationArray*>* methods_annotations = NULL; | 3354 Array<AnnotationArray*>* methods_annotations = NULL; |
3344 Array<AnnotationArray*>* methods_parameter_annotations = NULL; | 3355 Array<AnnotationArray*>* methods_parameter_annotations = NULL; |
3345 Array<AnnotationArray*>* methods_default_annotations = NULL; | 3356 Array<AnnotationArray*>* methods_default_annotations = NULL; |
3346 Array<AnnotationArray*>* methods_type_annotations = NULL; | 3357 Array<AnnotationArray*>* methods_type_annotations = NULL; |
3347 Array<Method*>* methods = parse_methods(loader_data, | 3358 Array<Method*>* methods = parse_methods(loader_data, |