src/share/vm/classfile/systemDictionary.hpp

changeset 1100
c89f86385056
parent 1014
0fbdb4381b99
child 1145
e5b0439ef4ae
     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 +};

mercurial