2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Sat, 6 Nov 2004 12:55:33 +0000 (12:55 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Sat, 6 Nov 2004 12:55:33 +0000 (12:55 -0000)
* 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
mcs/class/System.XML/System.Xml.XPath/Expression.cs
mcs/class/System.XML/System.Xml.XPath/XPathNavigator.cs

index 8cb3e01d28c585452e42790bc4625e81342eb2d1..7ce018163a2b2f58253606149ad4862a886b2897 100644 (file)
@@ -1,3 +1,8 @@
+2004-11-05  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Expression.cs, XPathNavigator.cs : hold raw expression field for
+         get_Expression. It is preparation for expression optimization.
+
 2004-11-05  Atsushi Enomoto  <atsushi@ximian.com>
 
        * Iterator.cs : SimpleIterator._current could be cloned only when
index 4d3ece5ee1d32dd896933291d8f10eef2f2af43e..309cbb8fac3082b8f468a1c5674f0f3b88fdf4e0 100644 (file)
@@ -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)
index a03ab7060c34b369872dea8fb27cd34701ad003c..e1fb925ff30a7342fdeaa36491ba7c6f074c01f4 100644 (file)
@@ -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)