protected final String resolveUtf8(int i) throws IOException { int oldPos = pos; try { String s = (String)cpool[i]; if (s == null) { pos = cpoolIndex[i]; int len = readShort(); skipFully(len); cpool[i] = new String(buf, pos - len, len, "utf-8"); s = new String(buf, pos - len, len, "utf-8"); } return s; } finally { pos = oldPos; } }
/** * read a code attribute * * @throws IOException */ public void readCode() throws IOException { readShort(); // max stack readShort(); // max locals skipFully(readInt()); // code skipFully(8 * readShort()); // exception table // read the code attributes (recursive). This is where // we will find the LocalVariableTable attribute. readAttributes(); }
protected final void skipAttributes() throws IOException { int count = readShort(); for (int i = 0; i < count; i++) { readShort(); // name index skipFully(readInt()); } }
skipFully(len); break;