diff -r 582dd25571b2 -r 96d498ec7ae1 hotspot/src/share/vm/oops/klass.cpp --- a/hotspot/src/share/vm/oops/klass.cpp Thu Jan 27 13:42:28 2011 -0800 +++ b/hotspot/src/share/vm/oops/klass.cpp Thu Jan 27 16:11:27 2011 -0800 @@ -35,6 +35,10 @@ #include "oops/oop.inline2.hpp" #include "runtime/atomic.hpp" +void Klass::set_name(Symbol* n) { + _name = n; + if (_name != NULL) _name->increment_refcount(); +} bool Klass::is_subclass_of(klassOop k) const { // Run up the super chain and check @@ -115,7 +119,7 @@ } -methodOop Klass::uncached_lookup_method(symbolOop name, symbolOop signature) const { +methodOop Klass::uncached_lookup_method(Symbol* name, Symbol* signature) const { #ifdef ASSERT tty->print_cr("Error: uncached_lookup_method called on a klass oop." " Likely error: reflection method does not correctly" @@ -454,6 +458,11 @@ } +void Klass::shared_symbols_iterate(SymbolClosure* closure) { + closure->do_symbol(&_name); +} + + klassOop Klass::array_klass_or_null(int rank) { EXCEPTION_MARK; // No exception can be thrown by array_klass_impl when called with or_null == true.