2003-03-11 Alan Tam <Tam@SiuLung.com>
authorAlan Tam <alantam@mono-cvs.ximian.com>
Mon, 10 Mar 2003 16:19:02 +0000 (16:19 -0000)
committerAlan Tam <alantam@mono-cvs.ximian.com>
Mon, 10 Mar 2003 16:19:02 +0000 (16:19 -0000)
        * XslTransform.cs: Fixed a bug when no args is passed

svn path=/trunk/mcs/; revision=12406

mcs/class/System.XML/System.Xml.Xsl/ChangeLog
mcs/class/System.XML/System.Xml.Xsl/XslTransform.cs

index 7d8fba63a294df8734f2d8da004fc8f1e24d792e..9b4ea7089414af47c94e7675544c873291bad969 100644 (file)
@@ -1,3 +1,7 @@
+2003-03-10  Alan Tam <Tam@SiuLung.com>
+
+       * XslTransform.cs: Fixed a bug when no args is passed
+
 2003-03-10  Alan Tam <Tam@SiuLung.com>
 
        * XslTransform.cs: Implemented boolean, number and string parameters.
index 04140b752355f08677705066d33afacaa24e7ecd..f3e6c2347f35c8ab5a44731aa52b82fc5ab8bf00 100644 (file)
@@ -257,19 +257,22 @@ namespace System.Xml.Xsl
                public XmlReader Transform (XPathNavigator input, XsltArgumentList args)\r
                {\r
                        IntPtr xmlInput = GetDocumentFromNavigator (input);\r
-                       string[] argArr = new string[args.parameters.Count * 2 + 1];\r
-                       int index = 0;\r
-                       foreach (object key in args.parameters.Keys) {\r
-                               argArr [index++] = key.ToString();\r
-                               object value = args.parameters [key];\r
-                               if (value is Boolean)\r
-                                       argArr [index++] = XmlConvert.ToString((bool) value); // FIXME: How to encode it for libxslt?\r
-                               else if (value is Double)\r
-                                       argArr [index++] = XmlConvert.ToString((double) value); // FIXME: How to encode infinity's and Nan?\r
-                               else\r
-                                       argArr [index++] = "'" + value.ToString() + "'"; // FIXME: How to encode "'"?\r
+                       string[] argArr = null;\r
+                        if (args != null) {\r
+                               argArr = new string[args.parameters.Count * 2 + 1];\r
+                               int index = 0;\r
+                               foreach (object key in args.parameters.Keys) {\r
+                                       argArr [index++] = key.ToString();\r
+                                       object value = args.parameters [key];\r
+                                       if (value is Boolean)\r
+                                               argArr [index++] = XmlConvert.ToString((bool) value); // FIXME: How to encode it for libxslt?\r
+                                       else if (value is Double)\r
+                                               argArr [index++] = XmlConvert.ToString((double) value); // FIXME: How to encode infinity's and Nan?\r
+                                       else\r
+                                               argArr [index++] = "'" + value.ToString() + "'"; // FIXME: How to encode "'"?\r
+                               }\r
+                               argArr[index] = null;\r
                        }\r
-                       argArr[index] = null;\r
                        string xslOutputString = ApplyStylesheetAndGetString (xmlInput, argArr);\r
                        xmlFreeDoc (xmlInput);\r
                        Cleanup ();\r
@@ -326,19 +329,22 @@ namespace System.Xml.Xsl
                                throw new ArgumentNullException ("output");\r
 \r
                        IntPtr inputDoc = GetDocumentFromNavigator (input);\r
-                       string[] argArr = new string[args.parameters.Count * 2 + 1];\r
-                       int index = 0;\r
-                       foreach (object key in args.parameters.Keys) {\r
-                               argArr [index++] = key.ToString();\r
-                               object value = args.parameters [key];\r
-                               if (value is Boolean)\r
-                                       argArr [index++] = XmlConvert.ToString((bool) value); // FIXME: How to encode it for libxslt?\r
-                               else if (value is Double)\r
-                                       argArr [index++] = XmlConvert.ToString((double) value); // FIXME: How to encode infinity's and Nan?\r
-                               else\r
-                                       argArr [index++] = "'" + value.ToString() + "'"; // FIXME: How to encode "'"?\r
+                       string[] argArr = null;\r
+                        if (args != null) {\r
+                               argArr = new string[args.parameters.Count * 2 + 1];\r
+                               int index = 0;\r
+                               foreach (object key in args.parameters.Keys) {\r
+                                       argArr [index++] = key.ToString();\r
+                                       object value = args.parameters [key];\r
+                                       if (value is Boolean)\r
+                                               argArr [index++] = XmlConvert.ToString((bool) value); // FIXME: How to encode it for libxslt?\r
+                                       else if (value is Double)\r
+                                               argArr [index++] = XmlConvert.ToString((double) value); // FIXME: How to encode infinity's and Nan?\r
+                                       else\r
+                                               argArr [index++] = "'" + value.ToString() + "'"; // FIXME: How to encode "'"?\r
+                               }\r
+                               argArr[index] = null;\r
                        }\r
-                       argArr[index] = null;\r
                        string transform = ApplyStylesheetAndGetString (inputDoc, argArr);\r
                        xmlFreeDoc (inputDoc);\r
                        Cleanup ();\r