internal static void Read(PEReader buff, TableRow[] sigs) { for (int i = 0; i < sigs.Length; i++) { uint sigIx = buff.GetBlobIx(); uint tag = buff.FirstBlobByte(sigIx); if (tag == LocalSig.LocalSigByte) { sigs[i] = new LocalSig(sigIx); } else if (tag == Field.FieldTag) { sigs[i] = new Signature(sigIx); } else { sigs[i] = new CalliSig(sigIx); } sigs[i].Row = (uint)i + 1; } }
/// <summary> /// Add the calli instruction /// </summary> /// <param name="sig">the signature for the calli</param> public void calli(CalliSig sig) { AddToBuffer(new SigInstr(SpecialOp.calli, sig)); }
public void SetSig(CalliSig sig) { signature = sig; }
/*-------------------- Constructors ---------------------------------*/ public SigInstr(SpecialOp inst, CalliSig sig) : base((uint)inst) { signature = sig; size += 4; }
internal static void Read(PEReader buff, TableRow[] sigs) { for (int i = 0; i < sigs.Length; i++) { uint sigIx = buff.GetBlobIx(); uint tag = buff.FirstBlobByte(sigIx); if (tag == LocalSig.LocalSigByte) sigs[i] = new LocalSig(sigIx); else if (tag == Field.FieldTag) sigs[i] = new Signature(sigIx); else sigs[i] = new CalliSig(sigIx); sigs[i].Row = (uint)i + 1; } }