src/hotspot/share/classfile/systemDictionary.hpp
changeset 54600 69cfd80f8706
parent 54439 d9b46b7de028
child 54669 ad45b3802d4e
equal deleted inserted replaced
54599:f5657f30bb01 54600:69cfd80f8706
    72 // Note that placeholders are deleted at any time, as they are removed
    72 // Note that placeholders are deleted at any time, as they are removed
    73 // when a class is completely loaded. Therefore, readers as well as writers
    73 // when a class is completely loaded. Therefore, readers as well as writers
    74 // of placeholders must hold the SystemDictionary_lock.
    74 // of placeholders must hold the SystemDictionary_lock.
    75 //
    75 //
    76 
    76 
       
    77 class BootstrapInfo;
    77 class ClassFileStream;
    78 class ClassFileStream;
    78 class Dictionary;
    79 class Dictionary;
    79 class PlaceholderTable;
    80 class PlaceholderTable;
    80 class LoaderConstraintTable;
    81 class LoaderConstraintTable;
    81 template <MEMFLAGS F> class HashtableBucket;
    82 template <MEMFLAGS F> class HashtableBucket;
   219                                                                                                                 \
   220                                                                                                                 \
   220   /*end*/
   221   /*end*/
   221 
   222 
   222 
   223 
   223 class SystemDictionary : AllStatic {
   224 class SystemDictionary : AllStatic {
       
   225   friend class BootstrapInfo;
   224   friend class VMStructs;
   226   friend class VMStructs;
   225   friend class SystemDictionaryHandles;
   227   friend class SystemDictionaryHandles;
   226 
   228 
   227  public:
   229  public:
   228   enum WKID {
   230   enum WKID {
   529                                                Symbol* name,
   531                                                Symbol* name,
   530                                                Symbol* signature,
   532                                                Symbol* signature,
   531                                                TRAPS);
   533                                                TRAPS);
   532 
   534 
   533   // ask Java to compute a constant by invoking a BSM given a Dynamic_info CP entry
   535   // ask Java to compute a constant by invoking a BSM given a Dynamic_info CP entry
   534   static Handle    link_dynamic_constant(Klass* caller,
   536   static void      invoke_bootstrap_method(BootstrapInfo& bootstrap_specifier, TRAPS);
   535                                          int condy_index,
       
   536                                          Handle bootstrap_specifier,
       
   537                                          Symbol* name,
       
   538                                          Symbol* type,
       
   539                                          TRAPS);
       
   540 
       
   541   // ask Java to create a dynamic call site, while linking an invokedynamic op
       
   542   static methodHandle find_dynamic_call_site_invoker(Klass* caller,
       
   543                                                      int indy_index,
       
   544                                                      Handle bootstrap_method,
       
   545                                                      Symbol* name,
       
   546                                                      Symbol* type,
       
   547                                                      Handle *appendix_result,
       
   548                                                      TRAPS);
       
   549 
   537 
   550   // Record the error when the first attempt to resolve a reference from a constant
   538   // Record the error when the first attempt to resolve a reference from a constant
   551   // pool entry to a class fails.
   539   // pool entry to a class fails.
   552   static void add_resolution_error(const constantPoolHandle& pool, int which, Symbol* error,
   540   static void add_resolution_error(const constantPoolHandle& pool, int which, Symbol* error,
   553                                    Symbol* message);
   541                                    Symbol* message);