private void readClassFile(ClassSymbol c) throws IOException {
  int magic=nextInt();
  if (magic != JAVA_MAGIC)   throw badClassFile("illegal.start.of.class.file");
  minorVersion=nextChar();
  majorVersion=nextChar();
  int maxMajor=Target.MAX().majorVersion;
  int maxMinor=Target.MAX().minorVersion;
  if (majorVersion > maxMajor || majorVersion * 1000 + minorVersion < Target.MIN().majorVersion * 1000 + Target.MIN().minorVersion) {
    if (majorVersion == (maxMajor + 1))     log.warning("big.major.version",currentClassFile,majorVersion,maxMajor);
 else     throw badClassFile("wrong.version",Integer.toString(majorVersion),Integer.toString(minorVersion),Integer.toString(maxMajor),Integer.toString(maxMinor));
  }
 else   if (checkClassFile && majorVersion == maxMajor && minorVersion > maxMinor) {
    printCCF("found.later.version",Integer.toString(minorVersion));
  }
  indexPool();
  if (signatureBuffer.length < bp) {
    int ns=Integer.highestOneBit(bp) << 1;
    signatureBuffer=new byte[ns];
  }
  readClass(c);
}

private void readClassFile ( ClassSymbol c ) throws IOException { int magic = nextInt ( ) ; if ( magic != JAVA_MAGIC ) throw badClassFile ( "illegal.start.of.class.file" ) ; minorVersion = nextChar ( ) ; majorVersion = nextChar ( ) ; int maxMajor = Target . MAX ( ) . majorVersion ; int maxMinor = Target . MAX ( ) . minorVersion ; if ( majorVersion > maxMajor || majorVersion * 1000 + minorVersion < Target . MIN ( ) . majorVersion * 1000 + Target . MIN ( ) . minorVersion ) { if ( majorVersion == ( maxMajor + 1 ) ) log . warning ( "big.major.version" , currentClassFile , majorVersion , maxMajor ) ; else throw badClassFile ( "wrong.version" , Integer . toString ( majorVersion ) , Integer . toString ( minorVersion ) , Integer . toString ( maxMajor ) , Integer . toString ( maxMinor ) ) ; } else if ( checkClassFile && majorVersion == maxMajor && minorVersion > maxMinor ) { printCCF ( "found.later.version" , Integer . toString ( minorVersion ) ) ; } indexPool ( ) ; if ( signatureBuffer . length < bp ) { int ns = Integer . highestOneBit ( bp ) << 1 ; signatureBuffer = new byte [ ns ] ; } readClass ( c ) ; }
read a class file .
