PERWAPI.PEReader.ReadLocalSig C# (CSharp) Method

ReadLocalSig() private method

private ReadLocalSig ( uint sigIx ) : Local[]
sigIx uint
return Local[]
        internal Local[] ReadLocalSig(uint sigIx)
        {
            //Class currClass, Method currMeth, uint sigIx) {
            blob.GoToIndex(sigIx);
            uint blobSize = blob.ReadCompressedNum();
            if (blob.ReadByte() != LocalSig.LocalSigByte) InputError();
            uint count = blob.ReadCompressedNum();
            Local[] locals = new Local[count];
            for (uint i=0; i < count; i++) {
                Type lType = GetBlobType(); //currClass,currMeth);
                bool pinnedLocal = lType == pinned;
                if (pinnedLocal) lType = GetBlobType(); //currClass,currMeth);
                locals[i] = new Local("loc"+i,lType,pinnedLocal);
            }
            return locals;
        }

Usage Example

Ejemplo n.º 1
0
 internal void Resolve(PEReader buff, MethodDef meth)
 {
     if (resolved) return;
     buff.currentMethodScope = meth;
     buff.currentClassScope = (Class)meth.GetParent();
     locals = buff.ReadLocalSig(sigIx);
     buff.currentMethodScope = null;
     buff.currentClassScope = null;
 }