1.1 --- a/src/share/vm/oops/method.hpp Fri Feb 08 16:56:03 2013 -0800 1.2 +++ b/src/share/vm/oops/method.hpp Mon Feb 11 14:06:22 2013 -0500 1.3 @@ -101,6 +101,7 @@ 1.4 class AdapterHandlerEntry; 1.5 class MethodData; 1.6 class ConstMethod; 1.7 +class InlineTableSizes; 1.8 class KlassSizeStats; 1.9 1.10 class Method : public Metadata { 1.11 @@ -157,12 +158,7 @@ 1.12 static Method* allocate(ClassLoaderData* loader_data, 1.13 int byte_code_size, 1.14 AccessFlags access_flags, 1.15 - int compressed_line_number_size, 1.16 - int localvariable_table_length, 1.17 - int exception_table_length, 1.18 - int checked_exceptions_length, 1.19 - int method_parameters_length, 1.20 - u2 generic_signature_index, 1.21 + InlineTableSizes* sizes, 1.22 ConstMethod::MethodType method_type, 1.23 TRAPS); 1.24 1.25 @@ -207,33 +203,17 @@ 1.26 1.27 // annotations support 1.28 AnnotationArray* annotations() const { 1.29 - InstanceKlass* ik = method_holder(); 1.30 - if (ik->annotations() == NULL) { 1.31 - return NULL; 1.32 - } 1.33 - return ik->annotations()->get_method_annotations_of(method_idnum()); 1.34 + return constMethod()->method_annotations(); 1.35 } 1.36 AnnotationArray* parameter_annotations() const { 1.37 - InstanceKlass* ik = method_holder(); 1.38 - if (ik->annotations() == NULL) { 1.39 - return NULL; 1.40 - } 1.41 - return ik->annotations()->get_method_parameter_annotations_of(method_idnum()); 1.42 + return constMethod()->parameter_annotations(); 1.43 } 1.44 AnnotationArray* annotation_default() const { 1.45 - InstanceKlass* ik = method_holder(); 1.46 - if (ik->annotations() == NULL) { 1.47 - return NULL; 1.48 - } 1.49 - return ik->annotations()->get_method_default_annotations_of(method_idnum()); 1.50 + return constMethod()->default_annotations(); 1.51 } 1.52 - AnnotationArray* type_annotations() const { 1.53 - InstanceKlass* ik = method_holder(); 1.54 - Annotations* type_annos = ik->type_annotations(); 1.55 - if (type_annos == NULL) 1.56 - return NULL; 1.57 - return type_annos->get_method_annotations_of(method_idnum()); 1.58 -} 1.59 + AnnotationArray* type_annotations() const { 1.60 + return constMethod()->type_annotations(); 1.61 + } 1.62 1.63 #ifdef CC_INTERP 1.64 void set_result_index(BasicType type); 1.65 @@ -439,13 +419,6 @@ 1.66 address interpreter_entry() const { return _i2i_entry; } 1.67 // Only used when first initialize so we can set _i2i_entry and _from_interpreted_entry 1.68 void set_interpreter_entry(address entry) { _i2i_entry = entry; _from_interpreted_entry = entry; } 1.69 - int interpreter_kind(void) { 1.70 - return constMethod()->interpreter_kind(); 1.71 - } 1.72 - void set_interpreter_kind(); 1.73 - void set_interpreter_kind(int kind) { 1.74 - constMethod()->set_interpreter_kind(kind); 1.75 - } 1.76 1.77 // native function (used for native methods only) 1.78 enum { 1.79 @@ -808,12 +781,7 @@ 1.80 #endif 1.81 1.82 // Helper routine used for method sorting 1.83 - static void sort_methods(Array<Method*>* methods, 1.84 - Array<AnnotationArray*>* methods_annotations, 1.85 - Array<AnnotationArray*>* methods_parameter_annotations, 1.86 - Array<AnnotationArray*>* methods_default_annotations, 1.87 - Array<AnnotationArray*>* methods_type_annotations, 1.88 - bool idempotent = false); 1.89 + static void sort_methods(Array<Method*>* methods, bool idempotent = false); 1.90 1.91 // Deallocation function for redefine classes or if an error occurs 1.92 void deallocate_contents(ClassLoaderData* loader_data);