BTDB.EventStoreLayer.DictionaryTypeDescriptor.GenerateSkip C# (CSharp) Метод

GenerateSkip() публичный Метод

public GenerateSkip ( IILGen ilGenerator, Action pushReader, Action pushCtx ) : void
ilGenerator IILGen
pushReader Action
pushCtx Action
Результат void
        public void GenerateSkip(IILGen ilGenerator, Action<IILGen> pushReader, Action<IILGen> pushCtx)
        {
            var localCount = ilGenerator.DeclareLocal(typeof(uint));
            var skipFinished = ilGenerator.DefineLabel();
            var next = ilGenerator.DefineLabel();
            ilGenerator
                .Do(pushReader)
                .Callvirt(() => default(AbstractBufferedReader).ReadVUInt32())
                .Stloc(localCount)
                .Ldloc(localCount)
                .Brfalse(skipFinished)
                .Mark(next)
                .Ldloc(localCount)
                .LdcI4(1)
                .Sub()
                .Stloc(localCount)
                .Ldloc(localCount)
                .Brfalse(skipFinished);
            _keyDescriptor.GenerateSkipEx(ilGenerator, pushReader, pushCtx);
            _valueDescriptor.GenerateSkipEx(ilGenerator, pushReader, pushCtx);
            ilGenerator
                .Br(next)
                .Mark(skipFinished);
        }