From 7e940e8ecf8037d6b746a95f88268fbfefce377f Mon Sep 17 00:00:00 2001 From: Atsushi Eno Date: Sat, 6 Nov 2004 12:55:33 +0000 Subject: [PATCH 1/1] 2004-11-05 Atsushi Enomoto * Expression.cs, XPathNavigator.cs : hold raw expression field for get_Expression. It is preparation for expression optimization. svn path=/trunk/mcs/; revision=35767 --- mcs/class/System.XML/System.Xml.XPath/ChangeLog | 5 +++++ mcs/class/System.XML/System.Xml.XPath/Expression.cs | 7 +++++-- mcs/class/System.XML/System.Xml.XPath/XPathNavigator.cs | 4 ++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/mcs/class/System.XML/System.Xml.XPath/ChangeLog b/mcs/class/System.XML/System.Xml.XPath/ChangeLog index 8cb3e01d28c..7ce018163a2 100644 --- a/mcs/class/System.XML/System.Xml.XPath/ChangeLog +++ b/mcs/class/System.XML/System.Xml.XPath/ChangeLog @@ -1,3 +1,8 @@ +2004-11-05 Atsushi Enomoto + + * Expression.cs, XPathNavigator.cs : hold raw expression field for + get_Expression. It is preparation for expression optimization. + 2004-11-05 Atsushi Enomoto * Iterator.cs : SimpleIterator._current could be cloned only when diff --git a/mcs/class/System.XML/System.Xml.XPath/Expression.cs b/mcs/class/System.XML/System.Xml.XPath/Expression.cs index 4d3ece5ee1d..309cbb8fac3 100644 --- a/mcs/class/System.XML/System.Xml.XPath/Expression.cs +++ b/mcs/class/System.XML/System.Xml.XPath/Expression.cs @@ -53,15 +53,18 @@ namespace System.Xml.XPath protected NSResolver _nsm; protected Expression _expr; XPathSorters _sorters; + string rawExpression; - public CompiledExpression (Expression expr) + public CompiledExpression (string raw, Expression expr) { _expr = expr; + rawExpression = raw; } private CompiledExpression (CompiledExpression other) { _nsm = other._nsm; _expr = other._expr; + rawExpression = other.rawExpression; } #if XPATH_DEBUG public override Test.Xml.XPath.XPathExpression Clone () { return new CompiledExpression (this); } @@ -84,7 +87,7 @@ namespace System.Xml.XPath #endif internal NSResolver NamespaceManager { get { return _nsm; } } - public override String Expression { get { return _expr.ToString (); }} + public override String Expression { get { return rawExpression; }} public override XPathResultType ReturnType { get { return _expr.ReturnType; }} public object Evaluate (BaseIterator iter) diff --git a/mcs/class/System.XML/System.Xml.XPath/XPathNavigator.cs b/mcs/class/System.XML/System.Xml.XPath/XPathNavigator.cs index a03ab7060c3..e1fb925ff30 100644 --- a/mcs/class/System.XML/System.Xml.XPath/XPathNavigator.cs +++ b/mcs/class/System.XML/System.Xml.XPath/XPathNavigator.cs @@ -224,13 +224,13 @@ namespace System.Xml.XPath public virtual XPathExpression Compile (string xpath) { XPathParser parser = new XPathParser (); - return new CompiledExpression (parser.Compile (xpath)); + return new CompiledExpression (xpath, parser.Compile (xpath)); } internal virtual XPathExpression Compile (string xpath, System.Xml.Xsl.IStaticXsltContext ctx) { XPathParser parser = new XPathParser (ctx); - return new CompiledExpression (parser.Compile (xpath)); + return new CompiledExpression (xpath, parser.Compile (xpath)); } public virtual object Evaluate (string xpath) -- 2.25.1