public ConstantPool loadPool(String classname) { try (DataInputFullStream in = getClassStream(classname)) { if (in != null) { in.discard(8); return new ConstantPool(in); } return null; } catch (IOException ex) { throw new RuntimeException(ex); } }
@Override protected StructGeneralAttribute readAttribute(DataInputFullStream in, ConstantPool pool, String name) throws IOException { if (StructGeneralAttribute.ATTRIBUTE_CODE.getName().equals(name)) { if (!classStruct.isOwn()) { // skip code in foreign classes in.discard(8); in.discard(in.readInt()); in.discard(8 * in.readUnsignedShort()); } else { containsCode = true; in.discard(6); localVariables = in.readUnsignedShort(); codeLength = in.readInt(); in.discard(codeLength); int excLength = in.readUnsignedShort(); in.discard(excLength * 8); codeFullLength = codeLength + excLength * 8 + 2; } codeAttributes = readAttributes(in, pool); return null; } return super.readAttribute(in, pool, name); }
protected StructGeneralAttribute readAttribute(DataInputFullStream in, ConstantPool pool, String name) throws IOException { StructGeneralAttribute attribute = StructGeneralAttribute.createAttribute(name); int length = in.readInt(); if (attribute == null) { in.discard(length); } else { attribute.initContent(in, pool); } return attribute; } }
in.discard(8); in.discard(6); in.discard(in.readUnsignedShort() * 2); in.discard(6); skipAttributes(in); in.discard(2); String attrName = pool.getPrimitiveConstant(attrNameIndex).getString(); if (!StructGeneralAttribute.ATTRIBUTE_CODE.getName().equals(attrName)) { in.discard(in.readInt()); continue; in.discard(12);
if (classStruct.isVersionGE_1_7()) { // instruction unused in Java 6 and before operands.add(in.readUnsignedShort()); in.discard(2); group = GROUP_INVOCATION; i += 4; operands.add(in.readUnsignedShort()); operands.add(in.readUnsignedByte()); in.discard(1); group = GROUP_INVOCATION; i += 4; break; case opc_tableswitch: in.discard((4 - (i + 1) % 4) % 4); i += ((4 - (i + 1) % 4) % 4); // padding operands.add(in.readInt()); in.discard((4 - (i + 1) % 4) % 4); i += ((4 - (i + 1) % 4) % 4); // padding operands.add(in.readInt());
this.loader = loader; in.discard(4);
public ConstantPool loadPool(String classname) { try (DataInputFullStream in = getClassStream(classname)) { if (in != null) { in.discard(8); return new ConstantPool(in); } return null; } catch (IOException ex) { throw new RuntimeException(ex); } }
@Override protected StructGeneralAttribute readAttribute(DataInputFullStream in, ConstantPool pool, String name) throws IOException { if (StructGeneralAttribute.ATTRIBUTE_CODE.equals(name)) { if (!classStruct.isOwn()) { // skip code in foreign classes in.discard(8); in.discard(in.readInt()); in.discard(8 * in.readUnsignedShort()); } else { containsCode = true; in.discard(6); localVariables = in.readUnsignedShort(); codeLength = in.readInt(); in.discard(codeLength); int excLength = in.readUnsignedShort(); in.discard(excLength * 8); codeFullLength = codeLength + excLength * 8 + 2; } codeAttributes = readAttributes(in, pool); return null; } return super.readAttribute(in, pool, name); }
protected StructGeneralAttribute readAttribute(DataInputFullStream in, ConstantPool pool, String name) throws IOException { StructGeneralAttribute attribute = StructGeneralAttribute.createAttribute(name); int length = in.readInt(); if (attribute == null) { in.discard(length); } else { attribute.initContent(in, pool); } return attribute; } }
in.discard(8); in.discard(6); in.discard(in.readUnsignedShort() * 2); in.discard(6); skipAttributes(in); in.discard(2); String attrName = pool.getPrimitiveConstant(attrNameIndex).getString(); if (!StructGeneralAttribute.ATTRIBUTE_CODE.equals(attrName)) { in.discard(in.readInt()); continue; in.discard(12);
if (classStruct.isVersionGE_1_7()) { // instruction unused in Java 6 and before operands.add(in.readUnsignedShort()); in.discard(2); group = GROUP_INVOCATION; i += 4; operands.add(in.readUnsignedShort()); operands.add(in.readUnsignedByte()); in.discard(1); group = GROUP_INVOCATION; i += 4; break; case opc_tableswitch: in.discard((4 - (i + 1) % 4) % 4); i += ((4 - (i + 1) % 4) % 4); // padding operands.add(in.readInt()); in.discard((4 - (i + 1) % 4) % 4); i += ((4 - (i + 1) % 4) % 4); // padding operands.add(in.readInt());
this.loader = loader; in.discard(4);