code: private void readClassBuffer(ClassSymbol c) throws IOException {
          int magic = nextInt();
          if (magic != JAVA_MAGIC)
              throw badClassFile("illegal.start.of.class.file");
  
          minorVersion = nextChar();
          majorVersion = nextChar();
          int maxMajor = 53; // Version.MAX().major;  //******* TEMPORARY *******
          int maxMinor = Version.MAX().minor;
          if (majorVersion > maxMajor ||
              majorVersion * 1000 + minorVersion <
              Version.MIN().major * 1000 + Version.MIN().minor) {
              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));
          }
  
          indexPool();
          if (signatureBuffer.length < bp) {
              int ns = Integer.highestOneBit(bp) << 1;
              signatureBuffer = new byte[ns];
          }
          readClass(c);
      }
docs: Read a class definition from the bytes in buf.