comparison src/share/vm/classfile/dictionary.cpp @ 10268:43083e670adf

8005056: NPG: Crash after redefining java.lang.Object Summary: Need to walk array class vtables replacing old methods too if j.l.o redefined Reviewed-by: sspitsyn, dcubed, ctornqvi
author coleenp
date Mon, 13 May 2013 15:37:08 -0400
parents d587a5c30bd8
children e0c9a1d29eb4
comparison
equal deleted inserted replaced
10267:8b40495b9381 10268:43083e670adf
251 } 251 }
252 } 252 }
253 } 253 }
254 } 254 }
255 255
256
257 // All classes, and their class loaders
258 // (added for helpers that use HandleMarks and ResourceMarks)
259 // Don't iterate over placeholders
260 void Dictionary::classes_do(void f(Klass*, ClassLoaderData*, TRAPS), TRAPS) {
261 for (int index = 0; index < table_size(); index++) {
262 for (DictionaryEntry* probe = bucket(index);
263 probe != NULL;
264 probe = probe->next()) {
265 Klass* k = probe->klass();
266 f(k, probe->loader_data(), CHECK);
267 }
268 }
269 }
270
271
272 // All classes, and their class loaders 256 // All classes, and their class loaders
273 // Don't iterate over placeholders 257 // Don't iterate over placeholders
274 void Dictionary::classes_do(void f(Klass*, ClassLoaderData*)) { 258 void Dictionary::classes_do(void f(Klass*, ClassLoaderData*)) {
275 for (int index = 0; index < table_size(); index++) { 259 for (int index = 0; index < table_size(); index++) {
276 for (DictionaryEntry* probe = bucket(index); 260 for (DictionaryEntry* probe = bucket(index);