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