Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ CreateSetIterator()

QilNode System.Xml.Xsl.IlGen.XmlILVisitor.CreateSetIterator ( QilBinary ndSet,
string iterName,
Type iterType,
MethodInfo methCreate,
MethodInfo methNext,
MethodInfo methCurrent )
inlineprivate

Definition at line 719 of file XmlILVisitor.cs.

720 {
729 NestedVisit(ndSet.Left, label);
734 NestedVisit(ndSet.Right, label);
745 if (ndSet.XmlType.IsSingleton)
746 {
747 _helper.Emit(OpCodes.Switch, new Label[3] { label3, labelNext, labelNext2 });
748 _iterCurr.Storage = StorageDescriptor.Current(localBuilder, methCurrent, typeof(XPathNavigator));
749 }
750 else
751 {
753 {
754 _iterCurr.GetLabelNext(),
755 label3,
756 labelNext,
757 labelNext2
758 });
760 }
761 return ndSet;
762 }
static readonly OpCode Ldloca
Definition OpCodes.cs:427
static readonly OpCode Brtrue
Definition OpCodes.cs:119
static readonly OpCode Stloc
Definition OpCodes.cs:429
static readonly OpCode Switch
Definition OpCodes.cs:141
static readonly OpCode Ldloc
Definition OpCodes.cs:425
static readonly OpCode Ldnull
Definition OpCodes.cs:45
LocalBuilder DeclareLocal(string name, Type type)
void EmitUnconditionalBranch(OpCode opcode, Label lblTarget)
void SetIterator(Label lblNext, StorageDescriptor storage)
void NestedVisit(QilNode nd, Type itemStorageType, bool isCached)

References System.Xml.Xsl.IlGen.XmlILVisitor._helper, System.Xml.Xsl.IlGen.XmlILVisitor._iterCurr, System.Xml.Xsl.IlGen.XmlILVisitor._iterNested, System.Reflection.Emit.OpCodes.Brtrue, System.Xml.Xsl.IlGen.GenerateHelper.Call(), System.Xml.Xsl.IlGen.StorageDescriptor.Current(), System.Xml.Xsl.IlGen.GenerateHelper.DeclareLocal(), System.Xml.Xsl.IlGen.GenerateHelper.DefineLabel(), System.Xml.Dictionary, System.Xml.Xsl.IlGen.GenerateHelper.Emit(), System.Xml.Xsl.IlGen.GenerateHelper.EmitUnconditionalBranch(), System.Xml.Xsl.IlGen.IteratorDescriptor.EnsureLocal(), System.Xml.Xsl.IlGen.IteratorDescriptor.GetLabelNext(), System.Reflection.Emit.OpCodes.Ldloc, System.Reflection.Emit.OpCodes.Ldloca, System.Reflection.Emit.OpCodes.Ldnull, System.Xml.Xsl.IlGen.GenerateHelper.LoadQueryRuntime(), System.Xml.Xsl.IlGen.GenerateHelper.MarkLabel(), System.Xml.Xsl.IlGen.XmlILVisitor.NestedVisit(), System.Xml.Xsl.IlGen.IteratorDescriptor.SetIterator(), System.Reflection.Emit.OpCodes.Stloc, and System.Reflection.Emit.OpCodes.Switch.

Referenced by System.Xml.Xsl.IlGen.XmlILVisitor.VisitDifference(), System.Xml.Xsl.IlGen.XmlILVisitor.VisitIntersection(), and System.Xml.Xsl.IlGen.XmlILVisitor.VisitUnion().