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;
     }
 }
Exemple #2
0
 /// <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));
 }
Exemple #3
0
 public void SetSig(CalliSig sig)
 {
     signature = sig;
 }
Exemple #4
0
 /*-------------------- Constructors ---------------------------------*/
 public SigInstr(SpecialOp inst, CalliSig sig)
     : base((uint)inst)
 {
     signature = sig;
       size += 4;
 }
Exemple #5
0
 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;
     }
 }