2688 exception_table_length,
2689 checked_exceptions_length,
2690 method_parameters_length,
2691 generic_signature_index,
2692 runtime_visible_annotations_length +
2693 runtime_invisible_annotations_length,
2694 runtime_visible_parameter_annotations_length +
2695 runtime_invisible_parameter_annotations_length,
2696 runtime_visible_type_annotations_length +
2697 runtime_invisible_type_annotations_length,
2698 annotation_default_length,
2699 0);
2700
2701 Method* const m = Method::allocate(_loader_data,
2702 code_length,
2703 access_flags,
2704 &sizes,
2705 ConstMethod::NORMAL,
2706 CHECK_NULL);
2707
2708 ClassLoadingService::add_class_method_size(m->size()*HeapWordSize);
2709
2710 // Fill in information from fixed part (access_flags already set)
2711 m->set_constants(_cp);
2712 m->set_name_index(name_index);
2713 m->set_signature_index(signature_index);
2714 #ifdef CC_INTERP
2715 // hmm is there a gc issue here??
2716 ResultTypeFinder rtf(cp->symbol_at(signature_index));
2717 m->set_result_index(rtf.type());
2718 #endif
2719
2720 if (args_size >= 0) {
2721 m->set_size_of_parameters(args_size);
2722 } else {
2723 m->compute_size_of_parameters(THREAD);
2724 }
2725 #ifdef ASSERT
2726 if (args_size >= 0) {
2727 m->compute_size_of_parameters(THREAD);
2728 assert(args_size == m->size_of_parameters(), "");
|
2688 exception_table_length,
2689 checked_exceptions_length,
2690 method_parameters_length,
2691 generic_signature_index,
2692 runtime_visible_annotations_length +
2693 runtime_invisible_annotations_length,
2694 runtime_visible_parameter_annotations_length +
2695 runtime_invisible_parameter_annotations_length,
2696 runtime_visible_type_annotations_length +
2697 runtime_invisible_type_annotations_length,
2698 annotation_default_length,
2699 0);
2700
2701 Method* const m = Method::allocate(_loader_data,
2702 code_length,
2703 access_flags,
2704 &sizes,
2705 ConstMethod::NORMAL,
2706 CHECK_NULL);
2707
2708 ClassLoadingService::add_class_method_size(m->size()*wordSize);
2709
2710 // Fill in information from fixed part (access_flags already set)
2711 m->set_constants(_cp);
2712 m->set_name_index(name_index);
2713 m->set_signature_index(signature_index);
2714 #ifdef CC_INTERP
2715 // hmm is there a gc issue here??
2716 ResultTypeFinder rtf(cp->symbol_at(signature_index));
2717 m->set_result_index(rtf.type());
2718 #endif
2719
2720 if (args_size >= 0) {
2721 m->set_size_of_parameters(args_size);
2722 } else {
2723 m->compute_size_of_parameters(THREAD);
2724 }
2725 #ifdef ASSERT
2726 if (args_size >= 0) {
2727 m->compute_size_of_parameters(THREAD);
2728 assert(args_size == m->size_of_parameters(), "");
|