Esempio n. 1
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;
     }
 }
Esempio n. 2
0
 internal static void ReadMember(PEReader buff, TableRow[] members)
 {
     Contract.Requires(buff != null);
     Contract.Requires(members != null);
     for (int i = 0; i < members.Length; i++)
     {
         uint parenIx = buff.GetCodedIndex(CIx.MemberRefParent);
         string memName = buff.GetString();
         uint sigIx = buff.GetBlobIx();
         if (buff.FirstBlobByte(sigIx) == Field.FieldTag) // got a field
             members[i] = new FieldRef(parenIx, memName, sigIx);
         else
             members[i] = new MethodRef(parenIx, memName, sigIx);
     }
 }