System.Xml.Xsl.IlGen.XmlILVisitor.GenerateSimpleIterator C# (CSharp) Method

GenerateSimpleIterator() private method

Generate boiler-plate code that calls MoveNext on a simple Xml iterator. Iterator should have already been created by calling code.
... LabelNext: if (!iter.MoveNext()) goto LabelNextCtxt;
private GenerateSimpleIterator ( Type itemStorageType, LocalBuilder locIter, MethodInfo methNext ) : void
itemStorageType System.Type
locIter System.Reflection.Emit.LocalBuilder
methNext System.Reflection.MethodInfo
return void
        private void GenerateSimpleIterator(Type itemStorageType, LocalBuilder locIter, MethodInfo methNext) {
            Label lblNext;

            // LabelNext:
            lblNext = this.helper.DefineLabel();
            this.helper.MarkLabel(lblNext);

            // if (!iter.MoveNext()) goto LabelNextCtxt;
            this.helper.Emit(OpCodes.Ldloca, locIter);
            this.helper.Call(methNext);
            this.helper.Emit(OpCodes.Brfalse, this.iterCurr.GetLabelNext());

            this.iterCurr.SetIterator(lblNext, StorageDescriptor.Current(locIter, itemStorageType));
        }
XmlILVisitor