comparison src/share/vm/classfile/systemDictionary.cpp @ 6864:dd2b66d09ccd

8000659: NPG: ClassCastExceptions are unexpectedly thrown when testing nashorn Summary: Treat the oops in invoke_method_table() as strong roots when ClassUnloading is enabled. Reviewed-by: kamg, coleenp
author stefank
date Tue, 09 Oct 2012 22:12:25 +0200
parents f6b0eb4e44cf
children 633ba56cb013
comparison
equal deleted inserted replaced
6863:04155d9c8c76 6864:dd2b66d09ccd
1747 void SystemDictionary::always_strong_oops_do(OopClosure* blk) { 1747 void SystemDictionary::always_strong_oops_do(OopClosure* blk) {
1748 blk->do_oop(&_java_system_loader); 1748 blk->do_oop(&_java_system_loader);
1749 blk->do_oop(&_system_loader_lock_obj); 1749 blk->do_oop(&_system_loader_lock_obj);
1750 1750
1751 dictionary()->always_strong_oops_do(blk); 1751 dictionary()->always_strong_oops_do(blk);
1752
1753 // Visit extra methods
1754 invoke_method_table()->oops_do(blk);
1752 } 1755 }
1753 1756
1754 void SystemDictionary::always_strong_classes_do(KlassClosure* closure) { 1757 void SystemDictionary::always_strong_classes_do(KlassClosure* closure) {
1755 // Follow all system classes and temporary placeholders in dictionary 1758 // Follow all system classes and temporary placeholders in dictionary
1756 dictionary()->always_strong_classes_do(closure); 1759 dictionary()->always_strong_classes_do(closure);