hotspot/src/share/vm/classfile/classFileParser.cpp
changeset 8653 8797d788a4f1
parent 8296 b1c2163e4e59
child 8675 e9fef2a9bef7
equal deleted inserted replaced
8652:209b2ce94ce5 8653:8797d788a4f1
  1614     signature_index, CHECK_(nullHandle));
  1614     signature_index, CHECK_(nullHandle));
  1615   Symbol*  signature = cp->symbol_at(signature_index);
  1615   Symbol*  signature = cp->symbol_at(signature_index);
  1616 
  1616 
  1617   AccessFlags access_flags;
  1617   AccessFlags access_flags;
  1618   if (name == vmSymbols::class_initializer_name()) {
  1618   if (name == vmSymbols::class_initializer_name()) {
  1619     // We ignore the access flags for a class initializer. (JVM Spec. p. 116)
  1619     // We ignore the other access flags for a valid class initializer.
  1620     flags = JVM_ACC_STATIC;
  1620     // (JVM Spec 2nd ed., chapter 4.6)
       
  1621     if (_major_version < 51) { // backward compatibility
       
  1622       flags = JVM_ACC_STATIC;
       
  1623     } else if ((flags & JVM_ACC_STATIC) == JVM_ACC_STATIC) {
       
  1624       flags &= JVM_ACC_STATIC | JVM_ACC_STRICT;
       
  1625     }
  1621   } else {
  1626   } else {
  1622     verify_legal_method_modifiers(flags, is_interface, name, CHECK_(nullHandle));
  1627     verify_legal_method_modifiers(flags, is_interface, name, CHECK_(nullHandle));
  1623   }
  1628   }
  1624 
  1629 
  1625   int args_size = -1;  // only used when _need_verify is true
  1630   int args_size = -1;  // only used when _need_verify is true