--- a/hotspot/src/share/vm/classfile/systemDictionary.hpp Thu Mar 19 09:13:24 2009 -0700
+++ b/hotspot/src/share/vm/classfile/systemDictionary.hpp Fri Mar 20 23:19:36 2009 -0700
@@ -161,6 +161,7 @@
class SystemDictionary : AllStatic {
friend class VMStructs;
friend class CompactingPermGenGen;
+ friend class SystemDictionaryHandles;
NOT_PRODUCT(friend class instanceKlassKlass;)
public:
@@ -595,3 +596,18 @@
static bool _has_loadClassInternal;
static bool _has_checkPackageAccess;
};
+
+// Cf. vmSymbols vs. vmSymbolHandles
+class SystemDictionaryHandles : AllStatic {
+public:
+ #define WK_KLASS_HANDLE_DECLARE(name, ignore_symbol, option) \
+ static KlassHandle name() { \
+ SystemDictionary::name(); \
+ klassOop* loc = &SystemDictionary::_well_known_klasses[SystemDictionary::WK_KLASS_ENUM_NAME(name)]; \
+ return KlassHandle(loc, true); \
+ }
+ WK_KLASSES_DO(WK_KLASS_HANDLE_DECLARE);
+ #undef WK_KLASS_HANDLE_DECLARE
+
+ static KlassHandle box_klass(BasicType t);
+};