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

EndWriterLoop() private method

Construction within a loop is ending. If transition from non-Any to Any state occurs, then ensure that runtime state will be set.
private EndWriterLoop ( QilNode nd, bool hasOnEnd, Label lblOnEnd ) : void
nd QilNode
hasOnEnd bool
lblOnEnd System.Reflection.Emit.Label
return void
        private void EndWriterLoop(QilNode nd, bool hasOnEnd, Label lblOnEnd) {
            XmlILConstructInfo info = XmlILConstructInfo.Read(nd);

            // If loop is not involved in Xml construction, then do nothing
            if (!info.PushToWriterLast)
                return;

            // Since results of construction were pushed to writer, there are no values to return
            this.iterCurr.Storage = StorageDescriptor.None();

            // If loop returns exactly one value, then do nothing further
            if (nd.XmlType.IsSingleton)
                return;

            if (hasOnEnd) {
                // Loop over all items in the list, sending each to the output writer
                this.iterCurr.LoopToEnd(lblOnEnd);
            }
        }
XmlILVisitor