983
984 // Background compilation support
985 bool queued_for_compilation() const { return access_flags().queued_for_compilation(); }
986 void set_queued_for_compilation() { _access_flags.set_queued_for_compilation(); }
987 void clear_queued_for_compilation() { _access_flags.clear_queued_for_compilation(); }
988
989 // Resolve all classes in signature, return 'true' if successful
990 static bool load_signature_classes(const methodHandle& m, TRAPS);
991
992 // Return if true if not all classes references in signature, including return type, has been loaded
993 static bool has_unloaded_classes_in_signature(const methodHandle& m, TRAPS);
994
995 // Printing
996 void print_short_name(outputStream* st = tty); // prints as klassname::methodname; Exposed so field engineers can debug VM
997 #if INCLUDE_JVMTI
998 void print_name(outputStream* st = tty); // prints as "virtual void foo(int)"; exposed for TraceRedefineClasses
999 #else
1000 void print_name(outputStream* st = tty) PRODUCT_RETURN; // prints as "virtual void foo(int)"
1001 #endif
1002
1003 // Helper routine used for method sorting
1004 static void sort_methods(Array<Method*>* methods, bool set_idnums = true);
1005
1006 // Deallocation function for redefine classes or if an error occurs
1007 void deallocate_contents(ClassLoaderData* loader_data);
1008
1009 Method* get_new_method() const {
1010 InstanceKlass* holder = method_holder();
1011 Method* new_method = holder->method_with_idnum(orig_method_idnum());
1012
1013 assert(new_method != NULL, "method_with_idnum() should not be NULL");
1014 assert(this != new_method, "sanity check");
1015 return new_method;
1016 }
1017
1018 // Printing
1019 #ifndef PRODUCT
1020 void print_on(outputStream* st) const;
1021 #endif
1022 void print_value_on(outputStream* st) const;
1023 void print_linkage_flags(outputStream* st) PRODUCT_RETURN;
1024
|
983
984 // Background compilation support
985 bool queued_for_compilation() const { return access_flags().queued_for_compilation(); }
986 void set_queued_for_compilation() { _access_flags.set_queued_for_compilation(); }
987 void clear_queued_for_compilation() { _access_flags.clear_queued_for_compilation(); }
988
989 // Resolve all classes in signature, return 'true' if successful
990 static bool load_signature_classes(const methodHandle& m, TRAPS);
991
992 // Return if true if not all classes references in signature, including return type, has been loaded
993 static bool has_unloaded_classes_in_signature(const methodHandle& m, TRAPS);
994
995 // Printing
996 void print_short_name(outputStream* st = tty); // prints as klassname::methodname; Exposed so field engineers can debug VM
997 #if INCLUDE_JVMTI
998 void print_name(outputStream* st = tty); // prints as "virtual void foo(int)"; exposed for TraceRedefineClasses
999 #else
1000 void print_name(outputStream* st = tty) PRODUCT_RETURN; // prints as "virtual void foo(int)"
1001 #endif
1002
1003 typedef int (*method_comparator_func)(Method* a, Method* b);
1004
1005 // Helper routine used for method sorting
1006 static void sort_methods(Array<Method*>* methods, bool set_idnums = true, method_comparator_func func = NULL);
1007
1008 // Deallocation function for redefine classes or if an error occurs
1009 void deallocate_contents(ClassLoaderData* loader_data);
1010
1011 Method* get_new_method() const {
1012 InstanceKlass* holder = method_holder();
1013 Method* new_method = holder->method_with_idnum(orig_method_idnum());
1014
1015 assert(new_method != NULL, "method_with_idnum() should not be NULL");
1016 assert(this != new_method, "sanity check");
1017 return new_method;
1018 }
1019
1020 // Printing
1021 #ifndef PRODUCT
1022 void print_on(outputStream* st) const;
1023 #endif
1024 void print_value_on(outputStream* st) const;
1025 void print_linkage_flags(outputStream* st) PRODUCT_RETURN;
1026
|