Mercurial > hg > graal-compiler
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); |