hotspot/src/share/vm/classfile/loaderConstraints.cpp
changeset 5121 5e80657d23e7
parent 1 489c9b5090e2
child 5124 9dd40e895ad1
equal deleted inserted replaced
5119:7bf54ea07181 5121:5e80657d23e7
   332 
   332 
   333   // No constraints, or else no klass loaded yet.
   333   // No constraints, or else no klass loaded yet.
   334   return NULL;
   334   return NULL;
   335 }
   335 }
   336 
   336 
   337 
       
   338 klassOop LoaderConstraintTable::find_constrained_elem_klass(symbolHandle name,
       
   339                                                             symbolHandle elem_name,
       
   340                                                             Handle loader,
       
   341                                                             TRAPS) {
       
   342   LoaderConstraintEntry *p = *(find_loader_constraint(name, loader));
       
   343   if (p != NULL) {
       
   344     assert(p->klass() == NULL, "Expecting null array klass");
       
   345 
       
   346     // The array name has a constraint, but it will not have a class. Check
       
   347     // each loader for an associated elem
       
   348     for (int i = 0; i < p->num_loaders(); i++) {
       
   349       Handle no_protection_domain;
       
   350 
       
   351       klassOop k = SystemDictionary::find(elem_name, p->loader(i), no_protection_domain, THREAD);
       
   352       if (k != NULL) {
       
   353         // Return the first elem klass found.
       
   354         return k;
       
   355       }
       
   356     }
       
   357   }
       
   358 
       
   359   // No constraints, or else no klass loaded yet.
       
   360   return NULL;
       
   361 }
       
   362 
       
   363 
       
   364 void LoaderConstraintTable::ensure_loader_constraint_capacity(
   337 void LoaderConstraintTable::ensure_loader_constraint_capacity(
   365                                                      LoaderConstraintEntry *p,
   338                                                      LoaderConstraintEntry *p,
   366                                                     int nfree) {
   339                                                     int nfree) {
   367     if (p->max_loaders() - p->num_loaders() < nfree) {
   340     if (p->max_loaders() - p->num_loaders() < nfree) {
   368         int n = nfree + p->num_loaders();
   341         int n = nfree + p->num_loaders();