Ejemplo n.º 1
0
        private static void EmitPreallocatedBuffer <T>(ICompiler <T> c, int preallocatedBufferSize, int session,
                                                       MethodInfo getBuffer)
        {
            var size         = c.Constant(preallocatedBufferSize);
            var buffer       = c.Variable <byte[]>(PreallocatedByteBuffer);
            var bufferValue  = c.Call(getBuffer, session, size);
            var assignBuffer = c.WriteVar(buffer, bufferValue);

            c.Emit(assignBuffer);
        }
Ejemplo n.º 2
0
        public virtual int EmitReadValue([NotNull] ICompiler <ObjectReader> c, int stream, int session,
                                         [NotNull] FieldInfo field)
        {
            var method = typeof(ValueSerializer).GetTypeInfo().GetMethod(nameof(ReadValue));
            var ss     = c.Constant(this);
            var read   = c.Call(method, ss, stream, session);

            read = c.Convert(read, field.FieldType);
            return(read);
        }