3 writes to _iterCurr
System.Private.Xml (3)
System\Xml\Xsl\IlGen\XmlIlVisitor.cs (3)
4668_iterCurr = new IteratorDescriptor(_helper); 4673_iterCurr = new IteratorDescriptor(iterParent); 4723_iterCurr = _iterCurr.ParentIterator!;
235 references to _iterCurr
System.Private.Xml (235)
System\Xml\Xsl\IlGen\XmlIlVisitor.cs (235)
76Debug.Assert(_iterCurr.Storage.Location == ItemLocation.None, "Root expression should have been pushed to the writer."); 318Debug.Assert(nd.XmlType!.IsSingleton || CachesResult(nd) || _iterCurr.HasLabelNext, 353_iterCurr.Storage = StorageDescriptor.Stack(typeof(XPathItem), true); 374_iterCurr.EnsureItemStorageType(nd.XmlType!, typeof(XPathItem)); 380_iterCurr.EnsureItemStorageType(nd.XmlType!, typeof(XPathItem)); 383_iterCurr.EnsureNoStackNoCache("$$$copyTemp"); 389_iterCurr.EnsureStackNoCache(); 416_helper.Emit(OpCodes.Brfalse, _iterCurr.GetLabelNext()); 418_iterCurr.Storage = StorageDescriptor.Local(locNav, typeof(XPathNavigator), false); 451_iterCurr.Storage = StorageDescriptor.None(); 457_iterCurr.Storage = StorageDescriptor.Stack(typeof(XPathItem), false); 474_iterCurr.Storage = StorageDescriptor.None(); 491if (_iterCurr.CurrentBranchingContext != BranchingContext.None) 495_helper.EmitUnconditionalBranch(_iterCurr.CurrentBranchingContext == BranchingContext.OnTrue ? 496OpCodes.Brtrue : OpCodes.Brfalse, _iterCurr.LabelBranch); 498_iterCurr.Storage = StorageDescriptor.None(); 504_iterCurr.Storage = StorageDescriptor.Stack(typeof(bool), false); 520if (_iterCurr.CurrentBranchingContext != BranchingContext.None) 524_helper.EmitUnconditionalBranch(_iterCurr.CurrentBranchingContext == BranchingContext.OnFalse ? 525OpCodes.Brtrue : OpCodes.Brfalse, _iterCurr.LabelBranch); 527_iterCurr.Storage = StorageDescriptor.None(); 533_iterCurr.Storage = StorageDescriptor.Stack(typeof(bool), false); 545_iterCurr.Storage = StorageDescriptor.Stack(typeof(string), false); 555_iterCurr.Storage = StorageDescriptor.Stack(typeof(int), false); 565_iterCurr.Storage = StorageDescriptor.Stack(typeof(long), false); 575_iterCurr.Storage = StorageDescriptor.Stack(typeof(double), false); 585_iterCurr.Storage = StorageDescriptor.Stack(typeof(decimal), false); 595_iterCurr.Storage = StorageDescriptor.Stack(typeof(XmlQualifiedName), false); 624IteratorDescriptor iterParent = _iterCurr; 657_iterCurr.SetBranching(BranchingContext.OnFalse, lblBranch); 665_iterCurr.SetBranching(BranchingContext.OnFalse, lblOnFalse); 679_iterCurr.SetBranching(BranchingContext.OnTrue, lblBranch); 685_iterCurr.SetBranching(BranchingContext.OnFalse, lblOnFalse); 703_iterCurr.Storage = StorageDescriptor.None(); 709_iterCurr.Storage = StorageDescriptor.Stack(typeof(bool), false); 742switch (_iterCurr.CurrentBranchingContext) 753NestedVisitWithBranch(ndOr.Left, BranchingContext.OnTrue, _iterCurr.LabelBranch); 758Debug.Assert(_iterCurr.CurrentBranchingContext == BranchingContext.None); 765switch (_iterCurr.CurrentBranchingContext) 769NestedVisitWithBranch(ndOr.Right, BranchingContext.OnFalse, _iterCurr.LabelBranch); 774NestedVisitWithBranch(ndOr.Right, BranchingContext.OnTrue, _iterCurr.LabelBranch); 785switch (_iterCurr.CurrentBranchingContext) 793_iterCurr.Storage = StorageDescriptor.None(); 799_iterCurr.Storage = StorageDescriptor.Stack(typeof(bool), false); 831switch (_iterCurr.CurrentBranchingContext) 834NestedVisitWithBranch(ndNot.Child, BranchingContext.OnTrue, _iterCurr.LabelBranch); 838NestedVisitWithBranch(ndNot.Child, BranchingContext.OnFalse, _iterCurr.LabelBranch); 843Debug.Assert(_iterCurr.CurrentBranchingContext == BranchingContext.None); 849if (_iterCurr.CurrentBranchingContext == BranchingContext.None) 853_iterCurr.Storage = StorageDescriptor.Stack(typeof(bool), false); 857_iterCurr.Storage = StorageDescriptor.None(); 901_iterCurr.Storage = StorageDescriptor.None(); 964_iterCurr.SetIterator(lblNext, StorageDescriptor.Local(locCond!, itemStorageType, false)); 984if (_iterCurr.IsBranching) 987NestedVisitWithBranch(ndBranch, _iterCurr.CurrentBranchingContext, _iterCurr.LabelBranch); 997NestedVisit(ndBranch, _iterCurr.GetLabelNext()); 998_iterCurr.EnsureItemStorageType(ndBranch.XmlType!, itemStorageType); 999_iterCurr.EnsureLocalNoCache(locResult); 1056_iterCurr.Storage = StorageDescriptor.None(); 1090_iterCurr.EnsureNoCache(); 1091_iterCurr.DiscardStack(); 1106_iterCurr.LoopToEnd(lblOnEnd); 1111_iterCurr.Storage = StorageDescriptor.Stack(typeof(int), false); 1148_helper.EmitUnconditionalBranch(OpCodes.Brtrue, _iterCurr.GetLabelNext()); 1152_iterCurr.Storage = StorageDescriptor.Stack(typeof(XPathItem), false); 1181_iterCurr.DiscardStack(); 1185_iterCurr.Storage = StorageDescriptor.Stack(itemStorageType, false); 1206lblOnEnd = _iterCurr.GetLabelNext(); 1218_iterCurr.EnsureItemStorageType(ndSeq[i].XmlType!, itemStorageType); 1219_iterCurr.EnsureLocalNoCache(locList); 1243_iterCurr.SetIterator(lblNext, StorageDescriptor.Local(locList, itemStorageType, false)); 1298_iterCurr.EnsureLocal(locNav); 1307_iterCurr.EnsureLocal(locNav); 1332_iterCurr.Storage = StorageDescriptor.Current(locIter, methCurrent, typeof(XPathNavigator)); 1336_helper.Emit(OpCodes.Switch, new Label[] { _iterCurr.GetLabelNext(), lblInitRight, lblNextLeft, lblNextRight }); 1337_iterCurr.SetIterator(lblNext, StorageDescriptor.Current(locIter, methCurrent, typeof(XPathNavigator))); 1400_iterCurr.EnsureStackNoCache(); 1401_iterCurr.EnsureItemStorageType(ndAgg.XmlType!, GetItemStorageType(ndAgg)); 1406_iterCurr.LoopToEnd(lblOnEnd); 1416_helper.Emit(OpCodes.Brtrue, _iterCurr.GetLabelNext()); 1422_iterCurr.Storage = StorageDescriptor.Stack(GetItemStorageType(ndAgg), false); 1434_iterCurr.Storage = StorageDescriptor.Stack(GetItemStorageType(ndNeg), false); 1485_iterCurr.Storage = StorageDescriptor.Stack(GetItemStorageType(ndOp), false); 1496_iterCurr.Storage = StorageDescriptor.Stack(typeof(int), false); 1573_iterCurr.Storage = StorageDescriptor.Stack(typeof(string), false); 1591_iterCurr.EnsureStackNoCache(); 1592_iterCurr.EnsureItemStorageType(ndStr.XmlType!, typeof(string)); 1599_iterCurr.LoopToEnd(lblOnEnd); 1649_iterCurr.Storage = StorageDescriptor.Stack(typeof(XmlQualifiedName), false); 1833_iterCurr.Storage = iterInfo.Storage; 1836if (_iterCurr.Storage.Location == ItemLocation.Global) 1839_iterCurr.EnsureStack(); 1897_iterCurr.SetIterator(_iterNested!); 1901_iterCurr.SetBranching(BranchingContext.OnFalse, _iterCurr.ParentIterator!.GetLabelNext()); 2073_iterCurr.EnsureStackNoCache(); 2075_iterCurr.EnsureStackNoCache(); 2076_iterCurr.EnsureItemStorageType(nodes.XmlType!, typeof(XPathNavigator)); 2081_iterCurr.LoopToEnd(lblOnEnd); 2094_iterCurr.Storage = StorageDescriptor.Stack(typeof(XPathNavigator), true); 2144if (_iterCurr.HasLabelNext) 2145StartNestedIterator(_iterCurr.GetLabelNext()); 2167_iterCurr.EnsureLocalNoCache("$$$for"); 2172_iterCurr.EnsureNoStackNoCache("$$$for"); 2188_helper.Emit(OpCodes.Bgt, _iterCurr.ParentIterator!.GetLabelNext()); 2191_iterCurr.LocalPosition = locPos; 2195_iterCurr.SetIterator(_iterNested!); 2218_iterCurr.EnsureLocal("$$$cache"); 2223_iterCurr.EnsureNoStack("$$$cache"); 2252_iterCurr.Storage = StorageDescriptor.Local(locPos, typeof(int), false); 2289_iterCurr.EnsureStackNoCache(); 2290_iterCurr.EnsureItemStorageType(ndSort.Variable.XmlType!, GetItemStorageType(ndSort.Variable)); 2304_iterCurr.LoopToEnd(lblOnEndSort); 2316_iterCurr.Storage = StorageDescriptor.Local(locCache, itemStorageType, true); 2319_iterCurr.SetIterator(_iterNested); 2359_iterCurr.EnsureStackNoCache(); 2360_iterCurr.EnsureItemStorageType(ndKey.Key.XmlType, GetItemStorageType(ndKey.Key)); 2399_iterCurr.EnsureStack(); 2523Debug.Assert(_iterCurr.Storage.IsCached, "DodMerge pattern should only be matched when cached sequences are returned from loop"); 2524_iterCurr.EnsureStack(); 2529_iterCurr.LoopToEnd(lblOnEnd); 2536_iterCurr.Storage = StorageDescriptor.Stack(typeof(XPathNavigator), true); 2575_iterCurr.Storage = StorageDescriptor.Stack(GetItemStorageType(ndInvoke), !ndInvoke.XmlType!.IsSingleton); 2579_iterCurr.Storage = StorageDescriptor.None(); 2613_helper.Emit(OpCodes.Brfalse, _iterCurr.GetLabelNext()); 2615_iterCurr.Storage = StorageDescriptor.Local(locNav, typeof(XPathNavigator), false); 2633_helper.Emit(OpCodes.Brfalse, _iterCurr.GetLabelNext()); 2635_iterCurr.Storage = StorageDescriptor.Local(locNav, typeof(XPathNavigator), false); 2654_iterCurr.Storage = StorageDescriptor.Local(locNav, typeof(XPathNavigator), false); 2669_iterCurr.Storage = StorageDescriptor.Stack(typeof(XPathNavigator), false); 2818_iterCurr.Storage = StorageDescriptor.None(); 2855_iterCurr.Storage = StorageDescriptor.None(); 2875_iterCurr.Storage = StorageDescriptor.None(); 2897_iterCurr.Storage = StorageDescriptor.None(); 2975_iterCurr.Storage = StorageDescriptor.None(); 2995_iterCurr.Storage = StorageDescriptor.None(); 3031_iterCurr.Storage = StorageDescriptor.None(); 3063_iterCurr.Storage = StorageDescriptor.Stack(typeof(XPathNavigator), false); 3115_iterCurr.Storage = StorageDescriptor.Stack(typeof(XmlQualifiedName), false); 3121_iterCurr.Storage = StorageDescriptor.Stack(typeof(string), false); 3127_iterCurr.Storage = StorageDescriptor.Stack(typeof(string), false); 3133_iterCurr.Storage = StorageDescriptor.Stack(typeof(string), false); 3149if (!ndTypeAssert.Source.XmlType!.IsSingleton && ndTypeAssert.XmlType!.IsSingleton && !_iterCurr.HasLabelNext) 3167_iterCurr.EnsureItemStorageType(ndTypeAssert.Source.XmlType, GetItemStorageType(ndTypeAssert)); 3187Debug.Assert(_iterCurr.Storage.ItemStorageType == typeof(XPathItem), "If !IsNode, then storage type should be Item"); 3362switch (_iterCurr.CurrentBranchingContext) 3366_helper.TestAndBranch(0, _iterCurr.LabelBranch, OpCodes.Bne_Un); 3371_helper.TestAndBranch(0, _iterCurr.LabelBranch, OpCodes.Beq); 3375Debug.Assert(_iterCurr.CurrentBranchingContext == BranchingContext.None); 3389IteratorDescriptor iterParent = _iterCurr; 3393StartNestedIterator(_iterCurr.LabelBranch); 3400_iterCurr.EnsureNoCache(); 3401_iterCurr.DiscardStack(); 3425if (_iterCurr.IsBranching) 3426_iterCurr.Storage = StorageDescriptor.None(); 3428_iterCurr.Storage = StorageDescriptor.Stack(typeof(bool), false); 3457_iterCurr.EnsureStackNoCache(); 3473_iterCurr.Storage = StorageDescriptor.Stack(typeof(string), false); 3532_iterCurr.EnsureStackNoCache(); 3533_iterCurr.EnsureItemStorageType(ndGenId.Child.XmlType, typeof(XPathNavigator)); 3550_iterCurr.Storage = StorageDescriptor.Stack(typeof(string), false); 3586_iterCurr.EnsureStack(); 3596_iterCurr.Storage = StorageDescriptor.Stack(typeof(XPathItem), true); 3734_iterCurr.Storage = StorageDescriptor.Stack(GetItemStorageType(ndInvoke), !ndInvoke.XmlType.IsSingleton); 3770_iterCurr.Storage = StorageDescriptor.None(); 3787_iterCurr.Storage = StorageDescriptor.None(); 3818_iterCurr.Storage = StorageDescriptor.Stack(GetItemStorageType(typDst), !typDst.IsSingleton); 4003_iterCurr.Storage = _iterNested!.Storage; 4029_helper.Emit(OpCodes.Brfalse, _iterCurr.GetLabelNext()); 4031_iterCurr.SetIterator(lblNext, StorageDescriptor.Current(locIter, methCurrent, itemStorageType)); 4059_iterCurr.EnsureNoStackNoCache(nd.XmlType!.IsNode ? "$$$navInput" : "$$$itemInput"); 4061_iterCurr.PushValue(); 4082_iterCurr.Storage = StorageDescriptor.Current(locIter, methCurrent, itemStorageType); 4090_helper.Emit(OpCodes.Switch, new Label[] { _iterCurr.GetLabelNext(), _iterNested!.GetLabelNext() }); 4092_iterCurr.SetIterator(lblOnEndNested, StorageDescriptor.Current(locIter, methCurrent, itemStorageType)); 4294switch (_iterCurr.CurrentBranchingContext) 4325_helper.Emit(opcode, _iterCurr.LabelBranch); 4326_iterCurr.Storage = StorageDescriptor.None(); 4340_helper.Emit(opcode, _iterCurr.LabelBranch); 4341_iterCurr.Storage = StorageDescriptor.None(); 4345Debug.Assert(_iterCurr.CurrentBranchingContext == BranchingContext.None); 4366_iterCurr.Storage = StorageDescriptor.Stack(typeof(bool), false); 4381switch (_iterCurr.CurrentBranchingContext) 4386_helper.Emit((relOp == QilNodeType.Eq) ? OpCodes.Brfalse : OpCodes.Brtrue, _iterCurr.LabelBranch); 4387_iterCurr.Storage = StorageDescriptor.None(); 4393_helper.Emit((relOp == QilNodeType.Eq) ? OpCodes.Brtrue : OpCodes.Brfalse, _iterCurr.LabelBranch); 4394_iterCurr.Storage = StorageDescriptor.None(); 4398Debug.Assert(_iterCurr.CurrentBranchingContext == BranchingContext.None); 4410_iterCurr.Storage = StorageDescriptor.Stack(typeof(bool), false); 4431if (!_iterCurr.HasLabelNext) 4436_iterCurr.SetIterator(lblOnEnd, StorageDescriptor.None()); 4453_iterCurr.Storage = StorageDescriptor.None(); 4462_iterCurr.LoopToEnd(lblOnEnd); 4659[MemberNotNull(nameof(_iterCurr))] 4662IteratorDescriptor? iterParent = _iterCurr; 4686_iterCurr.SetIterator(lblOnEnd, StorageDescriptor.None()); 4694Debug.Assert(_iterCurr.Storage.Location == ItemLocation.None || 4695_iterCurr.Storage.ItemStorageType == GetItemStorageType(nd) || 4696_iterCurr.Storage.ItemStorageType == typeof(XPathItem) || 4698$"QilNodeType {nd.NodeType} cannot be stored using type {_iterCurr.Storage.ItemStorageType}." 4702if (_iterCurr.IsBranching) 4705if (_iterCurr.Storage.Location != ItemLocation.None) 4707_iterCurr.EnsureItemStorageType(nd.XmlType!, typeof(bool)); 4708_iterCurr.EnsureStackNoCache(); 4710if (_iterCurr.CurrentBranchingContext == BranchingContext.OnTrue) 4711_helper.Emit(OpCodes.Brtrue, _iterCurr.LabelBranch); 4713_helper.Emit(OpCodes.Brfalse, _iterCurr.LabelBranch); 4715_iterCurr.Storage = StorageDescriptor.None(); 4720_iterNested = _iterCurr; 4723_iterCurr = _iterCurr.ParentIterator!; 4740_iterCurr.Storage = StorageDescriptor.None(); 4747_iterCurr.EnsureNoCache(); 4748_iterCurr.EnsureItemStorageType(nd.XmlType, itemStorageType); 4750_iterCurr.Storage = _iterNested!.Storage; 4775_iterCurr.EnsureNoCache(); 4776_iterCurr.EnsureItemStorageType(nd.XmlType!, GetItemStorageType(nd)); 4778_iterCurr.Storage = _iterNested!.Storage; 4788_iterCurr.EnsureStack(); 4807_iterCurr.EnsureStack(); 4817_iterCurr.EnsureLocal(loc); 4827_iterCurr.SetBranching(brctxt, lblBranch); 4830_iterCurr.Storage = StorageDescriptor.None(); 4852_iterCurr.Storage = _iterNested!.Storage; 4853Debug.Assert(_iterCurr.Storage.IsCached, "Expression result should be cached. CachesResult() might have a bug in it."); 4856if (_iterCurr.Storage.ItemStorageType == itemStorageType) 4861if (_iterCurr.Storage.ItemStorageType == typeof(XPathNavigator) || itemStorageType == typeof(XPathNavigator)) 4863_iterCurr.EnsureItemStorageType(nd.XmlType!, itemStorageType); 4867_iterCurr.EnsureNoStack("$$$cacheResult"); 4897_iterCurr.Storage = _iterCurr.ParentIterator!.Storage; 4902_iterCurr.EnsureItemStorageType(nd.XmlType, cacheType); 4903_iterCurr.EnsureStackNoCache(); 4908_iterCurr.LoopToEnd(lblOnEnd); 4916_iterCurr.Storage = StorageDescriptor.Local(locCache, itemStorageType, true);