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

◆ VisitIsEmpty()

override QilNode System.Xml.Xsl.IlGen.XmlILVisitor.VisitIsEmpty ( QilUnary ndIsEmpty)
inlineprotectedvirtual

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

Definition at line 2054 of file XmlILVisitor.cs.

2055 {
2056 if (CachesResult(ndIsEmpty.Child))
2057 {
2061 {
2062 case BranchingContext.OnFalse:
2064 break;
2065 case BranchingContext.OnTrue:
2067 break;
2068 default:
2069 {
2073 break;
2074 }
2075 }
2076 }
2077 else
2078 {
2080 IteratorDescriptor iterCurr = _iterCurr;
2081 if (iterCurr.CurrentBranchingContext == BranchingContext.OnTrue)
2082 {
2084 }
2085 else
2086 {
2088 }
2089 Visit(ndIsEmpty.Child);
2092 switch (iterCurr.CurrentBranchingContext)
2093 {
2094 case BranchingContext.OnFalse:
2097 break;
2098 case BranchingContext.None:
2100 break;
2101 }
2103 }
2105 {
2106 _iterCurr.Storage = StorageDescriptor.None();
2107 }
2108 else
2109 {
2110 _iterCurr.Storage = StorageDescriptor.Stack(typeof(bool), isCached: false);
2111 }
2112 return ndIsEmpty;
2113 }
static readonly OpCode Beq
Definition OpCodes.cs:121
static readonly OpCode Br
Definition OpCodes.cs:115
static readonly OpCode Bne_Un
Definition OpCodes.cs:131
static readonly OpCode Brfalse_S
Definition OpCodes.cs:91
void TestAndBranch(int i4, Label lblBranch, OpCode opcodeBranch)
void EmitUnconditionalBranch(OpCode opcode, Label lblTarget)
void ConvBranchToBool(Label lblBranch, bool isTrueBranch)
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.Beq, System.Reflection.Emit.OpCodes.Bne_Un, System.Reflection.Emit.OpCodes.Br, System.Reflection.Emit.OpCodes.Brfalse_S, System.Xml.Xsl.IlGen.XmlILVisitor.CachesResult(), System.Xml.Xsl.IlGen.GenerateHelper.CallCacheCount(), System.Xml.Xsl.IlGen.GenerateHelper.ConvBranchToBool(), System.Xml.Xsl.IlGen.IteratorDescriptor.CurrentBranchingContext, System.Xml.Xsl.IlGen.GenerateHelper.DefineLabel(), System.Xml.Dictionary, System.Xml.Xsl.IlGen.IteratorDescriptor.DiscardStack(), System.Xml.Xsl.IlGen.GenerateHelper.Emit(), System.Xml.Xsl.IlGen.GenerateHelper.EmitUnconditionalBranch(), System.Xml.Xsl.IlGen.XmlILVisitor.EndNestedIterator(), System.Xml.Xsl.IlGen.IteratorDescriptor.EnsureNoCache(), System.Xml.Xsl.IlGen.IteratorDescriptor.IsBranching, System.Xml.Xsl.IlGen.StorageDescriptor.ItemStorageType, System.Xml.Xsl.IlGen.IteratorDescriptor.LabelBranch, System.Xml.Xsl.IlGen.GenerateHelper.MarkLabel(), System.Xml.Xsl.IlGen.XmlILVisitor.NestedVisitEnsureStack(), System.Xml.Xsl.IlGen.StorageDescriptor.None(), System.Xml.Xsl.IlGen.StorageDescriptor.Stack(), System.Xml.Xsl.IlGen.XmlILVisitor.StartNestedIterator(), System.Xml.Xsl.IlGen.IteratorDescriptor.Storage, System.Xml.Xsl.IlGen.GenerateHelper.TestAndBranch(), and System.Xml.Xsl.IlGen.XmlILVisitor.Visit().