hotspot/src/share/vm/classfile/classFileParser.cpp
changeset 4571 80b553bddc26
parent 4567 7fc02fbe5c7a
child 4573 6358f8c9ed3b
equal deleted inserted replaced
4569:f372ea9e5ed4 4571:80b553bddc26
   428   switch (cp->tag_at(index).value()) {
   428   switch (cp->tag_at(index).value()) {
   429 
   429 
   430   case JVM_CONSTANT_UnresolvedClass :
   430   case JVM_CONSTANT_UnresolvedClass :
   431     // Patching a class means pre-resolving it.
   431     // Patching a class means pre-resolving it.
   432     // The name in the constant pool is ignored.
   432     // The name in the constant pool is ignored.
   433     if (patch->klass() == SystemDictionary::class_klass()) { // %%% java_lang_Class::is_instance
   433     if (patch->klass() == SystemDictionary::Class_klass()) { // %%% java_lang_Class::is_instance
   434       guarantee_property(!java_lang_Class::is_primitive(patch()),
   434       guarantee_property(!java_lang_Class::is_primitive(patch()),
   435                          "Illegal class patch at %d in class file %s",
   435                          "Illegal class patch at %d in class file %s",
   436                          index, CHECK);
   436                          index, CHECK);
   437       cp->klass_at_put(index, java_lang_Class::as_klassOop(patch()));
   437       cp->klass_at_put(index, java_lang_Class::as_klassOop(patch()));
   438     } else {
   438     } else {
  3467   }
  3467   }
  3468   assert(f == k->has_finalizer(), "inconsistent has_finalizer");
  3468   assert(f == k->has_finalizer(), "inconsistent has_finalizer");
  3469 #endif
  3469 #endif
  3470 
  3470 
  3471   // Check if this klass supports the java.lang.Cloneable interface
  3471   // Check if this klass supports the java.lang.Cloneable interface
  3472   if (SystemDictionary::cloneable_klass_loaded()) {
  3472   if (SystemDictionary::Cloneable_klass_loaded()) {
  3473     if (k->is_subtype_of(SystemDictionary::cloneable_klass())) {
  3473     if (k->is_subtype_of(SystemDictionary::Cloneable_klass())) {
  3474       k->set_is_cloneable();
  3474       k->set_is_cloneable();
  3475     }
  3475     }
  3476   }
  3476   }
  3477 
  3477 
  3478   // Check if this klass has a vanilla default constructor
  3478   // Check if this klass has a vanilla default constructor
  4173       p = tmp_p;
  4173       p = tmp_p;
  4174       last_is_slash = false;
  4174       last_is_slash = false;
  4175       // Check if ch is Java identifier start or is Java identifier part
  4175       // Check if ch is Java identifier start or is Java identifier part
  4176       // 4672820: call java.lang.Character methods directly without generating separate tables.
  4176       // 4672820: call java.lang.Character methods directly without generating separate tables.
  4177       EXCEPTION_MARK;
  4177       EXCEPTION_MARK;
  4178       instanceKlassHandle klass (THREAD, SystemDictionary::char_klass());
  4178       instanceKlassHandle klass (THREAD, SystemDictionary::Character_klass());
  4179 
  4179 
  4180       // return value
  4180       // return value
  4181       JavaValue result(T_BOOLEAN);
  4181       JavaValue result(T_BOOLEAN);
  4182       // Set up the arguments to isJavaIdentifierStart and isJavaIdentifierPart
  4182       // Set up the arguments to isJavaIdentifierStart and isJavaIdentifierPart
  4183       JavaCallArguments args;
  4183       JavaCallArguments args;