907
908 // Printing
909 void print_short_name(outputStream* st = tty); // prints as klassname::methodname; Exposed so field engineers can debug VM
910 #if INCLUDE_JVMTI
911 void print_name(outputStream* st = tty); // prints as "virtual void foo(int)"; exposed for TraceRedefineClasses
912 #else
913 void print_name(outputStream* st = tty) PRODUCT_RETURN; // prints as "virtual void foo(int)"
914 #endif
915
916 // Helper routine used for method sorting
917 static void sort_methods(Array<Method*>* methods, bool idempotent = false, bool set_idnums = true);
918
919 // Deallocation function for redefine classes or if an error occurs
920 void deallocate_contents(ClassLoaderData* loader_data);
921
922 // Printing
923 #ifndef PRODUCT
924 void print_on(outputStream* st) const;
925 #endif
926 void print_value_on(outputStream* st) const;
927
928 const char* internal_name() const { return "{method}"; }
929
930 // Check for valid method pointer
931 static bool has_method_vptr(const void* ptr);
932 bool is_valid_method() const;
933
934 // Verify
935 void verify() { verify_on(tty); }
936 void verify_on(outputStream* st);
937
938 private:
939
940 // Inlined elements
941 address* native_function_addr() const { assert(is_native(), "must be native"); return (address*) (this+1); }
942 address* signature_handler_addr() const { return native_function_addr() + 1; }
943 };
944
945
946 // Utility class for compressing line number tables
|
907
908 // Printing
909 void print_short_name(outputStream* st = tty); // prints as klassname::methodname; Exposed so field engineers can debug VM
910 #if INCLUDE_JVMTI
911 void print_name(outputStream* st = tty); // prints as "virtual void foo(int)"; exposed for TraceRedefineClasses
912 #else
913 void print_name(outputStream* st = tty) PRODUCT_RETURN; // prints as "virtual void foo(int)"
914 #endif
915
916 // Helper routine used for method sorting
917 static void sort_methods(Array<Method*>* methods, bool idempotent = false, bool set_idnums = true);
918
919 // Deallocation function for redefine classes or if an error occurs
920 void deallocate_contents(ClassLoaderData* loader_data);
921
922 // Printing
923 #ifndef PRODUCT
924 void print_on(outputStream* st) const;
925 #endif
926 void print_value_on(outputStream* st) const;
927 void print_linkage_flags(outputStream* st) PRODUCT_RETURN;
928
929 const char* internal_name() const { return "{method}"; }
930
931 // Check for valid method pointer
932 static bool has_method_vptr(const void* ptr);
933 bool is_valid_method() const;
934
935 // Verify
936 void verify() { verify_on(tty); }
937 void verify_on(outputStream* st);
938
939 private:
940
941 // Inlined elements
942 address* native_function_addr() const { assert(is_native(), "must be native"); return (address*) (this+1); }
943 address* signature_handler_addr() const { return native_function_addr() + 1; }
944 };
945
946
947 // Utility class for compressing line number tables
|