langtools/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java
changeset 24606 12c0ca21f8dc
parent 24604 7f68545b5128
child 24895 dd091d389fbf
equal deleted inserted replaced
24605:265027386d51 24606:12c0ca21f8dc
  2010         long flags = adjustMethodFlags(nextChar());
  2010         long flags = adjustMethodFlags(nextChar());
  2011         Name name = readName(nextChar());
  2011         Name name = readName(nextChar());
  2012         Type type = readType(nextChar());
  2012         Type type = readType(nextChar());
  2013         if (currentOwner.isInterface() &&
  2013         if (currentOwner.isInterface() &&
  2014                 (flags & ABSTRACT) == 0 && !name.equals(names.clinit)) {
  2014                 (flags & ABSTRACT) == 0 && !name.equals(names.clinit)) {
  2015             if (majorVersion > Target.JDK1_8.majorVersion ||
  2015             if (majorVersion > Version.V52.major ||
  2016                     (majorVersion == Target.JDK1_8.majorVersion && minorVersion >= Target.JDK1_8.minorVersion)) {
  2016                     (majorVersion == Version.V52.major && minorVersion >= Version.V52.minor)) {
  2017                 if ((flags & STATIC) == 0) {
  2017                 if ((flags & STATIC) == 0) {
  2018                     currentOwner.flags_field |= DEFAULT;
  2018                     currentOwner.flags_field |= DEFAULT;
  2019                     flags |= DEFAULT | ABSTRACT;
  2019                     flags |= DEFAULT | ABSTRACT;
  2020                 }
  2020                 }
  2021             } else {
  2021             } else {
  2292         if (magic != JAVA_MAGIC)
  2292         if (magic != JAVA_MAGIC)
  2293             throw badClassFile("illegal.start.of.class.file");
  2293             throw badClassFile("illegal.start.of.class.file");
  2294 
  2294 
  2295         minorVersion = nextChar();
  2295         minorVersion = nextChar();
  2296         majorVersion = nextChar();
  2296         majorVersion = nextChar();
  2297         int maxMajor = Target.MAX().majorVersion;
  2297         int maxMajor = Version.MAX().major;
  2298         int maxMinor = Target.MAX().minorVersion;
  2298         int maxMinor = Version.MAX().minor;
  2299         if (majorVersion > maxMajor ||
  2299         if (majorVersion > maxMajor ||
  2300             majorVersion * 1000 + minorVersion <
  2300             majorVersion * 1000 + minorVersion <
  2301             Target.MIN().majorVersion * 1000 + Target.MIN().minorVersion)
  2301             Version.MIN().major * 1000 + Version.MIN().minor)
  2302         {
  2302         {
  2303             if (majorVersion == (maxMajor + 1))
  2303             if (majorVersion == (maxMajor + 1))
  2304                 log.warning("big.major.version",
  2304                 log.warning("big.major.version",
  2305                             currentClassFile,
  2305                             currentClassFile,
  2306                             majorVersion,
  2306                             majorVersion,