示例#1
0
  /** {@inheritDoc} */
  @Override
  public final void writeTo(DexFile file, AnnotatedOutput out) {
    TypeIdsSection typeIds = file.getTypeIds();
    StringIdsSection stringIds = file.getStringIds();
    CstNat nat = cst.getNat();
    int classIdx = typeIds.indexOf(getDefiningClass());
    int nameIdx = stringIds.indexOf(nat.getName());
    int typoidIdx = getTypoidIdx(file);

    if (out.annotates()) {
      out.annotate(0, indexString() + ' ' + cst.toHuman());
      out.annotate(2, "  class_idx: " + Hex.u2(classIdx));
      out.annotate(2, String.format("  %-10s %s", getTypoidName() + ':', Hex.u2(typoidIdx)));
      out.annotate(4, "  name_idx:  " + Hex.u4(nameIdx));
    }

    out.writeShort(classIdx);
    out.writeShort(typoidIdx);
    out.writeInt(nameIdx);
  }
示例#2
0
  /**
   * Constructs an instance.
   *
   * @param cst {@code non-null;} the constant for the member
   */
  public MemberIdItem(CstMemberRef cst) {
    super(cst.getDefiningClass());

    this.cst = cst;
  }