Update of /cvsroot/mvp-xml/Common/v2/src/XPath
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21156/v2/src/XPath
Modified Files:
DynamicContext.cs IndexingXPathNavigator.cs XPathCache.cs
Log Message:
Index: DynamicContext.cs
===================================================================
RCS file: /cvsroot/mvp-xml/Common/v2/src/XPath/DynamicContext.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- DynamicContext.cs 25 Oct 2005 21:33:44 -0000 1.2
+++ DynamicContext.cs 28 Oct 2005 20:01:47 -0000 1.3
@@ -210,7 +210,9 @@
/// </summary>
public override IXsltContextVariable ResolveVariable(string prefix, string name)
{
- return _variables[name];
+ IXsltContextVariable var;
+ _variables.TryGetValue(name, out var);
+ return var;
}
#endregion Variable Handling Code
Index: XPathCache.cs
===================================================================
RCS file: /cvsroot/mvp-xml/Common/v2/src/XPath/XPathCache.cs,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- XPathCache.cs 26 Oct 2005 15:08:29 -0000 1.3
+++ XPathCache.cs 28 Oct 2005 20:01:47 -0000 1.4
@@ -41,23 +41,19 @@
/// <summary>
/// Retrieves a cached compiled expression, or a newly compiled one.
/// </summary>
- private static XPathExpression GetCompiledExpression(string expression, XPathNavigator source)
- {
- XPathExpression expr;
+ private static XPathExpression GetCompiledExpression(string expression, XPathNavigator source)
+ {
+ XPathExpression expr;
- if (Cache.ContainsKey(expression))
- {
- expr = Cache[expression];
- }
- else
- {
- // No double checks. At most we will compile twice. No big deal.
- expr = source.Compile(expression);
- Cache[expression] = expr;
- }
+ if (!Cache.TryGetValue(expression, out expr))
+ {
+ // No double checks. At most we will compile twice. No big deal.
+ expr = source.Compile(expression);
+ Cache[expression] = expr;
+ }
- return expr.Clone();
- }
+ return expr.Clone();
+ }
/// <summary>
/// Sets up the context for expression execution.
Index: IndexingXPathNavigator.cs
===================================================================
RCS file: /cvsroot/mvp-xml/Common/v2/src/XPath/IndexingXPathNavigator.cs,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- IndexingXPathNavigator.cs 26 Oct 2005 16:15:42 -0000 1.3
+++ IndexingXPathNavigator.cs 28 Oct 2005 20:01:47 -0000 1.4
@@ -687,15 +687,11 @@
{
//Get slot
List<XPathNavigator> indexedNodes;
- if (index.ContainsKey(key))
- {
- indexedNodes = index[key];
- }
- else
+ if (!index.TryGetValue(key, out indexedNodes))
{
indexedNodes = new List<XPathNavigator>();
index.Add(key, indexedNodes);
- }
+ }
indexedNodes.Add(node.Clone());
}
}
@@ -727,15 +723,11 @@
if (indexes == null)
indexes = new Dictionary<string, XPathNavigatorIndex>();
XPathNavigatorIndex index;
- if (indexes.ContainsKey(indexName))
- {
- index = indexes[indexName];
- }
- else
+ if (!indexes.TryGetValue(indexName, out index))
{
- index = new XPathNavigatorIndex();
- indexes.Add(indexName, index);
- }
+ index = new XPathNavigatorIndex();
+ indexes.Add(indexName, index);
+ }
index.AddKey(key);
}
@@ -793,7 +785,8 @@
{
if (!indexed)
BuildIndexes();
- XPathNavigatorIndex index = indexes[indexName];
+ XPathNavigatorIndex index;
+ indexes.TryGetValue(indexName, out index);
return index == null? null : index.GetNodes(value);
}
}
|