Exemple #1
0
        void DefineIteratorScopes(SymbolToken method_token, Collection <InstructionRange> scopes, int code_size)
        {
            var buffer = new PE.ByteBuffer();

            buffer.WriteByte(4);
            buffer.WriteByte(1);
            buffer.Align(4);
            buffer.WriteByte(4);
            buffer.WriteByte(3);
            buffer.Align(4);

            buffer.WriteInt32(scopes.Count * 8 + 12);
            buffer.WriteInt32(scopes.Count);

            foreach (InstructionRange scope in scopes)
            {
                buffer.WriteInt32(scope.Start != null ? scope.Start.Offset : code_size);
                buffer.WriteInt32(scope.End.Next != null ? scope.End.Next.Offset : code_size);
            }

            writer.SetSymAttribute(method_token, "MD2", buffer.length, buffer.buffer);
        }
Exemple #2
0
        void DefineIteratorScopes(SymbolToken method_token, Collection <RangeSymbol> scopes)
        {
            var buffer = new PE.ByteBuffer();

            buffer.WriteByte(4);
            buffer.WriteByte(1);
            buffer.Align(4);
            buffer.WriteByte(4);
            buffer.WriteByte(3);
            buffer.Align(4);

            buffer.WriteInt32(scopes.Count * 8 + 12);
            buffer.WriteInt32(scopes.Count);

            foreach (RangeSymbol scope in scopes)
            {
                buffer.WriteInt32(scope.Start);
                buffer.WriteInt32(scope.End);
            }

            writer.SetSymAttribute(method_token, "MD2", buffer.length, buffer.buffer);
        }
Exemple #3
0
        void DefineIteratorScopes(SymbolToken method_token, Collection<InstructionRange> scopes, int code_size)
        {
            var buffer = new PE.ByteBuffer ();
            buffer.WriteByte (4);
            buffer.WriteByte (1);
            buffer.Align     (4);
            buffer.WriteByte (4);
            buffer.WriteByte (3);
            buffer.Align	 (4);

            buffer.WriteInt32 (scopes.Count * 8 + 12);
            buffer.WriteInt32 (scopes.Count);

            foreach (InstructionRange scope in scopes)
            {
                buffer.WriteInt32 (scope.Start.Offset);
                buffer.WriteInt32 (scope.End.Next != null ? scope.End.Next.Offset : code_size);
            }

            writer.SetSymAttribute (method_token, "MD2", buffer.length, buffer.buffer);
        }
Exemple #4
0
        void DefineIteratorScopes(SymbolToken method_token, Collection<RangeSymbol> scopes)
        {
            var buffer = new PE.ByteBuffer ();
            buffer.WriteByte (4);
            buffer.WriteByte (1);
            buffer.Align     (4);
            buffer.WriteByte (4);
            buffer.WriteByte (3);
            buffer.Align	 (4);

            buffer.WriteInt32 (scopes.Count * 8 + 12);
            buffer.WriteInt32 (scopes.Count);

            foreach (RangeSymbol scope in scopes)
            {
                buffer.WriteInt32 (scope.Start);
                buffer.WriteInt32 (scope.End);
            }

            writer.SetSymAttribute (method_token, "MD2", buffer.length, buffer.buffer);
        }