1 write to helper
System.Data.SqlXml (1)
System\Xml\Xsl\IlGen\XmlIlVisitor.cs (1)
48this.helper = helper;
512 references to helper
System.Data.SqlXml (512)
System\Xml\Xsl\IlGen\XmlIlVisitor.cs (512)
67this.helper.MethodBegin(methRoot, null, true); 72this.helper.MethodEnd(); 92iterInfo = new IteratorDescriptor(this.helper); 120idxValue = this.helper.StaticData.DeclareGlobalValue(iter.DebugName); 123this.helper.MethodBegin(methGlobal, iter.SourceLine, false); 125lblGetGlobal = this.helper.DefineLabel(); 126lblComputeGlobal = this.helper.DefineLabel(); 129this.helper.LoadQueryRuntime(); 130this.helper.LoadInteger(idxValue); 131this.helper.Call(XmlILMethods.GlobalComputed); 132this.helper.Emit(OpCodes.Brtrue, lblGetGlobal); 142LocalBuilder locParam = this.helper.DeclareLocal("$$$param", typeof(object)); 143this.helper.CallGetParameter(param.Name.LocalName, param.Name.NamespaceUri); 144this.helper.Emit(OpCodes.Stloc, locParam); 145this.helper.Emit(OpCodes.Ldloc, locParam); 146this.helper.Emit(OpCodes.Brfalse, lblComputeGlobal); 150this.helper.LoadQueryRuntime(); 151this.helper.LoadInteger(idxValue); 153this.helper.LoadQueryRuntime(); 154this.helper.LoadInteger(this.helper.StaticData.DeclareXmlType(XmlQueryTypeFactory.ItemS)); 155this.helper.Emit(OpCodes.Ldloc, locParam); 156this.helper.Call(XmlILMethods.ChangeTypeXsltResult); 158this.helper.CallSetGlobalValue(typeof(object)); 161this.helper.EmitUnconditionalBranch(OpCodes.Br, lblGetGlobal); 165this.helper.MarkLabel(lblComputeGlobal); 169this.helper.LoadQueryRuntime(); 170this.helper.LoadInteger(idxValue); 175this.helper.CallSetGlobalValue(GetStorageType(iter)); 181this.helper.LoadQueryRuntime(); 182this.helper.Emit(OpCodes.Ldstr, Res.GetString(Res.XmlIl_UnknownParam, new string[] {param.Name.LocalName, param.Name.NamespaceUri})); 183this.helper.Call(XmlILMethods.ThrowException); 190this.helper.MarkLabel(lblGetGlobal); 191this.helper.CallGetGlobalValue(idxValue, GetStorageType(iter)); 193this.helper.MethodEnd(); 211iterInfo = new IteratorDescriptor(this.helper); 227this.helper.MethodBegin(methFunc, ndFunc.SourceLine, useWriter); 232this.helper.DebugSequencePoint(iter.SourceLine); 240Label lblLocalComputed = this.helper.DefineLabel(); 241this.helper.LoadQueryRuntime(); 242this.helper.LoadParameter(paramId); 243this.helper.LoadInteger((int)XmlTypeCode.QName); 244this.helper.Call(XmlILMethods.SeqMatchesCode); 246this.helper.Emit(OpCodes.Brfalse, lblLocalComputed); 253this.helper.SetParameter(paramId); 254this.helper.MarkLabel(lblLocalComputed); 268this.helper.MethodEnd(); 284this.helper.DebugSequencePoint(nd.SourceLine); 325this.helper.CallStartSequenceConstruction(); 331this.helper.CallEndSequenceConstruction(); 347this.helper.LoadQueryOutput(); 361this.helper.LoadQueryOutput(); 366this.helper.Call(XmlILMethods.WriteItem); 381this.helper.LoadQueryContext(); 384this.helper.Call(XmlILMethods.GetDataSource); 386locNav = this.helper.DeclareLocal("$$$navDoc", typeof(XPathNavigator)); 387this.helper.Emit(OpCodes.Stloc, locNav); 390this.helper.Emit(OpCodes.Ldloc, locNav); 391this.helper.Emit(OpCodes.Brfalse, this.iterCurr.GetLabelNext()); 417this.helper.LoadQueryRuntime(); 419this.helper.Call(XmlILMethods.ThrowException); 426this.helper.Emit(OpCodes.Ldnull); 438this.helper.LoadQueryRuntime(); 440this.helper.Call(XmlILMethods.SendMessage); 462this.helper.EmitUnconditionalBranch(this.iterCurr.CurrentBranchingContext == BranchingContext.OnTrue ? 469this.helper.LoadBoolean(true); 488this.helper.EmitUnconditionalBranch(this.iterCurr.CurrentBranchingContext == BranchingContext.OnFalse ? 495this.helper.LoadBoolean(false); 506this.helper.Emit(OpCodes.Ldstr, (string) ndStr); 515this.helper.LoadInteger((int) ndInt); 524this.helper.Emit(OpCodes.Ldc_I8, (long) ndLong); 533this.helper.Emit(OpCodes.Ldc_R8, (double) ndDbl); 542this.helper.ConstructLiteralDecimal((decimal) ndDec); 551this.helper.ConstructLiteralQName(ndQName.LocalName, ndQName.NamespaceUri); 618lblOnFalse = this.helper.DefineLabel(); 649this.helper.MarkLabel(lblOnFalse); 658this.helper.ConvBranchToBool(lblOnFalse, false); 695lblTemp = this.helper.DefineLabel(); 707lblTemp = this.helper.DefineLabel(); 735this.helper.MarkLabel(lblTemp); 744this.helper.ConvBranchToBool(lblTemp, true); 788lblTemp = this.helper.DefineLabel(); 795this.helper.ConvBranchToBool(lblTemp, false); 815lblFalse = this.helper.DefineLabel(); 824this.helper.MarkLabel(lblFalse); 829lblDone = this.helper.DefineLabel(); 830this.helper.EmitUnconditionalBranch(OpCodes.Br, lblDone); 833this.helper.MarkLabel(lblFalse); 836this.helper.MarkLabel(lblDone); 850lblFalse = this.helper.DefineLabel(); 859locCond = this.helper.DeclareLocal("$$$cond", itemStorageType); 860locBool = this.helper.DeclareLocal("$$$boolResult", typeof(bool)); 864this.helper.Emit(OpCodes.Ldloc, locBool); 865this.helper.Emit(OpCodes.Brfalse, lblFalse); 873lblDone = this.helper.DefineLabel(); 874this.helper.EmitUnconditionalBranch(OpCodes.Br, lblDone); 878this.helper.MarkLabel(lblFalse); 887this.helper.EmitUnconditionalBranch(OpCodes.Brtrue, lblDone); 890lblNext = this.helper.DefineLabel(); 891this.helper.MarkLabel(lblNext); 894this.helper.Emit(OpCodes.Ldloc, locBool); 895this.helper.Emit(OpCodes.Brtrue, iterInfoTrue.GetLabelNext()); 896this.helper.EmitUnconditionalBranch(OpCodes.Br, this.iterNested.GetLabelNext()); 902this.helper.MarkLabel(lblDone); 950switchLabels[idx] = this.helper.DefineLabel(); 952lblOtherwise = this.helper.DefineLabel(); 953lblDone = this.helper.DefineLabel(); 960this.helper.Emit(OpCodes.Switch, switchLabels); 961this.helper.EmitUnconditionalBranch(OpCodes.Br, lblOtherwise); 965this.helper.MarkLabel(switchLabels[idx]); 971this.helper.EmitUnconditionalBranch(OpCodes.Br, lblDone); 975this.helper.MarkLabel(lblOtherwise); 981this.helper.MarkLabel(lblDone); 997Label lblOnEnd = this.helper.DefineLabel(); 1002this.helper.CallCacheCount(this.iterNested.Storage.ItemStorageType); 1006this.helper.Emit(OpCodes.Ldc_I4_0); 1018this.helper.Emit(OpCodes.Ldc_I4_1); 1019this.helper.Emit(OpCodes.Add); 1023this.helper.Emit(OpCodes.Dup); 1024this.helper.LoadInteger((int) patt.GetArgument(OptimizerPatternArgument.MaxPosition)); 1025this.helper.Emit(OpCodes.Bgt, lblOnEnd); 1067this.helper.EmitUnconditionalBranch(OpCodes.Brtrue, this.iterCurr.GetLabelNext()); 1070this.helper.Emit(OpCodes.Ldnull); 1093lblOnEnd = this.helper.DefineLabel(); 1096this.helper.MarkLabel(lblOnEnd); 1104locList = this.helper.DeclareLocal("$$$itemList", itemStorageType); 1105locIdx = this.helper.DeclareLocal("$$$idxList", typeof(int)); 1108lblStart = this.helper.DefineLabel(); 1114this.helper.MarkLabel(lblOnEnd); 1120lblOnEnd = this.helper.DefineLabel(); 1123this.helper.LoadInteger(i); 1124this.helper.Emit(OpCodes.Stloc, locIdx); 1138this.helper.EmitUnconditionalBranch(OpCodes.Brtrue, lblStart); 1142lblNext = this.helper.DefineLabel(); 1143this.helper.MarkLabel(lblNext); 1149this.helper.Emit(OpCodes.Ldloc, locIdx); 1150this.helper.Emit(OpCodes.Switch, arrSwitchLabels); 1153this.helper.MarkLabel(lblStart); 1189locIter = this.helper.DeclareLocal(iterName, iterType); 1190locNav = this.helper.DeclareLocal("$$$navSet", typeof(XPathNavigator)); 1193this.helper.Emit(OpCodes.Ldloca, locIter); 1194this.helper.LoadQueryRuntime(); 1195this.helper.Call(methCreate); 1198lblNext = this.helper.DefineLabel(); 1199lblCall = this.helper.DefineLabel(); 1200lblInitRight = this.helper.DefineLabel(); 1207this.helper.EmitUnconditionalBranch(OpCodes.Brtrue, lblCall); 1212this.helper.MarkLabel(lblInitRight); 1216this.helper.EmitUnconditionalBranch(OpCodes.Brtrue, lblCall); 1219this.helper.MarkLabel(lblNext); 1220this.helper.Emit(OpCodes.Ldnull); 1221this.helper.Emit(OpCodes.Stloc, locNav); 1230this.helper.MarkLabel(lblCall); 1231this.helper.Emit(OpCodes.Ldloca, locIter); 1232this.helper.Emit(OpCodes.Ldloc, locNav); 1233this.helper.Call(methNext); 1238this.helper.Emit(OpCodes.Switch, new Label[] {lblInitRight, lblNextLeft, lblNextRight}); 1242this.helper.Emit(OpCodes.Switch, new Label[] {this.iterCurr.GetLabelNext(), lblInitRight, lblNextLeft, lblNextRight}); 1285Label lblOnEnd = this.helper.DefineLabel(); 1291locAgg = this.helper.DeclareLocal(aggName, typAgg); 1292this.helper.Emit(OpCodes.Ldloca, locAgg); 1293this.helper.Call(methods.AggCreate); 1297this.helper.Emit(OpCodes.Ldloca, locAgg); 1303this.helper.Call(methAgg); 1304this.helper.Emit(OpCodes.Ldloca, locAgg); 1315this.helper.Call(methods.AggIsEmpty); 1316this.helper.Emit(OpCodes.Brtrue, this.iterCurr.GetLabelNext()); 1317this.helper.Emit(OpCodes.Ldloca, locAgg); 1321this.helper.Call(methResult); 1332this.helper.CallArithmeticOp(QilNodeType.Negate, ndNeg.XmlType.TypeCode); 1377this.helper.CallArithmeticOp(ndOp.NodeType, ndOp.XmlType.TypeCode); 1387this.helper.Call(XmlILMethods.StrLen); 1426this.helper.CallConcatStrings(listStrings.Count); 1430locStringConcat = this.helper.DeclareLocal("$$$strcat", typeof(StringConcat)); 1431this.helper.Emit(OpCodes.Ldloca, locStringConcat); 1432this.helper.Call(XmlILMethods.StrCatClear); 1436this.helper.Emit(OpCodes.Ldloca, locStringConcat); 1438this.helper.Call(XmlILMethods.StrCatDelim); 1441this.helper.Emit(OpCodes.Ldloca, locStringConcat); 1452this.helper.Call(XmlILMethods.StrCatResult); 1467lblOnEnd = this.helper.DefineLabel(); 1474this.helper.Call(XmlILMethods.StrCatCat); 1475this.helper.Emit(OpCodes.Ldloca, locStringConcat); 1500this.helper.LoadQueryRuntime(); 1512this.helper.CallParseTagName(GenerateNameType.TagNameAndNamespace); 1517this.helper.LoadInteger(this.helper.StaticData.DeclarePrefixMappings(ndParsedTagName.Right)); 1519this.helper.LoadInteger(this.helper.StaticData.DeclarePrefixMappings(new QilNode[] {ndParsedTagName.Right})); 1523this.helper.CallParseTagName(GenerateNameType.TagNameAndMappings); 1612this.helper.CallCompareEquals(code); 1622this.helper.CallCompare(code); 1625this.helper.Emit(OpCodes.Ldc_I4_0); 1649this.helper.Call(XmlILMethods.NavSamePos); 1677this.helper.LoadQueryRuntime(); 1679this.helper.Call(XmlILMethods.CompPos); 1682this.helper.LoadInteger(0); 1799locIter = this.helper.DeclareLocal("$$$iterElemContent", typeof(ElementContentIterator)); 1802this.helper.Emit(OpCodes.Ldloca, locIter); 1804this.helper.CallGetAtomizedName(this.helper.StaticData.DeclareName(name.LocalName)); 1805this.helper.CallGetAtomizedName(this.helper.StaticData.DeclareName(name.NamespaceUri)); 1806this.helper.Call(XmlILMethods.ElemContentCreate); 1816locIter = this.helper.DeclareLocal("$$$iterContent", typeof(NodeKindContentIterator)); 1819this.helper.Emit(OpCodes.Ldloca, locIter); 1821this.helper.LoadInteger((int) QilXmlToXPathNodeType(kinds)); 1822this.helper.Call(XmlILMethods.KindContentCreate); 1889Label lblOnEnd = this.helper.DefineLabel(); 1890Label lblLookup = this.helper.DefineLabel(); 1896LocalBuilder locIndex = this.helper.DeclareLocal("$$$index", typeof(XmlILIndex)); 1897this.helper.LoadQueryRuntime(); 1898this.helper.Emit(OpCodes.Ldarg_1); 1899this.helper.LoadInteger(this.indexId); 1900this.helper.Emit(OpCodes.Ldloca, locIndex); 1901this.helper.Call(XmlILMethods.FindIndex); 1902this.helper.Emit(OpCodes.Brtrue, lblLookup); 1905this.helper.LoadQueryRuntime(); 1906this.helper.Emit(OpCodes.Ldarg_1); 1907this.helper.LoadInteger(this.indexId); 1908this.helper.Emit(OpCodes.Ldloc, locIndex); 1922this.helper.Call(XmlILMethods.IndexAdd); 1923this.helper.Emit(OpCodes.Ldloc, locIndex); 1931this.helper.Call(XmlILMethods.AddNewIndex); 1935this.helper.MarkLabel(lblLookup); 1936this.helper.Emit(OpCodes.Ldloc, locIndex); 1937this.helper.Emit(OpCodes.Ldarg_2); 1938this.helper.Call(XmlILMethods.IndexLookup); 1958this.helper.DebugSequencePoint(ndIter.SourceLine); 1992locPos = this.helper.DeclareLocal("$$$pos", typeof(int)); 1993this.helper.Emit(OpCodes.Ldc_I4_0); 1994this.helper.Emit(OpCodes.Stloc, locPos); 2003this.helper.DebugStartScope(); 2016this.helper.Emit(OpCodes.Ldloc, locPos); 2017this.helper.Emit(OpCodes.Ldc_I4_1); 2018this.helper.Emit(OpCodes.Add); 2019this.helper.Emit(OpCodes.Stloc, locPos); 2023this.helper.Emit(OpCodes.Ldloc, locPos); 2024this.helper.LoadInteger((int) patt.GetArgument(OptimizerPatternArgument.MaxPosition)); 2025this.helper.Emit(OpCodes.Bgt, this.iterCurr.ParentIterator.GetLabelNext()); 2050this.helper.DebugStartScope(); 2072this.helper.DebugEndScope(); 2096Label lblOnEndSort = this.helper.DefineLabel(); 2102locCache = this.helper.DeclareLocal("$$$cache", methods.SeqType); 2103this.helper.Emit(OpCodes.Ldloc, locCache); 2104this.helper.CallToken(methods.SeqReuse); 2105this.helper.Emit(OpCodes.Stloc, locCache); 2106this.helper.Emit(OpCodes.Ldloc, locCache); 2110locKeys = this.helper.DeclareLocal("$$$keys", typeof(XmlSortKeyAccumulator)); 2111this.helper.Emit(OpCodes.Ldloca, locKeys); 2112this.helper.Call(XmlILMethods.SortKeyCreate); 2123this.helper.Call(methods.SeqAdd); 2125this.helper.Emit(OpCodes.Ldloca, locKeys); 2132this.helper.Call(XmlILMethods.SortKeyFinish); 2135this.helper.Emit(OpCodes.Ldloc, locCache); 2139this.helper.Emit(OpCodes.Pop); 2142this.helper.Emit(OpCodes.Ldloc, locCache); 2143this.helper.Emit(OpCodes.Ldloca, locKeys); 2144this.helper.Call(XmlILMethods.SortKeyKeys); 2145this.helper.Call(methods.SeqSortByKeys); 2164this.helper.Emit(OpCodes.Ldloca, locKeys); 2167this.helper.CallGetCollation(this.helper.StaticData.DeclareCollation((string) (QilLiteral) ndKey.Collation)); 2171this.helper.LoadQueryRuntime(); 2173this.helper.Call(XmlILMethods.CreateCollation); 2180this.helper.AddSortKey(ndKey.Key.XmlType); 2183lblOnEndKey = this.helper.DefineLabel(); 2191this.helper.AddSortKey(ndKey.Key.XmlType); 2195Label lblDone = this.helper.DefineLabel(); 2196this.helper.EmitUnconditionalBranch(OpCodes.Br_S, lblDone); 2197this.helper.MarkLabel(lblOnEndKey); 2201this.helper.AddSortKey(null); 2203this.helper.MarkLabel(lblDone); 2223this.helper.LoadQueryRuntime(); 2226this.helper.Call(XmlILMethods.DocOrder); 2324LocalBuilder locMerge = this.helper.DeclareLocal("$$$dodMerge", typeof(DodSequenceMerge)); 2325Label lblOnEnd = this.helper.DefineLabel(); 2328this.helper.Emit(OpCodes.Ldloca, locMerge); 2329this.helper.LoadQueryRuntime(); 2330this.helper.Call(XmlILMethods.DodMergeCreate); 2331this.helper.Emit(OpCodes.Ldloca, locMerge); 2341this.helper.Call(XmlILMethods.DodMergeAdd); 2342this.helper.Emit(OpCodes.Ldloca, locMerge); 2350this.helper.Call(XmlILMethods.DodMergeSeq); 2370this.helper.LoadQueryRuntime(); 2381this.helper.TailCall(methInfo); 2383this.helper.Call(methInfo); 2413LocalBuilder locNav = this.helper.DeclareLocal("$$$navAttr", typeof(XPathNavigator)); 2419this.helper.Emit(OpCodes.Ldloc, locNav); 2420this.helper.CallGetAtomizedName(this.helper.StaticData.DeclareName(ndName.LocalName)); 2421this.helper.CallGetAtomizedName(this.helper.StaticData.DeclareName(ndName.NamespaceUri)); 2422this.helper.Call(XmlILMethods.NavMoveAttr); 2423this.helper.Emit(OpCodes.Brfalse, this.iterCurr.GetLabelNext()); 2434LocalBuilder locNav = this.helper.DeclareLocal("$$$navParent", typeof(XPathNavigator)); 2440this.helper.Emit(OpCodes.Ldloc, locNav); 2441this.helper.Call(XmlILMethods.NavMoveParent); 2442this.helper.Emit(OpCodes.Brfalse, this.iterCurr.GetLabelNext()); 2453LocalBuilder locNav = this.helper.DeclareLocal("$$$navRoot", typeof(XPathNavigator)); 2459this.helper.Emit(OpCodes.Ldloc, locNav); 2460this.helper.Call(XmlILMethods.NavMoveRoot); 2474this.helper.LoadQueryContext(); 2475this.helper.Call(XmlILMethods.GetDefaultDataSource); 2557LocalBuilder locIter = this.helper.DeclareLocal("$$$iterId", typeof(IdIterator)); 2560this.helper.Emit(OpCodes.Ldloca, locIter); 2563this.helper.Call(XmlILMethods.IdCreate); 2599this.helper.CallWriteStartElement(nameType, callChk); 2606this.helper.CallStartElementContent(); 2610this.helper.CallWriteEndElement(nameType, callChk); 2640this.helper.CallWriteStartAttribute(nameType, callChk); 2646this.helper.CallWriteEndAttribute(callChk); 2662this.helper.CallWriteStartComment(); 2668this.helper.CallWriteEndComment(); 2681this.helper.LoadQueryOutput(); 2683this.helper.CallWriteStartPI(); 2689this.helper.CallWriteEndPI(); 2733this.helper.LoadQueryOutput(); 2742this.helper.CallWriteString(false, callChk); 2747this.helper.Call(XmlILMethods.CommentText); 2752this.helper.Call(XmlILMethods.PIText); 2757this.helper.CallWriteString(disableOutputEscaping, callChk); 2775this.helper.CallWriteStartRoot(); 2781this.helper.CallWriteEndRoot(); 2806this.helper.LoadQueryOutput(); 2813this.helper.CallWriteNamespaceDecl(callChk); 2831this.helper.LoadQueryRuntime(); 2833this.helper.Emit(OpCodes.Ldstr, baseUri); 2834this.helper.Call(XmlILMethods.RtfConstr); 2838this.helper.CallStartRtfConstruction(baseUri); 2844this.helper.CallEndRtfConstruction(); 2889this.helper.Emit(OpCodes.Dup); 2890this.helper.Call(XmlILMethods.NavLocalName); 2891this.helper.Call(XmlILMethods.NavNmsp); 2892this.helper.Construct(XmlILConstructors.QName); 2898this.helper.Call(XmlILMethods.NavLocalName); 2904this.helper.Call(XmlILMethods.NavNmsp); 2910this.helper.Call(XmlILMethods.NavPrefix); 2933Label lblDummy = this.helper.DefineLabel(); 2934this.helper.MarkLabel(lblDummy); 2963this.helper.Call(XmlILMethods.ItemIsNode); 2982this.helper.LoadQueryRuntime(); 2984this.helper.LoadInteger((int) codeBase); 2985this.helper.Call(typDerived.IsSingleton ? XmlILMethods.ItemMatchesCode : XmlILMethods.SeqMatchesCode); 2992this.helper.LoadQueryRuntime(); 2994this.helper.LoadInteger(this.helper.StaticData.DeclareXmlType(typBase)); 2995this.helper.Call(typDerived.IsSingleton ? XmlILMethods.ItemMatchesType : XmlILMethods.SeqMatchesType); 3056this.helper.Emit(OpCodes.Ldc_I4_1); 3063this.helper.Call(XmlILMethods.NavType); 3067this.helper.Emit(OpCodes.Shl); 3080this.helper.LoadInteger(kindsUnion); 3081this.helper.Emit(OpCodes.And); 3086this.helper.LoadInteger((int) kindsRuntime); 3123this.helper.CallCacheCount(this.iterNested.Storage.ItemStorageType); 3128this.helper.TestAndBranch(0, this.iterCurr.LabelBranch, OpCodes.Bne_Un); 3133this.helper.TestAndBranch(0, this.iterCurr.LabelBranch, OpCodes.Beq); 3140lblTrue = this.helper.DefineLabel(); 3141this.helper.Emit(OpCodes.Brfalse_S, lblTrue); 3144this.helper.ConvBranchToBool(lblTrue, true); 3149Label lblOnEnd = this.helper.DefineLabel(); 3167this.helper.EmitUnconditionalBranch(OpCodes.Br, iterParent.LabelBranch); 3168this.helper.MarkLabel(lblOnEnd); 3177this.helper.ConvBranchToBool(lblOnEnd, true); 3206this.helper.Call(XmlILMethods.Value); 3209lblOnEnd = this.helper.DefineLabel(); 3217this.helper.Call(XmlILMethods.Value); 3220lblDone = this.helper.DefineLabel(); 3221this.helper.EmitUnconditionalBranch(OpCodes.Br, lblDone); 3222this.helper.MarkLabel(lblOnEnd); 3223this.helper.Emit(OpCodes.Ldstr, ""); 3224this.helper.MarkLabel(lblDone); 3267this.helper.LoadQueryRuntime(); 3275this.helper.Call(XmlILMethods.GenId); 3278lblOnEnd = this.helper.DefineLabel(); 3287this.helper.Call(XmlILMethods.GenId); 3290lblDone = this.helper.DefineLabel(); 3291this.helper.EmitUnconditionalBranch(OpCodes.Br, lblDone); 3292this.helper.MarkLabel(lblOnEnd); 3293this.helper.Emit(OpCodes.Pop); 3294this.helper.Emit(OpCodes.Ldstr, ""); 3295this.helper.MarkLabel(lblDone); 3310LocalBuilder locArgs = this.helper.DeclareLocal("$$$args", typeof(IList<XPathItem>[])); 3315this.helper.LoadQueryContext(); 3316this.helper.Emit(OpCodes.Ldstr, ndName.LocalName); 3317this.helper.Emit(OpCodes.Ldstr, ndName.NamespaceUri); 3320this.helper.LoadInteger(ndInvoke.Arguments.Count); 3321this.helper.Emit(OpCodes.Newarr, typeof(IList<XPathItem>)); 3322this.helper.Emit(OpCodes.Stloc, locArgs); 3330this.helper.Emit(OpCodes.Ldloc, locArgs); 3331this.helper.LoadInteger(iArg); 3332this.helper.Emit(OpCodes.Ldelema, typeof(IList<XPathItem>)); 3337this.helper.Emit(OpCodes.Stobj, typeof(IList<XPathItem>)); 3340this.helper.Emit(OpCodes.Ldloc, locArgs); 3342this.helper.Call(XmlILMethods.InvokeXsltLate); 3365this.helper.LoadQueryRuntime(); 3366this.helper.LoadInteger(this.helper.StaticData.DeclareXmlType(ndInvoke.XmlType)); 3373this.helper.LoadXsltLibrary(); 3375this.helper.CallGetEarlyBoundObject(this.helper.StaticData.DeclareEarlyBound(ndName.NamespaceUri, extFunc.Method.DeclaringType), extFunc.Method.DeclaringType); 3426this.helper.LoadQueryRuntime(); 3427this.helper.LoadInteger(this.helper.StaticData.DeclareXmlType(xmlTypeFormalArg)); 3429this.helper.TreatAs(clrTypeActualArg, typeof(object)); 3430this.helper.LoadType(clrTypeFormalArg); 3431this.helper.Call(XmlILMethods.ChangeTypeXsltArg); 3432this.helper.TreatAs(typeof(object), clrTypeFormalArg); 3441this.helper.Call(extFunc.Method); 3445this.helper.Emit(OpCodes.Ldsfld, XmlILMethods.StorageMethods[typeof(XPathItem)].SeqEmpty); 3449this.helper.TreatAs(clrTypeRetSrc, typeof(object)); 3450this.helper.Call(XmlILMethods.ChangeTypeXsltResult); 3451this.helper.TreatAs(typeof(object), clrTypeRetDst); 3455Label lblSkip = this.helper.DefineLabel(); 3456this.helper.Emit(OpCodes.Dup); 3457this.helper.Emit(OpCodes.Brtrue, lblSkip); 3458this.helper.LoadQueryRuntime(); 3459this.helper.Emit(OpCodes.Ldstr, Res.GetString(Res.Xslt_ItemNull)); 3460this.helper.Call(XmlILMethods.ThrowException); 3461this.helper.MarkLabel(lblSkip); 3473Label lblSkipContent = this.helper.DefineLabel(); 3477this.helper.LoadQueryOutput(); 3482this.helper.Call(XmlILMethods.StartCopy); 3483this.helper.Emit(OpCodes.Brfalse, lblSkipContent); 3489this.helper.LoadQueryOutput(); 3494this.helper.Call(XmlILMethods.EndCopy); 3497this.helper.MarkLabel(lblSkipContent); 3509this.helper.LoadQueryOutput(); 3513this.helper.Call(XmlILMethods.CopyOf); 3541this.helper.Call(meth); 3620this.helper.Emit(OpCodes.Ldloc, locNav); 3622this.helper.CallSyncToNavigator(); 3623this.helper.Emit(OpCodes.Stloc, locNav); 3638LocalBuilder locIter = this.helper.DeclareLocal(iterName, iterType); 3641this.helper.Emit(OpCodes.Ldloca, locIter); 3643this.helper.Call(methCreate); 3661LocalBuilder locIter = this.helper.DeclareLocal(iterName, iterType); 3664this.helper.Emit(OpCodes.Ldloca, locIter); 3668this.helper.LoadBoolean(orSelf == TriState.True); 3671this.helper.Call(methCreate); 3696LocalBuilder locIter = this.helper.DeclareLocal(iterName, iterType); 3702this.helper.Emit(OpCodes.Ldloca, locIter); 3705this.helper.LoadBoolean(orSelf == TriState.True); 3706this.helper.Call(methCreate); 3709lblOnEndNested = this.helper.DefineLabel(); 3733lblNext = this.helper.DefineLabel(); 3734this.helper.MarkLabel(lblNext); 3737this.helper.Emit(OpCodes.Ldloca, locIter); 3738this.helper.Call(methNext); 3739this.helper.Emit(OpCodes.Brfalse, this.iterCurr.GetLabelNext()); 3764lblCall = this.helper.DefineLabel(); 3769this.helper.Emit(OpCodes.Ldloca, locIter); 3771this.helper.EmitUnconditionalBranch(OpCodes.Br, lblCall); 3775this.helper.MarkLabel(lblOnEndNested); 3776this.helper.Emit(OpCodes.Ldloca, locIter); 3777this.helper.Emit(OpCodes.Ldnull); 3781this.helper.MarkLabel(lblCall); 3782this.helper.Call(methNext); 3787this.helper.LoadInteger((int) IteratorResult.NeedInputNode); 3788this.helper.Emit(OpCodes.Beq, this.iterNested.GetLabelNext()); 3797this.helper.Emit(OpCodes.Switch, new Label[] {this.iterCurr.GetLabelNext(), this.iterNested.GetLabelNext()}); 3813this.helper.LoadQueryOutput(); 3833this.helper.Emit(OpCodes.Ldstr, ndLiteralName.LocalName); 3841this.helper.Emit(OpCodes.Ldstr, localName); 3842this.helper.Emit(OpCodes.Ldstr, ns); 3843this.helper.Construct(XmlILConstructors.QName); 3850this.helper.Emit(OpCodes.Ldstr, prefix); 3851this.helper.Emit(OpCodes.Ldstr, localName); 3852this.helper.Emit(OpCodes.Ldstr, ns); 3938this.helper.LoadQueryRuntime(); 3946this.helper.LoadInteger(this.helper.StaticData.DeclareName(ndName.LocalName)); 3947this.helper.LoadInteger(this.helper.StaticData.DeclareName(ndName.NamespaceUri)); 3950this.helper.Call(XmlILMethods.QNameEqualLit); 3958this.helper.Call(XmlILMethods.QNameEqualNav); 4007this.helper.Emit(opcode, this.iterCurr.LabelBranch); 4021this.helper.Emit(opcode, this.iterCurr.LabelBranch); 4028case QilNodeType.Gt: this.helper.Emit(OpCodes.Cgt); break; 4029case QilNodeType.Lt: this.helper.Emit(OpCodes.Clt); break; 4030case QilNodeType.Eq: this.helper.Emit(OpCodes.Ceq); break; 4040lblTrue = this.helper.DefineLabel(); 4041this.helper.Emit(opcode, lblTrue); 4042this.helper.ConvBranchToBool(lblTrue, true); 4063this.helper.Emit((relOp == QilNodeType.Eq) ? OpCodes.Brfalse : OpCodes.Brtrue, this.iterCurr.LabelBranch); 4070this.helper.Emit((relOp == QilNodeType.Eq) ? OpCodes.Brtrue : OpCodes.Brfalse, this.iterCurr.LabelBranch); 4081lblTrue = this.helper.DefineLabel(); 4082this.helper.Emit((relOp == QilNodeType.Eq) ? OpCodes.Brfalse : OpCodes.Brtrue, lblTrue); 4083this.helper.ConvBranchToBool(lblTrue, true); 4109lblOnEnd = this.helper.DefineLabel(); 4172this.helper.CallStartTree(QilConstructorToNodeType(ndCtor.NodeType)); 4184this.helper.CallStartElementContent(); 4199this.helper.CallEndTree(); 4272this.helper.CallGetNameFilter(this.helper.StaticData.DeclareNameFilter(ndName.LocalName, ndName.NamespaceUri)); 4282this.helper.CallGetTypeFilter(XPathNodeType.All); 4286this.helper.CallGetTypeFilter(XPathNodeType.Attribute); 4291this.helper.CallGetTypeFilter(QilXmlToXPathNodeType(xmlTypes)); 4314this.iterCurr = new IteratorDescriptor(this.helper); 4351this.helper.Emit(OpCodes.Brtrue, this.iterCurr.LabelBranch); 4353this.helper.Emit(OpCodes.Brfalse, this.iterCurr.LabelBranch); 4470Label lblOnEnd = this.helper.DefineLabel(); 4501locCache = this.helper.DeclareLocal("$$$cache", methods.SeqType); 4502this.helper.Emit(OpCodes.Ldloc, locCache); 4508this.helper.CallToken(methods.SeqReuseSgl); 4509this.helper.Emit(OpCodes.Stloc, locCache); 4514this.helper.CallToken(methods.SeqReuse); 4515this.helper.Emit(OpCodes.Stloc, locCache); 4516this.helper.Emit(OpCodes.Ldloc, locCache); 4528this.helper.Call(methods.SeqAdd); 4529this.helper.Emit(OpCodes.Ldloc, locCache); 4537this.helper.Emit(OpCodes.Pop);