< prev index next >

src/share/vm/classfile/classFileParser.cpp

Print this page




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(), "");


< prev index next >