8005056: NPG: Crash after redefining java.lang.Object

Need to walk array class vtables replacing old methods too if j.l.o redefined

Reviewed-by: sspitsyn, dcubed, ctornqvi
This commit is contained in:
Coleen Phillimore 2013-05-13 15:37:08 -04:00
parent 9a1cd52a0f
commit 7a409b13e0
10 changed files with 204 additions and 115 deletions

View file

@ -253,22 +253,6 @@ void Dictionary::classes_do(void f(Klass*, TRAPS), TRAPS) {
}
}
// All classes, and their class loaders
// (added for helpers that use HandleMarks and ResourceMarks)
// Don't iterate over placeholders
void Dictionary::classes_do(void f(Klass*, ClassLoaderData*, TRAPS), TRAPS) {
for (int index = 0; index < table_size(); index++) {
for (DictionaryEntry* probe = bucket(index);
probe != NULL;
probe = probe->next()) {
Klass* k = probe->klass();
f(k, probe->loader_data(), CHECK);
}
}
}
// All classes, and their class loaders
// Don't iterate over placeholders
void Dictionary::classes_do(void f(Klass*, ClassLoaderData*)) {