< prev index next >

src/share/vm/classfile/loaderConstraints.hpp

Print this page




  44   LoaderConstraintEntry** find_loader_constraint(Symbol* name,
  45                                                  Handle loader);
  46 
  47 public:
  48 
  49   LoaderConstraintTable(int nof_buckets);
  50 
  51   LoaderConstraintEntry* new_entry(unsigned int hash, Symbol* name,
  52                                    Klass* klass, int num_loaders,
  53                                    int max_loaders);
  54   void free_entry(LoaderConstraintEntry *entry);
  55 
  56   LoaderConstraintEntry* bucket(int i) {
  57     return (LoaderConstraintEntry*)Hashtable<Klass*, mtClass>::bucket(i);
  58   }
  59 
  60   LoaderConstraintEntry** bucket_addr(int i) {
  61     return (LoaderConstraintEntry**)Hashtable<Klass*, mtClass>::bucket_addr(i);
  62   }
  63 
  64   // Enhanced Class Redefinition support
  65   void classes_do(KlassClosure* f);
  66 
  67   // Check class loader constraints
  68   bool add_entry(Symbol* name, Klass* klass1, Handle loader1,
  69                                     Klass* klass2, Handle loader2);
  70 
  71   // Note:  The main entry point for this module is via SystemDictionary.
  72   // SystemDictionary::check_signature_loaders(Symbol* signature,
  73   //                                           Handle loader1, Handle loader2,
  74   //                                           bool is_method, TRAPS)
  75 
  76   Klass* find_constrained_klass(Symbol* name, Handle loader);
  77 
  78   // Class loader constraints
  79 
  80   void ensure_loader_constraint_capacity(LoaderConstraintEntry *p, int nfree);
  81   void extend_loader_constraint(LoaderConstraintEntry* p, Handle loader,
  82                                 Klass* klass);
  83   void merge_loader_constraints(LoaderConstraintEntry** pp1,
  84                                 LoaderConstraintEntry** pp2, Klass* klass);
  85 
  86   bool check_or_update(instanceKlassHandle k, Handle loader,




  44   LoaderConstraintEntry** find_loader_constraint(Symbol* name,
  45                                                  Handle loader);
  46 
  47 public:
  48 
  49   LoaderConstraintTable(int nof_buckets);
  50 
  51   LoaderConstraintEntry* new_entry(unsigned int hash, Symbol* name,
  52                                    Klass* klass, int num_loaders,
  53                                    int max_loaders);
  54   void free_entry(LoaderConstraintEntry *entry);
  55 
  56   LoaderConstraintEntry* bucket(int i) {
  57     return (LoaderConstraintEntry*)Hashtable<Klass*, mtClass>::bucket(i);
  58   }
  59 
  60   LoaderConstraintEntry** bucket_addr(int i) {
  61     return (LoaderConstraintEntry**)Hashtable<Klass*, mtClass>::bucket_addr(i);
  62   }
  63 



  64   // Check class loader constraints
  65   bool add_entry(Symbol* name, Klass* klass1, Handle loader1,
  66                                     Klass* klass2, Handle loader2);
  67 
  68   // Note:  The main entry point for this module is via SystemDictionary.
  69   // SystemDictionary::check_signature_loaders(Symbol* signature,
  70   //                                           Handle loader1, Handle loader2,
  71   //                                           bool is_method, TRAPS)
  72 
  73   Klass* find_constrained_klass(Symbol* name, Handle loader);
  74 
  75   // Class loader constraints
  76 
  77   void ensure_loader_constraint_capacity(LoaderConstraintEntry *p, int nfree);
  78   void extend_loader_constraint(LoaderConstraintEntry* p, Handle loader,
  79                                 Klass* klass);
  80   void merge_loader_constraints(LoaderConstraintEntry** pp1,
  81                                 LoaderConstraintEntry** pp2, Klass* klass);
  82 
  83   bool check_or_update(instanceKlassHandle k, Handle loader,


< prev index next >