コード例 #1
0
  /** {@inheritDoc} */
  protected int placeItem(int offset) {
    offset += Leb128Utils.unsignedLeb128Size(staticFields.length);
    offset += Leb128Utils.unsignedLeb128Size(instanceFields.length);
    offset += Leb128Utils.unsignedLeb128Size(directMethods.length);
    offset += Leb128Utils.unsignedLeb128Size(virtualMethods.length);

    EncodedField previousEncodedField = null;
    for (EncodedField encodedField : staticFields) {
      offset = encodedField.place(offset, previousEncodedField);
      previousEncodedField = encodedField;
    }

    previousEncodedField = null;
    for (EncodedField encodedField : instanceFields) {
      offset = encodedField.place(offset, previousEncodedField);
      previousEncodedField = encodedField;
    }

    EncodedMethod previousEncodedMethod = null;
    for (EncodedMethod encodedMethod : directMethods) {
      offset = encodedMethod.place(offset, previousEncodedMethod);
      previousEncodedMethod = encodedMethod;
    }

    previousEncodedMethod = null;
    for (EncodedMethod encodedMethod : virtualMethods) {
      offset = encodedMethod.place(offset, previousEncodedMethod);
      previousEncodedMethod = encodedMethod;
    }

    return offset;
  }