< prev index next >

src/hotspot/share/oops/method.hpp

Print this page




 797   static void ensure_jmethod_ids(ClassLoaderData* loader_data, int capacity);
 798 
 799   // Use resolve_jmethod_id() in situations where the caller is expected
 800   // to provide a valid jmethodID; the only sanity checks are in asserts;
 801   // result guaranteed not to be NULL.
 802   inline static Method* resolve_jmethod_id(jmethodID mid) {
 803     assert(mid != NULL, "JNI method id should not be null");
 804     return *((Method**)mid);
 805   }
 806 
 807   // Use checked_resolve_jmethod_id() in situations where the caller
 808   // should provide a valid jmethodID, but might not. NULL is returned
 809   // when the jmethodID does not refer to a valid method.
 810   static Method* checked_resolve_jmethod_id(jmethodID mid);
 811 
 812   static void change_method_associated_with_jmethod_id(jmethodID old_jmid_ptr, Method* new_method);
 813   static bool is_method_id(jmethodID mid);
 814 
 815   // Clear methods
 816   static void clear_jmethod_ids(ClassLoaderData* loader_data);
 817   static void print_jmethod_ids(ClassLoaderData* loader_data, outputStream* out) PRODUCT_RETURN;
 818 
 819   // Get this method's jmethodID -- allocate if it doesn't exist
 820   jmethodID jmethod_id()                            { return method_holder()->get_jmethod_id(this); }
 821 
 822   // Lookup the jmethodID for this method.  Return NULL if not found.
 823   // NOTE that this function can be called from a signal handler
 824   // (see AsyncGetCallTrace support for Forte Analyzer) and this
 825   // needs to be async-safe. No allocation should be done and
 826   // so handles are not used to avoid deadlock.
 827   jmethodID find_jmethod_id_or_null()               { return method_holder()->jmethod_id_or_null(this); }
 828 
 829   // Support for inlining of intrinsic methods
 830   vmIntrinsics::ID intrinsic_id() const          { return (vmIntrinsics::ID) _intrinsic_id;           }
 831   void     set_intrinsic_id(vmIntrinsics::ID id) {                           _intrinsic_id = (u2) id; }
 832 
 833   // Helper routines for intrinsic_id() and vmIntrinsics::method().
 834   void init_intrinsic_id();     // updates from _none if a match
 835   static vmSymbols::SID klass_id_for_intrinsics(const Klass* holder);
 836 
 837   bool caller_sensitive() {




 797   static void ensure_jmethod_ids(ClassLoaderData* loader_data, int capacity);
 798 
 799   // Use resolve_jmethod_id() in situations where the caller is expected
 800   // to provide a valid jmethodID; the only sanity checks are in asserts;
 801   // result guaranteed not to be NULL.
 802   inline static Method* resolve_jmethod_id(jmethodID mid) {
 803     assert(mid != NULL, "JNI method id should not be null");
 804     return *((Method**)mid);
 805   }
 806 
 807   // Use checked_resolve_jmethod_id() in situations where the caller
 808   // should provide a valid jmethodID, but might not. NULL is returned
 809   // when the jmethodID does not refer to a valid method.
 810   static Method* checked_resolve_jmethod_id(jmethodID mid);
 811 
 812   static void change_method_associated_with_jmethod_id(jmethodID old_jmid_ptr, Method* new_method);
 813   static bool is_method_id(jmethodID mid);
 814 
 815   // Clear methods
 816   static void clear_jmethod_ids(ClassLoaderData* loader_data);
 817   static void print_jmethod_ids(const ClassLoaderData* loader_data, outputStream* out) PRODUCT_RETURN;
 818 
 819   // Get this method's jmethodID -- allocate if it doesn't exist
 820   jmethodID jmethod_id()                            { return method_holder()->get_jmethod_id(this); }
 821 
 822   // Lookup the jmethodID for this method.  Return NULL if not found.
 823   // NOTE that this function can be called from a signal handler
 824   // (see AsyncGetCallTrace support for Forte Analyzer) and this
 825   // needs to be async-safe. No allocation should be done and
 826   // so handles are not used to avoid deadlock.
 827   jmethodID find_jmethod_id_or_null()               { return method_holder()->jmethod_id_or_null(this); }
 828 
 829   // Support for inlining of intrinsic methods
 830   vmIntrinsics::ID intrinsic_id() const          { return (vmIntrinsics::ID) _intrinsic_id;           }
 831   void     set_intrinsic_id(vmIntrinsics::ID id) {                           _intrinsic_id = (u2) id; }
 832 
 833   // Helper routines for intrinsic_id() and vmIntrinsics::method().
 834   void init_intrinsic_id();     // updates from _none if a match
 835   static vmSymbols::SID klass_id_for_intrinsics(const Klass* holder);
 836 
 837   bool caller_sensitive() {


< prev index next >