hotspot/src/share/vm/classfile/systemDictionary.cpp
changeset 13753 1df4fd11c5b8
parent 13738 d67be49a5beb
child 13929 8da0dc50a6e4
child 13952 e3cf184080bc
equal deleted inserted replaced
13752:92f03fcf979a 13753:1df4fd11c5b8
  1493   // which will require a token to perform the define class
  1493   // which will require a token to perform the define class
  1494   Symbol*  name_h = k->name();
  1494   Symbol*  name_h = k->name();
  1495   unsigned int d_hash = dictionary()->compute_hash(name_h, loader_data);
  1495   unsigned int d_hash = dictionary()->compute_hash(name_h, loader_data);
  1496   int d_index = dictionary()->hash_to_index(d_hash);
  1496   int d_index = dictionary()->hash_to_index(d_hash);
  1497   check_constraints(d_index, d_hash, k, class_loader_h, true, CHECK);
  1497   check_constraints(d_index, d_hash, k, class_loader_h, true, CHECK);
       
  1498 
       
  1499   // Register class just loaded with class loader (placed in Vector)
       
  1500   // Note we do this before updating the dictionary, as this can
       
  1501   // fail with an OutOfMemoryError (if it does, we will *not* put this
       
  1502   // class in the dictionary and will not update the class hierarchy).
       
  1503   // JVMTI FollowReferences needs to find the classes this way.
       
  1504   if (k->class_loader() != NULL) {
       
  1505     methodHandle m(THREAD, Universe::loader_addClass_method());
       
  1506     JavaValue result(T_VOID);
       
  1507     JavaCallArguments args(class_loader_h);
       
  1508     args.push_oop(Handle(THREAD, k->java_mirror()));
       
  1509     JavaCalls::call(&result, m, &args, CHECK);
       
  1510   }
  1498 
  1511 
  1499   // Add the new class. We need recompile lock during update of CHA.
  1512   // Add the new class. We need recompile lock during update of CHA.
  1500   {
  1513   {
  1501     unsigned int p_hash = placeholders()->compute_hash(name_h, loader_data);
  1514     unsigned int p_hash = placeholders()->compute_hash(name_h, loader_data);
  1502     int p_index = placeholders()->hash_to_index(p_hash);
  1515     int p_index = placeholders()->hash_to_index(p_hash);