TUP.AsmResolver.NET.NETGlobals.ReadCompressedUInt32 C# (CSharp) Method

ReadCompressedUInt32() public static method

public static ReadCompressedUInt32 ( BinaryReader reader ) : uint
reader System.IO.BinaryReader
return uint
        public static uint ReadCompressedUInt32(BinaryReader reader)
        {
            // stream.Seek(index, SeekOrigin.Begin);
            byte num = reader.ReadByte();
            if ((num & 0x80) == 0)
            {
                return num;
            }
            if ((num & 0x40) == 0)
            {
                return (uint)(((num & -129) << 8) | reader.ReadByte());
            }
            return (uint)(((((num & -193) << 0x18) | (reader.ReadByte() << 0x10)) | (reader.ReadByte() << 8)) | reader.ReadByte());
        }

Usage Example

示例#1
0
        public VariableDefinition[] ReadVariableSignature(uint signature, MethodDefinition parentMethod)
        {
            VariableDefinition[] variables = null;
            using (BlobSignatureReader reader = GetBlobReader(signature))
            {
                reader.GenericContext = parentMethod;

                byte local_sig = reader.ReadByte();

                if (local_sig != 0x7)
                {
                    throw new ArgumentException("Signature doesn't refer to a valid local variable signature");
                }

                uint count = NETGlobals.ReadCompressedUInt32(reader);

                if (count == 0)
                {
                    return(null);
                }

                variables = new VariableDefinition[count];

                for (int i = 0; i < count; i++)
                {
                    variables[i] = new VariableDefinition(i, ReadTypeReference(reader, (ElementType)reader.ReadByte()));
                }
            }
            return(variables);
        }
All Usage Examples Of TUP.AsmResolver.NET.NETGlobals::ReadCompressedUInt32