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() {
|