Exemple #1
0
        internal sealed override void BuildTables(MetaData md)
        {
            if (done)
            {
                return;
            }
            MemoryStream sig = new MemoryStream();

            sig.WriteByte((byte)callConv);
            MetaData.CompressNum(numPars + numOptPars, sig);
            returnType.TypeSig(sig);
            for (int i = 0; i < numPars; i++)
            {
                parameters[i].TypeSig(sig);
            }
            sigIx = md.AddToBlobHeap(sig.ToArray());
            if (numOptPars > 0)
            {
                sig.WriteByte(Sentinel);
                for (int i = 0; i < numOptPars; i++)
                {
                    optParams[i].TypeSig(sig);
                }
            }
            done = true;
        }
Exemple #2
0
        internal sealed override void BuildTables(MetaData md)
        {
            if (done)
            {
                return;
            }
            MemoryStream sig = new MemoryStream();

            sig.WriteByte(LocalSigByte);
            MetaData.CompressNum((uint)locals.Length, sig);
            for (int i = 0; i < locals.Length; i++)
            {
                ((Local)locals[i]).TypeSig(sig);
            }
            sigIx = md.AddToBlobHeap(sig.ToArray());
            done  = true;
        }