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

◆ VisitLength()

override QilNode System.Xml.Xsl.IlGen.XmlILVisitor.VisitLength ( QilUnary ndSetLen)
inlineprotectedvirtual

Reimplemented from System.Xml.Xsl.Qil.QilVisitor.

Definition at line 598 of file XmlILVisitor.cs.

599 {
601 OptimizerPatterns optimizerPatterns = OptimizerPatterns.Read(ndSetLen);
602 if (CachesResult(ndSetLen.Child))
603 {
606 }
607 else
608 {
611 Visit(ndSetLen.Child);
616 if (optimizerPatterns.MatchesPattern(OptimizerPatternName.MaxPosition))
617 {
619 _helper.LoadInteger((int)optimizerPatterns.GetArgument(OptimizerPatternArgument.ElementQName));
621 }
624 }
625 _iterCurr.Storage = StorageDescriptor.Stack(typeof(int), isCached: false);
626 return ndSetLen;
627 }
static readonly OpCode Bgt
Definition OpCodes.cs:125
static readonly OpCode Add
Definition OpCodes.cs:179
static readonly OpCode Ldc_I4_1
Definition OpCodes.cs:51
static readonly OpCode Ldc_I4_0
Definition OpCodes.cs:49
static readonly OpCode Dup
Definition OpCodes.cs:77
void CallCacheCount(Type itemStorageType)
void Visit(QilExpression qil, GenerateHelper helper, MethodInfo methRoot)

References System.Xml.Xsl.IlGen.XmlILVisitor._helper, System.Xml.Xsl.IlGen.XmlILVisitor._iterCurr, System.Xml.Xsl.IlGen.XmlILVisitor._iterNested, System.Reflection.Emit.OpCodes.Add, System.Reflection.Emit.OpCodes.Bgt, System.Xml.Xsl.IlGen.XmlILVisitor.CachesResult(), System.Xml.Xsl.IlGen.GenerateHelper.CallCacheCount(), System.Xml.Xsl.IlGen.GenerateHelper.DefineLabel(), System.Xml.Dictionary, System.Xml.Xsl.IlGen.IteratorDescriptor.DiscardStack(), System.Reflection.Emit.OpCodes.Dup, System.Xml.Xsl.IlGen.GenerateHelper.Emit(), System.Xml.Xsl.IlGen.XmlILVisitor.EndNestedIterator(), System.Xml.Xsl.IlGen.IteratorDescriptor.EnsureNoCache(), System.Xml.Xsl.IlGen.StorageDescriptor.ItemStorageType, System.Reflection.Emit.OpCodes.Ldc_I4_0, System.Reflection.Emit.OpCodes.Ldc_I4_1, System.Xml.Xsl.IlGen.GenerateHelper.LoadInteger(), System.Xml.Xsl.IlGen.IteratorDescriptor.LoopToEnd(), System.Xml.Xsl.IlGen.XmlILVisitor.NestedVisitEnsureStack(), System.Xml.Xsl.IlGen.OptimizerPatterns.Read(), System.Xml.Xsl.IlGen.StorageDescriptor.Stack(), System.Xml.Xsl.IlGen.XmlILVisitor.StartNestedIterator(), System.Xml.Xsl.IlGen.IteratorDescriptor.Storage, and System.Xml.Xsl.IlGen.XmlILVisitor.Visit().