src/share/vm/oops/instanceKlass.cpp

Print this page

        

*** 2791,2810 **** #if INCLUDE_JVMTI // update default_methods for redefineclasses for methods that are // not yet in the vtable due to concurrent subclass define and superinterface // redefinition // Note: those in the vtable, should have been updated via adjust_method_entries ! void InstanceKlass::adjust_default_methods(Method** old_methods, Method** new_methods, ! int methods_length, bool* trace_name_printed) { // search the default_methods for uses of either obsolete or EMCP methods if (default_methods() != NULL) { - for (int j = 0; j < methods_length; j++) { - Method* old_method = old_methods[j]; - Method* new_method = new_methods[j]; - for (int index = 0; index < default_methods()->length(); index ++) { ! if (default_methods()->at(index) == old_method) { default_methods()->at_put(index, new_method); if (RC_TRACE_IN_RANGE(0x00100000, 0x00400000)) { if (!(*trace_name_printed)) { // RC_TRACE_MESG macro has an embedded ResourceMark RC_TRACE_MESG(("adjust: klassname=%s default methods from name=%s", --- 2791,2815 ---- #if INCLUDE_JVMTI // update default_methods for redefineclasses for methods that are // not yet in the vtable due to concurrent subclass define and superinterface // redefinition // Note: those in the vtable, should have been updated via adjust_method_entries ! void InstanceKlass::adjust_default_methods(InstanceKlass* holder, bool* trace_name_printed) { // search the default_methods for uses of either obsolete or EMCP methods if (default_methods() != NULL) { for (int index = 0; index < default_methods()->length(); index ++) { ! Method* old_method = default_methods()->at(index); ! if (old_method == NULL || old_method->method_holder() != holder || !old_method->is_old()) { ! continue; // skip uninteresting entries ! } ! assert(!old_method->is_deleted(), "default methods may not be deleted"); ! ! Method* new_method = holder->method_with_idnum(old_method->orig_method_idnum()); ! ! assert(new_method != NULL, "method_with_idnum() should not be NULL"); ! assert(old_method != new_method, "sanity check"); ! default_methods()->at_put(index, new_method); if (RC_TRACE_IN_RANGE(0x00100000, 0x00400000)) { if (!(*trace_name_printed)) { // RC_TRACE_MESG macro has an embedded ResourceMark RC_TRACE_MESG(("adjust: klassname=%s default methods from name=%s",
*** 2815,2826 **** RC_TRACE(0x00100000, ("default method update: %s(%s) ", new_method->name()->as_C_string(), new_method->signature()->as_C_string())); } } - } - } } } #endif // INCLUDE_JVMTI // On-stack replacement stuff --- 2820,2829 ----