Mercurial > hg > truffle
comparison src/share/vm/oops/method.hpp @ 6940:18fb7da42534
8000725: NPG: method_holder() and pool_holder() and pool_holder field should be InstanceKlass
Summary: Change types of above methods and field to InstanceKlass and remove unneeded casts from the source files.
Reviewed-by: dholmes, coleenp, zgu
Contributed-by: harold.seigel@oracle.com
author | coleenp |
---|---|
date | Tue, 06 Nov 2012 15:09:37 -0500 |
parents | 4735d2c84362 |
children | e522a00b91aa 59c790074993 b2dbd323c668 |
comparison
equal
deleted
inserted
replaced
6939:c284cf4781f0 | 6940:18fb7da42534 |
---|---|
207 int generic_signature_index() const { return constMethod()->generic_signature_index(); } | 207 int generic_signature_index() const { return constMethod()->generic_signature_index(); } |
208 void set_generic_signature_index(int index) { constMethod()->set_generic_signature_index(index); } | 208 void set_generic_signature_index(int index) { constMethod()->set_generic_signature_index(index); } |
209 | 209 |
210 // annotations support | 210 // annotations support |
211 AnnotationArray* annotations() const { | 211 AnnotationArray* annotations() const { |
212 InstanceKlass* ik = InstanceKlass::cast(method_holder()); | 212 InstanceKlass* ik = method_holder(); |
213 if (ik->annotations() == NULL) { | 213 if (ik->annotations() == NULL) { |
214 return NULL; | 214 return NULL; |
215 } | 215 } |
216 return ik->annotations()->get_method_annotations_of(method_idnum()); | 216 return ik->annotations()->get_method_annotations_of(method_idnum()); |
217 } | 217 } |
218 AnnotationArray* parameter_annotations() const { | 218 AnnotationArray* parameter_annotations() const { |
219 InstanceKlass* ik = InstanceKlass::cast(method_holder()); | 219 InstanceKlass* ik = method_holder(); |
220 if (ik->annotations() == NULL) { | 220 if (ik->annotations() == NULL) { |
221 return NULL; | 221 return NULL; |
222 } | 222 } |
223 return ik->annotations()->get_method_parameter_annotations_of(method_idnum()); | 223 return ik->annotations()->get_method_parameter_annotations_of(method_idnum()); |
224 } | 224 } |
225 AnnotationArray* annotation_default() const { | 225 AnnotationArray* annotation_default() const { |
226 InstanceKlass* ik = InstanceKlass::cast(method_holder()); | 226 InstanceKlass* ik = method_holder(); |
227 if (ik->annotations() == NULL) { | 227 if (ik->annotations() == NULL) { |
228 return NULL; | 228 return NULL; |
229 } | 229 } |
230 return ik->annotations()->get_method_default_annotations_of(method_idnum()); | 230 return ik->annotations()->get_method_default_annotations_of(method_idnum()); |
231 } | 231 } |
494 { return constMethod()->has_linenumber_table(); } | 494 { return constMethod()->has_linenumber_table(); } |
495 u_char* compressed_linenumber_table() const | 495 u_char* compressed_linenumber_table() const |
496 { return constMethod()->compressed_linenumber_table(); } | 496 { return constMethod()->compressed_linenumber_table(); } |
497 | 497 |
498 // method holder (the Klass* holding this method) | 498 // method holder (the Klass* holding this method) |
499 Klass* method_holder() const { return constants()->pool_holder(); } | 499 InstanceKlass* method_holder() const { return constants()->pool_holder(); } |
500 | 500 |
501 void compute_size_of_parameters(Thread *thread); // word size of parameters (receiver if any + arguments) | 501 void compute_size_of_parameters(Thread *thread); // word size of parameters (receiver if any + arguments) |
502 Symbol* klass_name() const; // returns the name of the method holder | 502 Symbol* klass_name() const; // returns the name of the method holder |
503 BasicType result_type() const; // type of the method result | 503 BasicType result_type() const; // type of the method result |
504 int result_type_index() const; // type index of the method result | 504 int result_type_index() const; // type index of the method result |
695 static void clear_jmethod_ids(ClassLoaderData* loader_data); | 695 static void clear_jmethod_ids(ClassLoaderData* loader_data); |
696 static void print_jmethod_ids(ClassLoaderData* loader_data, outputStream* out) PRODUCT_RETURN; | 696 static void print_jmethod_ids(ClassLoaderData* loader_data, outputStream* out) PRODUCT_RETURN; |
697 | 697 |
698 // Get this method's jmethodID -- allocate if it doesn't exist | 698 // Get this method's jmethodID -- allocate if it doesn't exist |
699 jmethodID jmethod_id() { methodHandle this_h(this); | 699 jmethodID jmethod_id() { methodHandle this_h(this); |
700 return InstanceKlass::get_jmethod_id(InstanceKlass::cast(method_holder()), this_h); } | 700 return InstanceKlass::get_jmethod_id(method_holder(), this_h); } |
701 | 701 |
702 // Lookup the jmethodID for this method. Return NULL if not found. | 702 // Lookup the jmethodID for this method. Return NULL if not found. |
703 // NOTE that this function can be called from a signal handler | 703 // NOTE that this function can be called from a signal handler |
704 // (see AsyncGetCallTrace support for Forte Analyzer) and this | 704 // (see AsyncGetCallTrace support for Forte Analyzer) and this |
705 // needs to be async-safe. No allocation should be done and | 705 // needs to be async-safe. No allocation should be done and |
706 // so handles are not used to avoid deadlock. | 706 // so handles are not used to avoid deadlock. |
707 jmethodID find_jmethod_id_or_null() { return InstanceKlass::cast(method_holder())->jmethod_id_or_null(this); } | 707 jmethodID find_jmethod_id_or_null() { return method_holder()->jmethod_id_or_null(this); } |
708 | 708 |
709 // JNI static invoke cached itable index accessors | 709 // JNI static invoke cached itable index accessors |
710 int cached_itable_index() { return InstanceKlass::cast(method_holder())->cached_itable_index(method_idnum()); } | 710 int cached_itable_index() { return method_holder()->cached_itable_index(method_idnum()); } |
711 void set_cached_itable_index(int index) { InstanceKlass::cast(method_holder())->set_cached_itable_index(method_idnum(), index); } | 711 void set_cached_itable_index(int index) { method_holder()->set_cached_itable_index(method_idnum(), index); } |
712 | 712 |
713 // Support for inlining of intrinsic methods | 713 // Support for inlining of intrinsic methods |
714 vmIntrinsics::ID intrinsic_id() const { return (vmIntrinsics::ID) _intrinsic_id; } | 714 vmIntrinsics::ID intrinsic_id() const { return (vmIntrinsics::ID) _intrinsic_id; } |
715 void set_intrinsic_id(vmIntrinsics::ID id) { _intrinsic_id = (u1) id; } | 715 void set_intrinsic_id(vmIntrinsics::ID id) { _intrinsic_id = (u1) id; } |
716 | 716 |
732 } | 732 } |
733 bool is_overpass() const { return method_type() == ConstMethod::OVERPASS; } | 733 bool is_overpass() const { return method_type() == ConstMethod::OVERPASS; } |
734 | 734 |
735 // On-stack replacement support | 735 // On-stack replacement support |
736 bool has_osr_nmethod(int level, bool match_level) { | 736 bool has_osr_nmethod(int level, bool match_level) { |
737 return InstanceKlass::cast(method_holder())->lookup_osr_nmethod(this, InvocationEntryBci, level, match_level) != NULL; | 737 return method_holder()->lookup_osr_nmethod(this, InvocationEntryBci, level, match_level) != NULL; |
738 } | 738 } |
739 | 739 |
740 nmethod* lookup_osr_nmethod_for(int bci, int level, bool match_level) { | 740 nmethod* lookup_osr_nmethod_for(int bci, int level, bool match_level) { |
741 return InstanceKlass::cast(method_holder())->lookup_osr_nmethod(this, bci, level, match_level); | 741 return method_holder()->lookup_osr_nmethod(this, bci, level, match_level); |
742 } | 742 } |
743 | 743 |
744 // Inline cache support | 744 // Inline cache support |
745 void cleanup_inline_caches(); | 745 void cleanup_inline_caches(); |
746 | 746 |