1.1 --- a/src/share/vm/classfile/systemDictionary.hpp Thu Mar 19 09:13:24 2009 -0700 1.2 +++ b/src/share/vm/classfile/systemDictionary.hpp Fri Mar 20 23:19:36 2009 -0700 1.3 @@ -161,6 +161,7 @@ 1.4 class SystemDictionary : AllStatic { 1.5 friend class VMStructs; 1.6 friend class CompactingPermGenGen; 1.7 + friend class SystemDictionaryHandles; 1.8 NOT_PRODUCT(friend class instanceKlassKlass;) 1.9 1.10 public: 1.11 @@ -595,3 +596,18 @@ 1.12 static bool _has_loadClassInternal; 1.13 static bool _has_checkPackageAccess; 1.14 }; 1.15 + 1.16 +// Cf. vmSymbols vs. vmSymbolHandles 1.17 +class SystemDictionaryHandles : AllStatic { 1.18 +public: 1.19 + #define WK_KLASS_HANDLE_DECLARE(name, ignore_symbol, option) \ 1.20 + static KlassHandle name() { \ 1.21 + SystemDictionary::name(); \ 1.22 + klassOop* loc = &SystemDictionary::_well_known_klasses[SystemDictionary::WK_KLASS_ENUM_NAME(name)]; \ 1.23 + return KlassHandle(loc, true); \ 1.24 + } 1.25 + WK_KLASSES_DO(WK_KLASS_HANDLE_DECLARE); 1.26 + #undef WK_KLASS_HANDLE_DECLARE 1.27 + 1.28 + static KlassHandle box_klass(BasicType t); 1.29 +};