@@ -966,6 +966,8 @@ bool klassVtable::adjust_default_method(int vtable_index, Method* old_method, Me
966966// search the vtable for uses of either obsolete or EMCP methods
967967void klassVtable::adjust_method_entries (bool * trace_name_printed) {
968968 int prn_enabled = 0 ;
969+ ResourceMark rm;
970+
969971 for (int index = 0 ; index < length (); index++) {
970972 Method* old_method = unchecked_method_at (index);
971973 if (old_method == NULL || !old_method->is_old ()) {
@@ -983,27 +985,29 @@ void klassVtable::adjust_method_entries(bool * trace_name_printed) {
983985 updated_default = adjust_default_method (index, old_method, new_method);
984986 }
985987
986- if (log_is_enabled (Info, redefine, class , update)) {
987- ResourceMark rm;
988- if (!(*trace_name_printed)) {
989- log_info (redefine, class , update)
990- (" adjust: klassname=%s for methods from name=%s" ,
991- _klass->external_name (), old_method->method_holder ()->external_name ());
992- *trace_name_printed = true ;
993- }
994- log_debug (redefine, class , update, vtables)
995- (" vtable method update: %s(%s), updated default = %s" ,
996- new_method->name ()->as_C_string (), new_method->signature ()->as_C_string (), updated_default ? " true" : " false" );
988+ if (!(*trace_name_printed)) {
989+ log_info (redefine, class , update)
990+ (" adjust: klassname=%s for methods from name=%s" ,
991+ _klass->external_name (), old_method->method_holder ()->external_name ());
992+ *trace_name_printed = true ;
997993 }
994+ log_trace (redefine, class , update, vtables)
995+ (" vtable method update: class: %s method: %s, updated default = %s" ,
996+ _klass->external_name (), new_method->external_name (), updated_default ? " true" : " false" );
998997 }
999998}
1000999
10011000// a vtable should never contain old or obsolete methods
10021001bool klassVtable::check_no_old_or_obsolete_entries () {
1002+ ResourceMark rm;
1003+
10031004 for (int i = 0 ; i < length (); i++) {
10041005 Method* m = unchecked_method_at (i);
10051006 if (m != NULL &&
10061007 (NOT_PRODUCT (!m->is_valid () ||) m->is_old () || m->is_obsolete ())) {
1008+ log_trace (redefine, class , update, vtables)
1009+ (" vtable check found old method entry: class: %s old: %d obsolete: %d, method: %s" ,
1010+ _klass->external_name (), m->is_old (), m->is_obsolete (), m->external_name ());
10071011 return false ;
10081012 }
10091013 }
@@ -1292,8 +1296,9 @@ void klassItable::initialize_itable_for_interface(int method_table_offset, Klass
12921296#if INCLUDE_JVMTI
12931297// search the itable for uses of either obsolete or EMCP methods
12941298void klassItable::adjust_method_entries (bool * trace_name_printed) {
1295-
1299+ ResourceMark rm;
12961300 itableMethodEntry* ime = method_entry (0 );
1301+
12971302 for (int i = 0 ; i < _size_method_table; i++, ime++) {
12981303 Method* old_method = ime->method ();
12991304 if (old_method == NULL || !old_method->is_old ()) {
@@ -1303,25 +1308,27 @@ void klassItable::adjust_method_entries(bool * trace_name_printed) {
13031308 Method* new_method = old_method->get_new_method ();
13041309 ime->initialize (new_method);
13051310
1306- if (log_is_enabled (Info, redefine, class , update)) {
1307- ResourceMark rm;
1308- if (!(*trace_name_printed)) {
1309- log_info (redefine, class , update)(" adjust: name=%s" , old_method->method_holder ()->external_name ());
1310- *trace_name_printed = true ;
1311- }
1312- log_trace (redefine, class , update, itables)
1313- (" itable method update: %s(%s)" , new_method->name ()->as_C_string (), new_method->signature ()->as_C_string ());
1311+ if (!(*trace_name_printed)) {
1312+ log_info (redefine, class , update)(" adjust: name=%s" , old_method->method_holder ()->external_name ());
1313+ *trace_name_printed = true ;
13141314 }
1315+ log_trace (redefine, class , update, itables)
1316+ (" itable method update: class: %s method: %s" , _klass->external_name (), new_method->external_name ());
13151317 }
13161318}
13171319
13181320// an itable should never contain old or obsolete methods
13191321bool klassItable::check_no_old_or_obsolete_entries () {
1322+ ResourceMark rm;
13201323 itableMethodEntry* ime = method_entry (0 );
1324+
13211325 for (int i = 0 ; i < _size_method_table; i++) {
13221326 Method* m = ime->method ();
13231327 if (m != NULL &&
13241328 (NOT_PRODUCT (!m->is_valid () ||) m->is_old () || m->is_obsolete ())) {
1329+ log_trace (redefine, class , update, itables)
1330+ (" itable check found old method entry: class: %s old: %d obsolete: %d, method: %s" ,
1331+ _klass->external_name (), m->is_old (), m->is_obsolete (), m->external_name ());
13251332 return false ;
13261333 }
13271334 ime++;
0 commit comments