98 // printed the klass name so that other routines in the adjust_* 99 // group don't print the klass name. 100 bool adjust_default_method(int vtable_index, Method* old_method, Method* new_method); 101 void adjust_method_entries(InstanceKlass* holder, bool * trace_name_printed); 102 bool check_no_old_or_obsolete_entries(); 103 void dump_vtable(); 104 #endif // INCLUDE_JVMTI 105 106 // Debugging code 107 void print() PRODUCT_RETURN; 108 void verify(outputStream* st, bool force = false); 109 static void print_statistics() PRODUCT_RETURN; 110 111 protected: 112 friend class vtableEntry; 113 private: 114 enum { VTABLE_TRANSITIVE_OVERRIDE_VERSION = 51 } ; 115 void copy_vtable_to(vtableEntry* start); 116 int initialize_from_super(KlassHandle super); 117 int index_of(Method* m, int len) const; // same as index_of, but search only up to len 118 void put_method_at(Method* m, int index); 119 static bool needs_new_vtable_entry(methodHandle m, Klass* super, Handle classloader, Symbol* classname, AccessFlags access_flags, TRAPS); 120 121 bool update_inherited_vtable(InstanceKlass* klass, methodHandle target_method, int super_vtable_len, int default_index, bool checkconstraints, TRAPS); 122 InstanceKlass* find_transitive_override(InstanceKlass* initialsuper, methodHandle target_method, int vtable_index, 123 Handle target_loader, Symbol* target_classname, Thread* THREAD); 124 125 // support for miranda methods 126 bool is_miranda_entry_at(int i); 127 int fill_in_mirandas(int initialized); 128 static bool is_miranda(Method* m, Array<Method*>* class_methods, 129 Array<Method*>* default_methods, Klass* super); 130 static void add_new_mirandas_to_lists( 131 GrowableArray<Method*>* new_mirandas, 132 GrowableArray<Method*>* all_mirandas, 133 Array<Method*>* current_interface_methods, 134 Array<Method*>* class_methods, 135 Array<Method*>* default_methods, 136 Klass* super); 137 static void get_mirandas( | 98 // printed the klass name so that other routines in the adjust_* 99 // group don't print the klass name. 100 bool adjust_default_method(int vtable_index, Method* old_method, Method* new_method); 101 void adjust_method_entries(InstanceKlass* holder, bool * trace_name_printed); 102 bool check_no_old_or_obsolete_entries(); 103 void dump_vtable(); 104 #endif // INCLUDE_JVMTI 105 106 // Debugging code 107 void print() PRODUCT_RETURN; 108 void verify(outputStream* st, bool force = false); 109 static void print_statistics() PRODUCT_RETURN; 110 111 protected: 112 friend class vtableEntry; 113 private: 114 enum { VTABLE_TRANSITIVE_OVERRIDE_VERSION = 51 } ; 115 void copy_vtable_to(vtableEntry* start); 116 int initialize_from_super(KlassHandle super); 117 int index_of(Method* m, int len) const; // same as index_of, but search only up to len 118 void log_vtables(int i, bool allocate_new, methodHandle target_method, 119 KlassHandle target_klass, Method* super_method, 120 Thread* thread) PRODUCT_RETURN; 121 void put_method_at(Method* m, int index); 122 static bool needs_new_vtable_entry(methodHandle m, Klass* super, Handle classloader, Symbol* classname, AccessFlags access_flags, TRAPS); 123 124 bool update_inherited_vtable(InstanceKlass* klass, methodHandle target_method, int super_vtable_len, int default_index, bool checkconstraints, TRAPS); 125 InstanceKlass* find_transitive_override(InstanceKlass* initialsuper, methodHandle target_method, int vtable_index, 126 Handle target_loader, Symbol* target_classname, Thread* THREAD); 127 128 // support for miranda methods 129 bool is_miranda_entry_at(int i); 130 int fill_in_mirandas(int initialized); 131 static bool is_miranda(Method* m, Array<Method*>* class_methods, 132 Array<Method*>* default_methods, Klass* super); 133 static void add_new_mirandas_to_lists( 134 GrowableArray<Method*>* new_mirandas, 135 GrowableArray<Method*>* all_mirandas, 136 Array<Method*>* current_interface_methods, 137 Array<Method*>* class_methods, 138 Array<Method*>* default_methods, 139 Klass* super); 140 static void get_mirandas( |