equal
deleted
inserted
replaced
990 for (int j = 0; j < methods_length; j++) { |
990 for (int j = 0; j < methods_length; j++) { |
991 methodOop old_method = old_methods[j]; |
991 methodOop old_method = old_methods[j]; |
992 methodOop new_method = new_methods[j]; |
992 methodOop new_method = new_methods[j]; |
993 itableMethodEntry* ime = method_entry(0); |
993 itableMethodEntry* ime = method_entry(0); |
994 |
994 |
|
995 // The itable can describe more than one interface and the same |
|
996 // method signature can be specified by more than one interface. |
|
997 // This means we have to do an exhaustive search to find all the |
|
998 // old_method references. |
995 for (int i = 0; i < _size_method_table; i++) { |
999 for (int i = 0; i < _size_method_table; i++) { |
996 if (ime->method() == old_method) { |
1000 if (ime->method() == old_method) { |
997 ime->initialize(new_method); |
1001 ime->initialize(new_method); |
998 |
1002 |
999 if (RC_TRACE_IN_RANGE(0x00100000, 0x00400000)) { |
1003 if (RC_TRACE_IN_RANGE(0x00100000, 0x00400000)) { |
1006 // RC_TRACE macro has an embedded ResourceMark |
1010 // RC_TRACE macro has an embedded ResourceMark |
1007 RC_TRACE(0x00200000, ("itable method update: %s(%s)", |
1011 RC_TRACE(0x00200000, ("itable method update: %s(%s)", |
1008 new_method->name()->as_C_string(), |
1012 new_method->name()->as_C_string(), |
1009 new_method->signature()->as_C_string())); |
1013 new_method->signature()->as_C_string())); |
1010 } |
1014 } |
1011 break; |
|
1012 } |
1015 } |
1013 ime++; |
1016 ime++; |
1014 } |
1017 } |
1015 } |
1018 } |
1016 } |
1019 } |