src/hotspot/share/classfile/systemDictionary.hpp
changeset 50419 146c60525d4a
parent 50297 580744d900c8
child 50634 c349d409262a
equal deleted inserted replaced
50418:c35f0c531c6c 50419:146c60525d4a
   197   do_klass(StackWalker_klass,                           java_lang_StackWalker,                     Opt                 ) \
   197   do_klass(StackWalker_klass,                           java_lang_StackWalker,                     Opt                 ) \
   198   do_klass(AbstractStackWalker_klass,                   java_lang_StackStreamFactory_AbstractStackWalker, Opt          ) \
   198   do_klass(AbstractStackWalker_klass,                   java_lang_StackStreamFactory_AbstractStackWalker, Opt          ) \
   199   do_klass(StackFrameInfo_klass,                        java_lang_StackFrameInfo,                  Opt                 ) \
   199   do_klass(StackFrameInfo_klass,                        java_lang_StackFrameInfo,                  Opt                 ) \
   200   do_klass(LiveStackFrameInfo_klass,                    java_lang_LiveStackFrameInfo,              Opt                 ) \
   200   do_klass(LiveStackFrameInfo_klass,                    java_lang_LiveStackFrameInfo,              Opt                 ) \
   201                                                                                                                          \
   201                                                                                                                          \
       
   202   /* support for stack dump lock analysis */                                                                             \
       
   203   do_klass(java_util_concurrent_locks_AbstractOwnableSynchronizer_klass, java_util_concurrent_locks_AbstractOwnableSynchronizer, Pre ) \
       
   204                                                                                                                          \
   202   /* Preload boxing klasses */                                                                                           \
   205   /* Preload boxing klasses */                                                                                           \
   203   do_klass(Boolean_klass,                               java_lang_Boolean,                         Pre                 ) \
   206   do_klass(Boolean_klass,                               java_lang_Boolean,                         Pre                 ) \
   204   do_klass(Character_klass,                             java_lang_Character,                       Pre                 ) \
   207   do_klass(Character_klass,                             java_lang_Character,                       Pre                 ) \
   205   do_klass(Float_klass,                                 java_lang_Float,                           Pre                 ) \
   208   do_klass(Float_klass,                                 java_lang_Float,                           Pre                 ) \
   206   do_klass(Double_klass,                                java_lang_Double,                          Pre                 ) \
   209   do_klass(Double_klass,                                java_lang_Double,                          Pre                 ) \
   447     assert((uint)t < T_VOID+1, "range check");
   450     assert((uint)t < T_VOID+1, "range check");
   448     return check_klass(_box_klasses[t]);
   451     return check_klass(_box_klasses[t]);
   449   }
   452   }
   450   static BasicType box_klass_type(Klass* k);  // inverse of box_klass
   453   static BasicType box_klass_type(Klass* k);  // inverse of box_klass
   451 
   454 
   452   // methods returning lazily loaded klasses
       
   453   // The corresponding method to load the class must be called before calling them.
       
   454   static InstanceKlass* abstract_ownable_synchronizer_klass() { return check_klass(_abstract_ownable_synchronizer_klass); }
       
   455 
       
   456   static void load_abstract_ownable_synchronizer_klass(TRAPS);
       
   457 
       
   458 protected:
   455 protected:
   459   // Returns the class loader data to be used when looking up/updating the
   456   // Returns the class loader data to be used when looking up/updating the
   460   // system dictionary.
   457   // system dictionary.
   461   static ClassLoaderData *class_loader_data(Handle class_loader) {
   458   static ClassLoaderData *class_loader_data(Handle class_loader) {
   462     return ClassLoaderData::class_loader_data(class_loader());
   459     return ClassLoaderData::class_loader_data(class_loader());
   727                                 TRAPS);
   724                                 TRAPS);
   728 
   725 
   729   // Variables holding commonly used klasses (preloaded)
   726   // Variables holding commonly used klasses (preloaded)
   730   static InstanceKlass* _well_known_klasses[];
   727   static InstanceKlass* _well_known_klasses[];
   731 
   728 
   732   // Lazily loaded klasses
       
   733   static InstanceKlass* volatile _abstract_ownable_synchronizer_klass;
       
   734 
       
   735   // table of box klasses (int_klass, etc.)
   729   // table of box klasses (int_klass, etc.)
   736   static InstanceKlass* _box_klasses[T_VOID+1];
   730   static InstanceKlass* _box_klasses[T_VOID+1];
   737 
   731 
   738 private:
   732 private:
   739   static oop  _java_system_loader;
   733   static oop  _java_system_loader;