Пример #1
0
        public void EmitCalculateSize(IEmittingContext context, Action <MyILGenerator> emitLoad)
        {
            var il = context.IL;

            context.EmitLoadManualCodecFor(type);
            emitLoad(il);
            il.Callvirt(ManualCodecMethods.CalculateSize(type));
        }
Пример #2
0
        public void EmitEncode(IEmittingContext context, Action <MyILGenerator> emitLoad)
        {
            var il = context.IL;

            context.EmitLoadManualCodecFor(type);
            il.Ldloca(context.DataPointerVar);
            emitLoad(il);
            il.Callvirt(ManualCodecMethods.Encode(type));
        }
Пример #3
0
        public void EmitDecode(IEmittingContext context, bool doNotCheckBounds)
        {
            var il = context.IL;

            context.EmitLoadManualCodecFor(type);
            il.Ldloca(context.DataPointerVar);
            il.Ldloca(context.RemainingBytesVar);
            il.Ldc_I4(0);
            il.Callvirt(ManualCodecMethods.Decode(type));
        }