Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog21
-rw-r--r--Makefile.am5
-rw-r--r--config.h.in51
-rw-r--r--data/.cvsignore4
-rw-r--r--doc/bugs69
-rw-r--r--doc/download93
-rw-r--r--doc/index15
-rwxr-xr-xdoc/mysql10
-rw-r--r--doc/pending-classes.in246
-rw-r--r--doc/web/makefile16
-rw-r--r--doc/web/team.xml2
-rw-r--r--doc/web/template.html.in24
-rw-r--r--mcs/class/PEAPI/ChangeLog5
-rw-r--r--mcs/class/PEAPI/PEAPI.cs2
-rw-r--r--mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciParameterDescriptor.cs61
-rw-r--r--mcs/class/System.Data.OracleClient/System.Data.OracleClient/OracleDataReader.cs6
-rw-r--r--mcs/class/System.Data/System.Data.SqlClient/SqlDataReader.cs20
-rw-r--r--mcs/class/System.Drawing/System.Drawing/ChangeLog5
-rw-r--r--mcs/class/System.Drawing/System.Drawing/Color.cs2
-rw-r--r--mcs/class/System.Runtime.Remoting/ChangeLog4
-rw-r--r--mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Http/HttpClientChannel.cs3
-rw-r--r--mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Http/HttpServerChannel.cs3
-rw-r--r--mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog20
-rw-r--r--mcs/class/System.Web/System.Web.UI.WebControls/HyperLinkColumn.cs66
-rw-r--r--mcs/class/System.Web/System.Web.UI.WebControls/ListControl.cs45
-rw-r--r--mcs/class/System.Web/System.Web.UI.WebControls/Style.cs173
-rwxr-xr-xmcs/class/System.Web/System.Web.UI.WebControls/WebControl.cs57
-rwxr-xr-xmcs/class/System.Web/System.Web.UI/BaseParser.cs2
-rw-r--r--mcs/class/System.Web/System.Web.UI/ChangeLog17
-rw-r--r--mcs/class/System.Web/System.Web.UI/Control.cs130
-rwxr-xr-xmcs/class/System.Web/System.Web.UI/ControlCollection.cs12
-rwxr-xr-xmcs/class/System.Web/System.Web.UI/EmptyControlCollection.cs2
-rwxr-xr-xmcs/class/System.Web/System.Web.UI/Page.cs2
-rw-r--r--mcs/class/System.Web/System.Web.UI/UserControlParser.cs4
-rw-r--r--mcs/class/System.Web/System.Web/ChangeLog22
-rw-r--r--mcs/class/System.Web/System.Web/HttpException.cs6
-rw-r--r--mcs/class/System.Web/System.Web/HttpResponse.cs24
-rw-r--r--mcs/class/System.Web/System.Web/HttpRuntime.cs1
-rw-r--r--mcs/class/System.Web/System.Web/HttpServerUtility.cs2
-rw-r--r--mcs/class/System.Web/System.Web/StaticFileHandler.cs16
-rw-r--r--mcs/class/System.XML/ChangeLog13
-rw-r--r--mcs/class/System.XML/Mono.Xml.XPath/ChangeLog8
-rw-r--r--mcs/class/System.XML/Mono.Xml.XPath/DTMXPathDocument.cs39
-rw-r--r--mcs/class/System.XML/Mono.Xml.XPath/DTMXPathDocumentBuilder.cs43
-rw-r--r--mcs/class/System.XML/Mono.Xml.XPath/DTMXPathNavigator.cs50
-rw-r--r--mcs/class/System.XML/Mono.Xml.Xsl.Operations/ChangeLog57
-rw-r--r--mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslApplyTemplates.cs42
-rw-r--r--mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslCallTemplate.cs30
-rw-r--r--mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslComment.cs47
-rw-r--r--mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslCopyOf.cs24
-rw-r--r--mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslFallback.cs2
-rw-r--r--mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslLiteralElement.cs5
-rw-r--r--mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslMessage.cs3
-rw-r--r--mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslNumber.cs291
-rw-r--r--mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslProcessingInstruction.cs7
-rw-r--r--mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslTemplateContent.cs19
-rw-r--r--mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslVariable.cs4
-rw-r--r--mcs/class/System.XML/Mono.Xml.Xsl/ChangeLog62
-rw-r--r--mcs/class/System.XML/Mono.Xml.Xsl/Compiler.cs108
-rw-r--r--mcs/class/System.XML/Mono.Xml.Xsl/Outputter.cs60
-rw-r--r--mcs/class/System.XML/Mono.Xml.Xsl/TextOutputter.cs55
-rw-r--r--mcs/class/System.XML/Mono.Xml.Xsl/XmlOutputter.cs86
-rw-r--r--mcs/class/System.XML/Mono.Xml.Xsl/XslOutput.cs67
-rw-r--r--mcs/class/System.XML/Mono.Xml.Xsl/XslStylesheet.cs14
-rw-r--r--mcs/class/System.XML/Mono.Xml.Xsl/XslTransformProcessor.cs43
-rw-r--r--mcs/class/System.XML/Mono.Xml.Xsl/XsltCompiledContext.cs76
-rw-r--r--mcs/class/System.XML/Mono.Xml/ChangeLog4
-rw-r--r--mcs/class/System.XML/Mono.Xml/IHasXmlSchemaInfo.cs19
-rw-r--r--mcs/class/System.XML/System.Xml.Xsl/ChangeLog22
-rw-r--r--mcs/class/System.XML/System.Xml.Xsl/ManagedXslTransform.cs43
-rw-r--r--mcs/class/System.XML/System.Xml.Xsl/Multiplexer.cs58
-rw-r--r--mcs/class/System.XML/System.Xml.Xsl/XslTransform.cs9
-rw-r--r--mcs/class/System.XML/System.Xml.Xsl/XslTransformImpl.cs18
-rwxr-xr-xmcs/class/System.XML/System.Xml.dll.sources6
-rw-r--r--mcs/class/System.XML/System.Xml/ChangeLog53
-rw-r--r--mcs/class/System.XML/System.Xml/DTDObjectModel.cs1
-rw-r--r--mcs/class/System.XML/System.Xml/DTDValidatingReader.cs13
-rw-r--r--mcs/class/System.XML/System.Xml/HighWaterStack.cs104
-rw-r--r--mcs/class/System.XML/System.Xml/XmlChar.cs6
-rw-r--r--mcs/class/System.XML/System.Xml/XmlDocumentNavigator.cs2
-rw-r--r--mcs/class/System.XML/System.Xml/XmlNamespaceManager.cs182
-rwxr-xr-xmcs/class/System.XML/System.Xml/XmlNodeReader.cs9
-rw-r--r--mcs/class/System.XML/System.Xml/XmlParserContext.cs64
-rw-r--r--mcs/class/System.XML/System.Xml/XmlReader.cs7
-rw-r--r--mcs/class/System.XML/System.Xml/XmlTextReader.cs68
-rw-r--r--mcs/class/System.XML/System.Xml/XmlTextWriter.cs88
-rwxr-xr-xmcs/class/System.XML/System.Xml/XmlUrlResolver.cs32
-rw-r--r--mcs/class/System.XML/System.Xml/XmlValidatingReader.cs168
-rw-r--r--mcs/class/System/Microsoft.CSharp/CSharpCodeGenerator.cs98
-rw-r--r--mcs/class/System/Microsoft.CSharp/ChangeLog17
-rw-r--r--mcs/class/System/System.CodeDom/ChangeLog7
-rwxr-xr-xmcs/class/System/System.CodeDom/CodeTypeDeclaration.cs2
-rw-r--r--mcs/class/System/System.Net/ChangeLog4
-rw-r--r--mcs/class/System/System.Net/WebRequest.cs5
-rw-r--r--mcs/class/System/Test/System/ChangeLog5
-rw-r--r--mcs/class/System/Test/System/UriBuilderTest.cs34
-rw-r--r--mcs/class/corlib/ChangeLog4
-rw-r--r--mcs/class/corlib/Makefile2
-rw-r--r--mcs/class/corlib/System.Collections/ChangeLog9
-rw-r--r--mcs/class/corlib/System.Collections/Hashtable.cs2
-rw-r--r--mcs/class/corlib/System.Runtime.Remoting.Activation/AppDomainLevelActivator.cs2
-rw-r--r--mcs/class/corlib/System.Runtime.Remoting.Activation/ChangeLog6
-rw-r--r--mcs/class/corlib/System.Runtime.Remoting.Activation/ConstructionLevelActivator.cs2
-rw-r--r--mcs/class/corlib/System.Runtime.Remoting.Activation/ContextLevelActivator.cs2
-rw-r--r--mcs/class/corlib/System.Runtime.Remoting.Activation/RemoteActivationAttribute.cs2
-rw-r--r--mcs/class/corlib/System.Runtime.Remoting.Activation/RemoteActivator.cs48
-rw-r--r--mcs/class/corlib/System.Runtime.Remoting.Channels/ChangeLog5
-rw-r--r--mcs/class/corlib/System.Runtime.Remoting.Channels/ChannelServices.cs18
-rw-r--r--mcs/class/corlib/System.Runtime.Remoting.Lifetime/ChangeLog4
-rw-r--r--mcs/class/corlib/System.Runtime.Remoting.Lifetime/ClientSponsor.cs33
-rwxr-xr-xmcs/class/corlib/System.Runtime.Remoting.Messaging/CADMessages.cs7
-rw-r--r--mcs/class/corlib/System.Runtime.Remoting.Messaging/CallContext.cs66
-rw-r--r--mcs/class/corlib/System.Runtime.Remoting.Messaging/ChangeLog17
-rw-r--r--mcs/class/corlib/System.Runtime.Remoting.Messaging/LogicalCallContext.cs153
-rw-r--r--mcs/class/corlib/System.Runtime.Remoting.Messaging/MethodCall.cs1
-rw-r--r--mcs/class/corlib/System.Runtime.Remoting.Messaging/MonoMethodMessage.cs5
-rw-r--r--mcs/class/corlib/System.Runtime.Remoting.Proxies/ChangeLog4
-rw-r--r--mcs/class/corlib/System.Runtime.Remoting.Proxies/RemotingProxy.cs2
-rwxr-xr-xmcs/class/corlib/System.Runtime.Remoting/ChangeLog6
-rw-r--r--mcs/class/corlib/System.Runtime.Remoting/ObjRef.cs17
-rw-r--r--mcs/class/corlib/System.Runtime.Remoting/RemotingServices.cs19
-rw-r--r--mcs/class/corlib/System.Threading/ChangeLog5
-rwxr-xr-xmcs/class/corlib/System.Threading/Thread.cs2
-rw-r--r--mcs/class/corlib/Test/System.Diagnostics/ChangeLog5
-rw-r--r--mcs/class/corlib/Test/System.Diagnostics/StackFrameTest.cs5
-rw-r--r--mcs/ilasm/ChangeLog7
-rw-r--r--mcs/ilasm/Driver.cs29
-rw-r--r--mcs/ilasm/Report.cs64
-rw-r--r--mcs/ilasm/codegen/ChangeLog10
-rw-r--r--mcs/ilasm/codegen/IClassRef.cs6
-rw-r--r--mcs/ilasm/codegen/MethodDef.cs190
-rw-r--r--mcs/ilasm/codegen/ParamDef.cs12
-rw-r--r--mcs/ilasm/codegen/TypeDef.cs80
-rw-r--r--mcs/ilasm/ilasm.exe.sources1
-rw-r--r--mcs/ilasm/parser/ChangeLog4
-rw-r--r--mcs/ilasm/parser/ILParser.jay5
-rw-r--r--mono/arch/alpha/.cvsignore4
-rw-r--r--mono/arch/s390/.cvsignore4
-rw-r--r--mono/arch/sparc/sparc-codegen.h10
-rw-r--r--mono/interpreter/ChangeLog18
-rw-r--r--mono/interpreter/interp.c284
-rw-r--r--mono/interpreter/interp.h2
-rw-r--r--mono/metadata/.cvsignore1
-rw-r--r--mono/metadata/ChangeLog31
-rw-r--r--mono/metadata/NOTES113
-rw-r--r--mono/metadata/icall.c14
-rw-r--r--mono/metadata/loader.c14
-rw-r--r--mono/metadata/loader.h2
-rw-r--r--mono/metadata/rand.c5
-rw-r--r--mono/metadata/reflection.c101
-rw-r--r--mono/metadata/reflection.h3
-rw-r--r--mono/metadata/socket-io.c2
-rw-r--r--mono/mini/Makefile.am1
-rw-r--r--mono/profiler/.cvsignore7
-rw-r--r--mono/tests/Makefile.am5
-rwxr-xr-xmono/tests/checked.cs92
-rw-r--r--samples/.cvsignore3
-rw-r--r--scripts/wsdl.in2
-rw-r--r--web/bugs69
-rw-r--r--web/download93
-rw-r--r--web/index15
-rwxr-xr-xweb/mysql10
-rw-r--r--web/pending-classes.in246
-rw-r--r--web/web/makefile16
-rw-r--r--web/web/team.xml2
-rw-r--r--web/web/template.html.in24
166 files changed, 1389 insertions, 4336 deletions
diff --git a/ChangeLog b/ChangeLog
index 05c7071c719..2d5040dff93 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,24 +1,3 @@
-2003-08-18 Johannes Roith <johannes@jroith.de>
-
- * mono/Makefile.am: add windows build option
- * mono/monowiz.win32.nsi: add windows build script
- * mono/mono-win32-light.bmp: add bitmap
-
-2003-08-16 Zoltan Varga <vargaz@freemail.hu>
-
- * mono/tests/checked.cs: Added mul.ovf tests.
-
-2003-08-15 Duncan Mak <duncan@ximian.com>
-
- * doc/mysql: Change references to ByteFX.Data.MySQLClient to the
- correct ByteFX.Data.MySqlClient (note the change in
- capitalization). Thanks to Tom Wagner <Tom.Wagner@wacker.com> for
- spotting the error.
-
-2003-08-15 Zoltan Varga <vargaz@freemail.hu>
-
- * mono/tests/bug-47295.cs: Regression test for bug #47295.
-
2003-08-11 Duncan Mak <duncan@ximian.com>
* runtime/Makefile.am (assemblies_DATA): Add Mono.Cairo.dll.
diff --git a/Makefile.am b/Makefile.am
index 95b8d6d13f3..403567fc8f2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -33,7 +33,4 @@ mcs-rest:
(cd ../mcs/class; make)
remove-binaries:
- rm ../mcs/class/lib/corlib.dll ../mcs/mcs/mcs.exe runtime/*dll runtime/*.exe >& /dev/null; echo
-
-win32setup:
- makensis /DMILESTONE=@VERSION@ /DSOURCE_INSTALL_DIR=`cygpath -a -w @prefix@`\\* monowiz.win32.nsi \ No newline at end of file
+ rm ../mcs/class/lib/corlib.dll ../mcs/mcs/mcs.exe runtime/*dll runtime/*.exe >& /dev/null; echo \ No newline at end of file
diff --git a/config.h.in b/config.h.in
deleted file mode 100644
index b412155c227..00000000000
--- a/config.h.in
+++ /dev/null
@@ -1,51 +0,0 @@
-/* config.h.in. Generated automatically from configure.in by autoheader 2.13. */
-
-/* Define if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-#undef HAVE_INET_PTON
-#undef HAVE_INET_ATON
-#undef HAVE_SOL_IP
-#undef HAVE_SOL_TCP
-#undef HAVE_IP_PKTINFO
-#undef HAVE_STRUCT_IP_MREQN
-#undef HAVE_PTHREAD
-#undef HAVE_PTHREAD_MUTEX_TIMEDLOCK
-#undef USE_MONO_MUTEX
-#undef HAVE_LARGE_FILE_SUPPORT
-#undef PLATFORM_WIN32
-#undef HAVE_NEW_ICONV
-#undef NAME_DEV_RANDOM
-#undef HAVE_CRYPT_RNG
-#undef HAVE_BOEHM_GC
-
-/* The number of bytes in a void *. */
-#undef SIZEOF_VOID_P
-
-/* Define if you have the inet_aton function. */
-#undef HAVE_INET_ATON
-
-/* Define if you have the inet_pton function. */
-#undef HAVE_INET_PTON
-
-/* Define if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define if you have the <netdb.h> header file. */
-#undef HAVE_NETDB_H
-
-/* Define if you have the <sys/filio.h> header file. */
-#undef HAVE_SYS_FILIO_H
-
-/* Define if you have the <sys/sockio.h> header file. */
-#undef HAVE_SYS_SOCKIO_H
-
-/* Define if you have the <utime.h> header file. */
-#undef HAVE_UTIME_H
-
-/* Name of package */
-#undef PACKAGE
-
-/* Version number of package */
-#undef VERSION
-
diff --git a/data/.cvsignore b/data/.cvsignore
new file mode 100644
index 00000000000..a0529befba9
--- /dev/null
+++ b/data/.cvsignore
@@ -0,0 +1,4 @@
+Makefile.in
+Makefile
+config
+.cvsignore
diff --git a/doc/bugs b/doc/bugs
new file mode 100644
index 00000000000..bfb06a1883e
--- /dev/null
+++ b/doc/bugs
@@ -0,0 +1,69 @@
+* Bug reporting
+
+ To report bugs you need to create a <a
+ href="http://bugzilla.ximian.com/createaccount.cgi">Bugzilla
+ Account</a>.
+
+ Here are some convenient shortcuts to browse or add bug reports.
+
+ <ul>
+ * <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FClass+Libraries&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&newqueryname=&form_name=query&order=bugs.priority%2C%20bugs.bug_id">[Query]</> <a href="http://bugzilla.ximian.com/enter_bug.cgi?product=Mono%2FClass%20Libraries">[Add]</a> Class Libraries
+
+ * <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FAssembler&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">[Query]</a> <a href="http://bugzilla.ximian.com/enter_bug.cgi?product=Mono%2FAssembler">[Add]</a> IL Assembler.
+
+ * <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FMCS&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">[Query]</a> <a href="http://bugzilla.ximian.com/enter_bug.cgi?product=Mono%2FMCS">[Add]</a> C# Compiler.
+
+ * <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FRuntime&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">[Query]</a> <a href="http://bugzilla.ximian.com/enter_bug.cgi?product=Mono%2FRuntime">[Add]</a> Runtime
+
+ * <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FDoctools&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">[Query]</a> <a href="http://bugzilla.ximian.com/enter_bug.cgi?product=Mono%2FDoctools">[Add]</a> Documentation system.
+
+ * <a href="http://bugzilla.ximian.com/buglist.cgi?product=gtk%23&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">[Query]</a> <a href="http://bugzilla.ximian.com/enter_bug.cgi?product=gtk%23">[Add]</a> Gtk#
+
+ * <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FDebugger&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">[Query]</a> <a href="http://bugzilla.ximian.com/enter_bug.cgi?product=Mono%2FDebugger">[Add]</a> Debugger.
+
+ * <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FClass+Libraries&product=Mono%2FMCS&product=Mono%2FRuntime&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&order=%27Importance%27&form_name=query">[Query]</a> All core components.
+ </ul>
+
+<a name="goodbugreport"/>
+** How to make good bug reports
+
+ <ol>
+ * Submit a test case, the smaller it is, the better
+
+ * Use <a href="http://bugzilla.ximian.com">
+ http://bugzilla.ximian.com</a> to report the bug.
+
+ <p>In <b>addition</b> to bugzilla, posting to the list is
+ fine if the bug merits larger exposure or design
+ discussions to solve; posting to the list twice or more
+ is just a way to annoy people and make them waste time,
+ specially when you start a new thread about it.
+
+ * If the test involves libraries or assemblies that are
+ not part of mono, add info about where to download all
+ the dependencies, and how to compile/install them.
+
+ * If compiling the test case requires more than:
+ <pre> mcs test.cs </pre>
+ provide the <b>full command line</b> you used to compile
+ the test.
+
+ * If running the test requires more than:
+ <pre> mono test.exe </pre>
+ provide the <b>full command line</b> needed to replicate
+ the bug.
+
+ * Provide info about the version of the software you're
+ using (both mono and the operating system or relevant
+ libraries).
+
+ * Provide the output you expect the test case to produce.
+
+ * Provide the actual output <b>you</b> get from the test case.
+ </ol>
+
+ A good bug report complies with at least 6 items from the list.
+ If your bug report complies with 3 or less items, it is very
+ poor and it means it will take much more time to fix (when it's
+ not ignored).
+
diff --git a/doc/download b/doc/download
index 4c14608c516..26f6380b3fb 100644
--- a/doc/download
+++ b/doc/download
@@ -12,98 +12,7 @@
href="http://www.go-mono.org/mono-beginning.html">Resources/Beginning
section</a>, the <a
href="http://www.go-mono.org/faq.html">FAQ</a>.
- <table>
- <tbody>
- <tr bgcolor="#DDDDDD">
- <td>
- <b>Release 0.26</b><br>
- <a href="archive/mono-0.26.html">Release notes</a><br>
- Aug 14, 2003
- </td>
- <td>
- <table cellspacing="1" cellpadding="3">
- <tr bgcolor="#BBBBBB">
- <td>
- <b>Source Code</b>
- </td>
- <td>
- <ul>
- <li><a href="archive/mcs-0.26.tar.gz">Mono Class Libraries and C# Compiler.</a>
- <li><a href="archive/mono-0.26.tar.gz">Mono Runtime</a>
- <li><a href="archive/xsp-0.5.tar.gz">XSP web server (0.5)</a>
- <li><a href="archive/mod_mono-0.4.tar.gz">Apache Mono module (mod_mono)</a>
- <li><a href="archive/monodoc-0.6.tar.gz">MonoDoc 0.6</a>
- </ul>
- </td>
- </tr>
- <tr bgcolor="#BBBBBB">
- <td>
- <b>Source RPMs</b><br>
- (No RPMS for XSP).
- </td>
- <td>
- <ul>
- <li><a href="archive/redhat-90-i386/mono-0.26-1.ximian.6.1.src.rpm">mono-0.26-1.src.rpm (RH9)</a>
- <li><a href="archive/redhat-90-i386/mono-0.26-1.ximian.5.1.src.rpm">mono-0.26-1.src.rpm (RH8)</a>
- </ul>
- </td>
- </tr>
- <tr>
- <td></td>
- </tr>
- <tr>
- <td bgcolor="#999999">
- <img src="images/redhat-36.gif"><b>Red Hat 9.0/x86</b>
- <ul>
- <li><a href="archive/redhat-90-i386/mono-0.26-1.ximian.6.1.i386.rpm">mono-0.26-1.ximian.6.1.i386.rpm</a>
- <li><a href="archive/redhat-90-i386/mono-devel-0.26-1.ximian.6.1.i386.rpm">mono-devel-0.26-1.ximian.6.1.i386.rpm</a>
- <li><a href="archive/redhat-90-i386/mono-debuginfo-0.26-1.ximian.6.1.i386.rpm">mono-debuginfo-0.26-1.i386.rpm</a>
- <br>
- <li><a href="archive/redhat-90-i386/libpixregion-0.1.0-1.ximian.6.1.i386.rpm">libpixregion-0.1.0-1.ximian.6.1.i386.rpm</a>
- <li><a href="archive/redhat-90-i386/libpixregion-debuginfo-0.1.0-1.ximian.6.1.i386.rpm">libpixregion-debuginfo-0.1.0-1.ximian.6.1.i386.rpm</a>
- <li><a href="archive/redhat-90-i386/libic-0.1.0-1.ximian.6.1.i386.rpm">libic-0.1.0-1.ximian.6.1.i386.rpm</a>
- <li><a href="archive/redhat-90-i386/libic-debuginfo-0.1.0-1.ximian.6.1.i386.rpm">libic-debuginfo-0.1.0-1.ximian.6.1.i386.rpm</a>
- <li><a href="archive/redhat-90-i386/xc-0.1.0-1.ximian.6.1.i386.rpm">xc-0.1.0-1.ximian.6.1.i386.rpm</a>
- <li><a href="archive/redhat-90-i386/xc-debuginfo-0.1.0-1.ximian.6.1.i386.rpm">xc-debuginfo-0.1.0-1.ximian.6.1.i386.rpm</a>
- <li><a href="archive/redhat-90-i386/xr-0.1.0-1.ximian.6.1.i386.rpm">xr-0.1.0-1.ximian.6.1.i386.rpm</a>
- <li><a href="archive/redhat-90-i386/xr-debuginfo-0.1.0-1.ximian.6.1.i386.rpm">xr-debuginfo-0.1.0-1.ximian.6.1.i386.rpm</a>
- <br>
- <li><a href="archive/redhat-90-i386/monodoc-0.6-1.ximian.6.1.i386.rpm">monodoc-0.6-1.ximian.6.1.i386.rpm</a> (To be used only with CVS gtk-sharp)
- <li><a href="archive/redhat-90-i386/monodoc-debuginfo-0.5-1.ximian.6.1.i386.rpm">monodoc-debuginfo-0.5-1.ximian.6.1.i386.rpm</a>
- <li><a href="archive/mono-wine-20030318-1.ximian.6.2.i386.rpm">mono-wine-20030318-1.ximian.6.2.i386.rpm</a>
- <li><a href="archive/mono-wine-debuginfo-20030318-1.ximian.6.2.i386.rpm">mono-wine-debuginfo-20030318-1.ximian.6.2.i386.rpm</a>
- </ul>
- </td>
- <td bgcolor="#999999">
- <img src="images/redhat-36.gif"><b>Red Hat 8.0/x86</b>
- <ul>
- <li><a href="archive/redhat-80-i386/mono-0.26-1.ximian.5.1.i386.rpm">mono-0.26-1.ximian.5.1.i386.rpm</a>
- <li><a href="archive/redhat-80-i386/mono-devel-0.26-1.ximian.5.1.i386.rpm">mono-devel-0.26-1.ximian.5.1.i386.rpm</a>
- <br>
- <li><a href="archive/redhat-80-i386/monodoc-0.5-1.ximian.5.1.i386.rpm">monodoc-0.5-1.ximian.5.1.i386.rpm</a> (To be used only with CVS gtk-sharp)
- <li><a href="archive/mono-wine-20030318-1.ximian.5.2.i386.rpm">mono-wine-20030318-1.ximian.5.2.i386.rpm</a>
- </ul>
- </td>
- </tr>
- <tr>
- <td bgcolor="#999999">
- <img src="images/debian-36.gif"><b>Debian</b>
- <ul>
- <li><a href="http://www.debianplanet.com/mono/">Debian Packages here.</a>
- </ul>
- </td>
- <td bgcolor="#999999">
- <img src="images/mandrake-36.gif"><b>Mandrake 9.1/x86</b>
- <ul>
- <li><a href="archive/mandrake-91-i586/mono-0.26-1.ximian.6.1.i586.rpm">mono-0.26-1.ximian.6.1.i586.rpm</a>
- <li><a href="archive/mandrake-91-i586/mono-devel-0.26-1.ximian.6.1.i586.rpm">mono-devel-0.26-1.ximian.6.1.i586.rpm</a>
-<!-- <li><a href="archive/mandrake-91-i586/monodoc-0.5-1.ximian.6.1.i586.rpm">monodoc-0.5-1.ximian.6.1.i586.rpm</a> -->
- </ul>
- </td>
- </tr>
- </table>
- </td>
<table>
<tbody>
<tr bgcolor="#DDDDDD">
@@ -1271,4 +1180,4 @@ make install
Notice that following the above procedure does not require you
to manually install the software in the `mcs' directory, as
- the relevant files will be copied by the `mono' makefiles. \ No newline at end of file
+ the relevant files will be copied by the `mono' makefiles.
diff --git a/doc/index b/doc/index
index 4f27aaa1c6a..7138e25e740 100644
--- a/doc/index
+++ b/doc/index
@@ -151,21 +151,6 @@
</tr>
</table>
-@item Aug 14th, 2003: Mono 0.26 has been released
-
- A new version of Mono is available, the new features include:
- <a href="http://www.cairographics.org/">Cairo support</a>, <a
- href="http://remoting-corba.sf.net">Remoting.Corba</a>
- support, as well as a managed XSLT implementation.
-
- Existing features have been improved vastly: better
- Windows.Forms, runtime, faster compiler, web services, better
- compliance to the spec and more.
-
- Check out the <a
- href="http://www.go-mono.com/archive/mono-0.26.html">Release
- notes</a> for details.
-
@item Aug 9th, 2003: Python for .NET Preview 2 available; Mono Documentation site up.
Brian Lloyd has <a
diff --git a/doc/mysql b/doc/mysql
index 7b0a4d5811b..56c5f112950 100755
--- a/doc/mysql
+++ b/doc/mysql
@@ -43,7 +43,7 @@
in the Microsoft .NET Environment</a> is an article
by Mr. Venu who is a MySQL AB developer.</li>
- <p>Testing for Mono's Mono.Data.MySql and ByteFX's ByteFX.Data.MySqlClient is below.
+ <p>Testing for Mono's Mono.Data.MySql and ByteFX's ByteFX.Data.MySQLClient is below.
** Current Status
@@ -51,7 +51,7 @@
<ul>
- <li>ByteFX.Data.MySqlClient
+ <li>ByteFX.Data.MySQLClient
<ul>
<li>Build and Runs on Microsoft .NET and Mono</li>
<li>Works with SQL# (command-line and GTK# GUI versions)</li>
@@ -109,7 +109,7 @@
The current plan for the MySQL data providers:
<ul>
- <li>ByteFX.Data.MySqlClient
+ <li>ByteFX.Data.MySQLClient
<ul>
<li>Testing and fixes</li>
<li>Implement missing features</li>
@@ -163,7 +163,7 @@
<pre>
using System;
using System.Data;
- using ByteFX.Data.MySqlClient;
+ using ByteFX.Data.MySQLClient;
public class Test
{
@@ -175,7 +175,7 @@
"User ID=myuserid;" +
"Password=mypassword;";
IDbConnection dbcon;
- dbcon = new MySqlConnection(connectionString);
+ dbcon = new MySQLConnection(connectionString);
dbcon.Open();
IDbCommand dbcmd = dbcon.CreateCommand();
// requires a table to be created named employee
diff --git a/doc/pending-classes.in b/doc/pending-classes.in
deleted file mode 100644
index 1cdb5a4cb36..00000000000
--- a/doc/pending-classes.in
+++ /dev/null
@@ -1,246 +0,0 @@
-System.Object
-System.Exception
-System.ValueType
-System.Delegate
-System.MulticastDelegate
-System.Enum
-System.Activator
-System.ArgIterator
-System.__ComObject
-System.TypedReference
-System.Security.AllowPartiallyTrustedCallersAttribute
-System.Runtime.Serialization.Formatter
-System.Runtime.Serialization.FormatterConverter
-System.Runtime.Serialization.FormatterServices
-System.Runtime.Serialization.ObjectIDGenerator
-System.Runtime.Serialization.ObjectManager
-System.Reflection.ModuleResolveEventHandler
-System.Reflection.Pointer
-System.Globalization.CompareInfo
-System.Globalization.HebrewCalendar
-System.Globalization.HijriCalendar
-System.Globalization.JapaneseCalendar
-System.Globalization.KoreanCalendar
-System.Globalization.SortKey
-System.Globalization.StringInfo
-System.Globalization.TaiwanCalendar
-System.Globalization.TextElementEnumerator
-System.Globalization.TextInfo
-System.Globalization.ThaiBuddhistCalendar
-System.IO.IsolatedStorage.IsolatedStorageFile
-System.Reflection.Emit.MethodRental
-System.Runtime.CompilerServices.AccessedThroughPropertyAttribute
-System.Runtime.CompilerServices.CallConvCdecl
-System.Runtime.CompilerServices.CallConvStdcall
-System.Runtime.CompilerServices.CallConvThiscall
-System.Runtime.CompilerServices.CallConvFastcall
-System.Runtime.CompilerServices.CustomConstantAttribute
-System.Runtime.CompilerServices.DateTimeConstantAttribute
-System.Runtime.CompilerServices.DiscardableAttribute
-System.Runtime.CompilerServices.DecimalConstantAttribute
-System.Runtime.CompilerServices.CompilationRelaxationsAttribute
-System.Runtime.CompilerServices.CompilerGlobalScopeAttribute
-System.Runtime.CompilerServices.IDispatchConstantAttribute
-System.Runtime.CompilerServices.IsVolatile
-System.Runtime.CompilerServices.IUnknownConstantAttribute
-System.Runtime.CompilerServices.RequiredAttributeAttribute
-System.Runtime.InteropServices.ArrayWithOffset
-System.Runtime.InteropServices.DispIdAttribute
-System.Runtime.InteropServices.ClassInterfaceType
-System.Runtime.InteropServices.ClassInterfaceAttribute
-System.Runtime.InteropServices.ComVisibleAttribute
-System.Runtime.InteropServices.LCIDConversionAttribute
-System.Runtime.InteropServices.ComRegisterFunctionAttribute
-System.Runtime.InteropServices.ComUnregisterFunctionAttribute
-System.Runtime.InteropServices.ProgIdAttribute
-System.Runtime.InteropServices.ImportedFromTypeLibAttribute
-System.Runtime.InteropServices.IDispatchImplType
-System.Runtime.InteropServices.IDispatchImplAttribute
-System.Runtime.InteropServices.ComSourceInterfacesAttribute
-System.Runtime.InteropServices.ComConversionLossAttribute
-System.Runtime.InteropServices.TypeLibTypeFlags
-System.Runtime.InteropServices.TypeLibFuncFlags
-System.Runtime.InteropServices.TypeLibVarFlags
-System.Runtime.InteropServices.TypeLibTypeAttribute
-System.Runtime.InteropServices.TypeLibFuncAttribute
-System.Runtime.InteropServices.TypeLibVarAttribute
-System.Runtime.InteropServices.ComImportAttribute
-System.Runtime.InteropServices.PreserveSigAttribute
-System.Runtime.InteropServices.ComAliasNameAttribute
-System.Runtime.InteropServices.AutomationProxyAttribute
-System.Runtime.InteropServices.PrimaryInteropAssemblyAttribute
-System.Runtime.InteropServices.CoClassAttribute
-System.Runtime.InteropServices.ComEventInterfaceAttribute
-System.Runtime.InteropServices.COMException
-System.Runtime.InteropServices.ComMemberType
-System.Runtime.InteropServices.CurrencyWrapper
-System.Runtime.InteropServices.DispatchWrapper
-System.Runtime.InteropServices.ErrorWrapper
-System.Runtime.InteropServices.ExtensibleClassFactory
-System.Runtime.InteropServices.HandleRef
-System.Runtime.InteropServices.InvalidComObjectException
-System.Runtime.InteropServices.InvalidOleVariantTypeException
-System.Runtime.InteropServices.TypeLibImporterFlags
-System.Runtime.InteropServices.ExporterEventKind
-System.Runtime.InteropServices.ITypeLibExporterNotifySink
-System.Runtime.InteropServices.ITypeLibConverter
-System.Runtime.InteropServices.MarshalDirectiveException
-System.Runtime.InteropServices.ObjectCreationDelegate
-System.Runtime.InteropServices.RuntimeEnvironment
-System.Runtime.InteropServices.RegistrationServices
-System.Runtime.InteropServices.SafeArrayRankMismatchException
-System.Runtime.InteropServices.SafeArrayTypeMismatchException
-System.Runtime.InteropServices.SEHException
-System.Runtime.InteropServices.TypeLibConverter
-System.Runtime.InteropServices.BIND_OPTS
-System.Runtime.InteropServices.UCOMIBindCtx
-System.Runtime.InteropServices.UCOMIConnectionPointContainer
-System.Runtime.InteropServices.UCOMIConnectionPoint
-System.Runtime.InteropServices.UCOMIEnumMoniker
-System.Runtime.InteropServices.CONNECTDATA
-System.Runtime.InteropServices.UCOMIEnumConnections
-System.Runtime.InteropServices.UCOMIEnumConnectionPoints
-System.Runtime.InteropServices.UCOMIEnumString
-System.Runtime.InteropServices.UCOMIEnumVARIANT
-System.Runtime.InteropServices.FILETIME
-System.Runtime.InteropServices.UCOMIMoniker
-System.Runtime.InteropServices.UCOMIPersistFile
-System.Runtime.InteropServices.UCOMIRunningObjectTable
-System.Runtime.InteropServices.STATSTG
-System.Runtime.InteropServices.UCOMIStream
-System.Runtime.InteropServices.DESCKIND
-System.Runtime.InteropServices.BINDPTR
-System.Runtime.InteropServices.UCOMITypeComp
-System.Runtime.InteropServices.TYPEKIND
-System.Runtime.InteropServices.TYPEFLAGS
-System.Runtime.InteropServices.IMPLTYPEFLAGS
-System.Runtime.InteropServices.TYPEATTR
-System.Runtime.InteropServices.FUNCDESC
-System.Runtime.InteropServices.IDLFLAG
-System.Runtime.InteropServices.IDLDESC
-System.Runtime.InteropServices.PARAMFLAG
-System.Runtime.InteropServices.PARAMDESC
-System.Runtime.InteropServices.TYPEDESC
-System.Runtime.InteropServices.ELEMDESC
-System.Runtime.InteropServices.VARDESC
-System.Runtime.InteropServices.DISPPARAMS
-System.Runtime.InteropServices.EXCEPINFO
-System.Runtime.InteropServices.FUNCKIND
-System.Runtime.InteropServices.INVOKEKIND
-System.Runtime.InteropServices.CALLCONV
-System.Runtime.InteropServices.FUNCFLAGS
-System.Runtime.InteropServices.VARFLAGS
-System.Runtime.InteropServices.UCOMITypeInfo
-System.Runtime.InteropServices.SYSKIND
-System.Runtime.InteropServices.LIBFLAGS
-System.Runtime.InteropServices.TYPELIBATTR
-System.Runtime.InteropServices.UCOMITypeLib
-System.Runtime.InteropServices.UnknownWrapper
-System.Runtime.Remoting.IObjectHandle
-System.Runtime.Remoting.IRemotingTypeInfo
-System.Runtime.Remoting.IChannelInfo
-System.Runtime.Remoting.IEnvoyInfo
-System.Runtime.Remoting.RemotingConfiguration
-System.Runtime.Remoting.TypeEntry
-System.Runtime.Remoting.ActivatedClientTypeEntry
-System.Runtime.Remoting.ActivatedServiceTypeEntry
-System.Runtime.Remoting.WellKnownClientTypeEntry
-System.Runtime.Remoting.WellKnownServiceTypeEntry
-System.Runtime.Remoting.RemotingException
-System.Runtime.Remoting.ServerException
-System.Runtime.Remoting.RemotingTimeoutException
-System.Runtime.Remoting.RemotingServices
-System.Runtime.Remoting.InternalRemotingServices
-System.Runtime.Remoting.SoapServices
-System.Runtime.Remoting.Activation.UrlAttribute
-System.Runtime.Remoting.Messaging.IMessageSink
-System.Runtime.Remoting.Messaging.AsyncResult
-System.Runtime.Remoting.Messaging.CallContext
-System.Runtime.Remoting.Messaging.ILogicalThreadAffinative
-System.Runtime.Remoting.Messaging.InternalMessageWrapper
-System.Runtime.Remoting.Messaging.IMethodCallMessage
-System.Runtime.Remoting.Messaging.MethodCallMessageWrapper
-System.Runtime.Remoting.Messaging.HeaderHandler
-System.Runtime.Remoting.Messaging.IMessageCtrl
-System.Runtime.Remoting.Messaging.IRemotingFormatter
-System.Runtime.Remoting.Messaging.ReturnMessage
-System.Runtime.Remoting.Messaging.MethodCall
-System.Runtime.Remoting.Messaging.ConstructionCall
-System.Runtime.Remoting.Messaging.MethodResponse
-System.Runtime.Remoting.Messaging.ConstructionResponse
-System.Runtime.Remoting.Messaging.MethodReturnMessageWrapper
-System.Runtime.Remoting.Messaging.OneWayAttribute
-System.Runtime.Remoting.Messaging.MessageSurrogateFilter
-System.Runtime.Remoting.Messaging.RemotingSurrogateSelector
-System.Runtime.Remoting.Contexts.CrossContextDelegate
-System.Runtime.Remoting.Contexts.ContextProperty
-System.Runtime.Remoting.Contexts.IContextPropertyActivator
-System.Runtime.Remoting.Contexts.IContributeClientContextSink
-System.Runtime.Remoting.Contexts.IContributeDynamicSink
-System.Runtime.Remoting.Contexts.IContributeEnvoySink
-System.Runtime.Remoting.Contexts.IContributeObjectSink
-System.Runtime.Remoting.Contexts.IContributeServerContextSink
-System.Runtime.Serialization.Formatters.InternalRM
-System.Runtime.Serialization.Formatters.InternalST
-System.Runtime.Serialization.Formatters.SoapMessage
-System.Runtime.Serialization.Formatters.SoapFault
-System.Runtime.Serialization.Formatters.ServerFault
-System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-System.Security.Cryptography.CryptoConfig
-System.Security.Cryptography.KeyedHashAlgorithm
-System.Security.Cryptography.HMACSHA1
-System.Security.Cryptography.MACTripleDES
-System.Security.Cryptography.MaskGenerationMethod
-System.Security.Cryptography.PasswordDeriveBytes
-System.Security.Cryptography.PKCS1MaskGenerationMethod
-System.Security.Cryptography.RC2
-System.Security.Cryptography.RC2CryptoServiceProvider
-System.Security.Cryptography.RSACryptoServiceProvider
-System.Security.Cryptography.RSAOAEPKeyExchangeDeformatter
-System.Security.Cryptography.RSAOAEPKeyExchangeFormatter
-System.Security.Cryptography.RSAPKCS1KeyExchangeDeformatter
-System.Security.Cryptography.RSAPKCS1KeyExchangeFormatter
-System.Security.Cryptography.RSAPKCS1SignatureDeformatter
-System.Security.Cryptography.RSAPKCS1SignatureFormatter
-System.Security.Cryptography.SHA1Managed
-System.Security.Cryptography.TripleDES
-System.Security.Cryptography.TripleDESCryptoServiceProvider
-System.Security.Permissions.EnvironmentPermission
-System.Security.Permissions.FileDialogPermission
-System.Security.Permissions.IsolatedStorageFilePermission
-System.Security.Permissions.PrincipalPermissionAttribute
-System.Security.Permissions.SecurityPermissionAttribute
-System.Security.Permissions.PublisherIdentityPermissionAttribute
-System.Security.Permissions.PublisherIdentityPermission
-System.Security.Permissions.ReflectionPermission
-System.Security.Permissions.RegistryPermission
-System.Security.Permissions.PrincipalPermission
-System.Security.Permissions.SiteIdentityPermission
-System.Security.Permissions.StrongNameIdentityPermission
-System.Security.Permissions.StrongNamePublicKeyBlob
-System.Security.Permissions.UIPermission
-System.Security.Permissions.UrlIdentityPermission
-System.Security.Permissions.ZoneIdentityPermission
-System.Security.Policy.ApplicationDirectory
-System.Security.Policy.ApplicationDirectoryMembershipCondition
-System.Security.Policy.FirstMatchCodeGroup
-System.Security.Policy.Hash
-System.Security.Policy.HashMembershipCondition
-System.Security.Policy.NetCodeGroup
-System.Security.Policy.PermissionRequestEvidence
-System.Security.Policy.Publisher
-System.Security.Policy.PublisherMembershipCondition
-System.Security.Policy.Site
-System.Security.Policy.SiteMembershipCondition
-System.Security.Policy.StrongName
-System.Security.Policy.StrongNameMembershipCondition
-System.Security.Policy.UnionCodeGroup
-System.Security.Policy.Url
-System.Security.Policy.UrlMembershipCondition
-System.Security.Policy.Zone
-System.Security.Policy.ZoneMembershipCondition
-System.Security.Principal.WindowsIdentity
-System.Security.Principal.WindowsImpersonationContext
-System.Security.Principal.WindowsPrincipal
-System.Threading.CompressedStack
-
diff --git a/doc/web/makefile b/doc/web/makefile
index ed5b87ac8a5..90fe990fec1 100644
--- a/doc/web/makefile
+++ b/doc/web/makefile
@@ -64,6 +64,20 @@ OBJECTS= \
deploy/testing.html \
deploy/tools.html \
deploy/winforms.html \
+ deploy/class-status.html \
+ deploy/class-status-corlib.html \
+ deploy/class-status-System.html \
+ deploy/class-status-System.Xml.html \
+ deploy/class-status-System.Drawing.html \
+ deploy/class-status-System.Data.html \
+ deploy/class-status-System.Web.html \
+ deploy/class-status-System.Web.Services.html \
+ deploy/class-status-Microsoft.VisualBasic.html \
+ deploy/class-status-System.EnterpriseServices.html \
+ deploy/class-status-System.Runtime.Serialization.Formatters.Soap.html \
+ deploy/class-status-System.Security.html \
+ deploy/class-status-System.Windows.Forms.html \
+ deploy/class-status-Cscompmgd.html \
deploy/class-library.html \
deploy/classlib-doc.html
@@ -77,7 +91,7 @@ NON_HTML_SOURCES= \
../mono-build.sh \
../mono-build-w32.sh
-all: $(OBJECT) deploy/index.rss ../team
+all: $(OBJECTS) deploy/index.rss ../team
perl process.pl commands template.html.in deploy
-mkdir deploy/team
cp team/*png deploy/team
diff --git a/doc/web/team.xml b/doc/web/team.xml
index 7444d88f082..ccc9d97a16d 100644
--- a/doc/web/team.xml
+++ b/doc/web/team.xml
@@ -1453,7 +1453,7 @@
<e-mail>peter@newton.cx</e-mail>
- <image>peterw.png</image>
+ <image>none.png</image>
<location>Cambridge, MA</location>
diff --git a/doc/web/template.html.in b/doc/web/template.html.in
index 5c25278530d..2aab918a0a5 100644
--- a/doc/web/template.html.in
+++ b/doc/web/template.html.in
@@ -38,25 +38,11 @@
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
- <td><img src="images/pixel.gif" alt=""></td><!-- left border
- -->
- <td colspan="4">
- <table>
- <tr>
- <td>
- <a href="http://www.go-mono.com"><img
- src="images/mono-new.gif" alt="mono-logo" border="0"></a>
- </td>
- <td>
- <a class="navi0" href="download.html">Downloads</a> |
- <a class="navi0" href="screenshots.html">Screenshots</a> |
- <a class="navi0" href="http://mono.ximian.com:8080">API Docs</a>
- </td>
- </tr>
- </table>
- </td>
- <td><img src="images/pixel.gif" alt=""></td><!-- right border
- -->
+ <td><img src="images/pixel.gif" alt=""></td><!-- left border -->
+ <td colspan="4">
+ <a href="http://www.go-mono.com"><img src="images/mono-new.gif"
+ alt="mono-logo" border="0"></a></td>
+ <td><img src="images/pixel.gif" alt=""></td><!-- right border -->
</tr>
<tr>
<td><img src="images/pixel.gif" width="1" height="1" alt=""></td>
diff --git a/mcs/class/PEAPI/ChangeLog b/mcs/class/PEAPI/ChangeLog
index c885631ef94..610a4aa6253 100644
--- a/mcs/class/PEAPI/ChangeLog
+++ b/mcs/class/PEAPI/ChangeLog
@@ -1,8 +1,3 @@
-2003-08-19 Jackson Harper <jackson@latitudegeo.com>
-
- * PEAPI.cs: Make no super method public so we can have types
- with no super type.
-
2003-08-03 Jackson Harper <jackson@latitudegeo.com>
* PEAPI.cs: New Sentinel type.
diff --git a/mcs/class/PEAPI/PEAPI.cs b/mcs/class/PEAPI/PEAPI.cs
index d52483dec75..c7a56ff998a 100644
--- a/mcs/class/PEAPI/PEAPI.cs
+++ b/mcs/class/PEAPI/PEAPI.cs
@@ -1729,7 +1729,7 @@ namespace PEAPI
typeIndex = superType.GetTypeIndex();
}
- public void SpecialNoSuper() {
+ internal void SpecialNoSuper() {
superType = null;
}
diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciParameterDescriptor.cs b/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciParameterDescriptor.cs
index f3ef0bbebf7..72f42c45eaa 100644
--- a/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciParameterDescriptor.cs
+++ b/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciParameterDescriptor.cs
@@ -65,67 +65,6 @@ namespace System.Data.OracleClient.Oci {
return (OciDataType) GetAttributeInt32 (OciAttributeType.DataType, ErrorHandle);
}
- public string GetDataTypeName ()
- {
- switch(GetDataType())
- {
- case OciDataType.VarChar2:
- return "VarChar2";
- case OciDataType.Number:
- return "Number";
- case OciDataType.Integer:
- return "Integer";
- case OciDataType.Float:
- return "Float";
- case OciDataType.String:
- return "String";
- case OciDataType.VarNum:
- return "VarNum";
- case OciDataType.Long:
- return "Long";
- case OciDataType.VarChar:
- return "VarChar";
- case OciDataType.RowId:
- return "RowId";
- case OciDataType.Date:
- return "Date";
- case OciDataType.VarRaw:
- return "VarRaw";
- case OciDataType.Raw:
- return "Raw";
- case OciDataType.LongRaw:
- return "LongRaw";
- case OciDataType.UnsignedInt:
- return "UnsignedInt";
- case OciDataType.LongVarChar:
- return "LongVarChar";
- case OciDataType.LongVarRaw:
- return "LongVarRaw";
- case OciDataType.Char:
- return "Char";
- case OciDataType.CharZ:
- return "CharZ";
- case OciDataType.RowIdDescriptor:
- return "RowIdDescriptor";
- case OciDataType.NamedDataType:
- return "NamedDataType";
- case OciDataType.Ref:
- return "Ref";
- case OciDataType.Clob:
- return "Clob";
- case OciDataType.Blob:
- return "Blob";
- case OciDataType.BFile:
- return "BFile";
- case OciDataType.OciString:
- return "OciString";
- case OciDataType.OciDate:
- return "OciDate";
- default:
- return "Unknown";
- }
- }
-
public short GetPrecision ()
{
return (short) GetAttributeByte (OciAttributeType.Precision, ErrorHandle);
diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient/OracleDataReader.cs b/mcs/class/System.Data.OracleClient/System.Data.OracleClient/OracleDataReader.cs
index c848d9891cd..08bcfd15ea9 100644
--- a/mcs/class/System.Data.OracleClient/System.Data.OracleClient/OracleDataReader.cs
+++ b/mcs/class/System.Data.OracleClient/System.Data.OracleClient/OracleDataReader.cs
@@ -127,7 +127,6 @@ namespace System.Data.OracleClient {
schemaTable.Columns.Add ("AllowDBNull", booleanType);
schemaTable.Columns.Add ("IsUnique", booleanType);
schemaTable.Columns.Add ("IsKey", booleanType);
- schemaTable.Columns.Add ("IsReadOnly", booleanType);
schemaTable.Columns.Add ("BaseSchemaTable", stringType);
schemaTable.Columns.Add ("BaseCatalogName", stringType);
schemaTable.Columns.Add ("BaseTableName", stringType);
@@ -322,7 +321,7 @@ namespace System.Data.OracleClient {
{
if (schemaTable.Rows != null && schemaTable.Rows.Count > 0)
return schemaTable;
-
+
dataTypeNames = new ArrayList ();
for (int i = 0; i < statement.ColumnCount; i += 1) {
@@ -330,8 +329,6 @@ namespace System.Data.OracleClient {
OciParameterDescriptor parameter = statement.GetParameter (i);
- dataTypeNames.Add(parameter.GetDataTypeName());
-
row ["ColumnName"] = parameter.GetName ();
row ["ColumnOrdinal"] = i + 1;
row ["ColumnSize"] = parameter.GetDataSize ();
@@ -342,7 +339,6 @@ namespace System.Data.OracleClient {
row ["DataType"] = typeof(string);
row ["AllowDBNull"] = parameter.GetIsNull ();
row ["BaseColumnName"] = parameter.GetName ();
- row ["IsReadOnly"] = true;
schemaTable.Rows.Add (row);
}
diff --git a/mcs/class/System.Data/System.Data.SqlClient/SqlDataReader.cs b/mcs/class/System.Data/System.Data.SqlClient/SqlDataReader.cs
index 3272903c021..c9db7a57137 100644
--- a/mcs/class/System.Data/System.Data.SqlClient/SqlDataReader.cs
+++ b/mcs/class/System.Data/System.Data.SqlClient/SqlDataReader.cs
@@ -187,24 +187,10 @@ namespace System.Data.SqlClient {
public long GetChars (int i, long dataIndex, char[] buffer, int bufferIndex, int length)
{
object value = GetValue (i);
- char [] valueBuffer;
-
- if (value is char[])
- valueBuffer = (char[])value;
- else if (value is string)
- valueBuffer = ((string)value).ToCharArray();
- else
+ if (!(value is char[]))
throw new InvalidCastException ("Type is " + value.GetType ().ToString ());
-
- if ( buffer == null ) {
- // Return length of data
- return valueBuffer.Length;
- }
- else {
- // Copy data into buffer
- Array.Copy (valueBuffer, (int) dataIndex, buffer, bufferIndex, length);
- return valueBuffer.Length - dataIndex;
- }
+ Array.Copy ((char []) value, (int) dataIndex, buffer, bufferIndex, length);
+ return ((char []) value).Length - dataIndex;
}
[MonoTODO ("Implement GetData")]
diff --git a/mcs/class/System.Drawing/System.Drawing/ChangeLog b/mcs/class/System.Drawing/System.Drawing/ChangeLog
index c659253a644..271a8049811 100644
--- a/mcs/class/System.Drawing/System.Drawing/ChangeLog
+++ b/mcs/class/System.Drawing/System.Drawing/ChangeLog
@@ -1,8 +1,3 @@
-2003-08-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * Color.cs: fixed FromArgb to handle alpha value correctly. Closes
- bug #47727.
-
2003-08-08 Duncan Mak <duncan@ximian.com>
* Graphics.cs (DrawBezier): Fixed.
diff --git a/mcs/class/System.Drawing/System.Drawing/Color.cs b/mcs/class/System.Drawing/System.Drawing/Color.cs
index 0bb005b1426..b0031f7a9fd 100644
--- a/mcs/class/System.Drawing/System.Drawing/Color.cs
+++ b/mcs/class/System.Drawing/System.Drawing/Color.cs
@@ -117,7 +117,7 @@ namespace System.Drawing
public static Color FromArgb (int argb)
{
- return FromArgb ((argb >> 24) & 0x0FF, (argb >> 16) & 0x0FF, (argb >> 8) & 0x0FF, argb & 0x0FF);
+ return FromArgb (argb >> 24, (argb >> 16) & 0x0FF, (argb >> 8) & 0x0FF, argb & 0x0FF);
}
public static Color FromKnownColor (KnownColor knownColorToConvert)
diff --git a/mcs/class/System.Runtime.Remoting/ChangeLog b/mcs/class/System.Runtime.Remoting/ChangeLog
index 58c12c57e03..8258e3f096c 100644
--- a/mcs/class/System.Runtime.Remoting/ChangeLog
+++ b/mcs/class/System.Runtime.Remoting/ChangeLog
@@ -1,7 +1,3 @@
-2003-08-18 Lluis Sanchez Gual <lluis@ximian.com>
-
- * HttpClientChannel.cs, HttpServerChannel.cs: Fixed bug #47703
-
2003-07-23 Lluis Sanchez Gual <lluis@ximian.com>
* Makefile: added dll extension to System.Runtime.Remoting reference
diff --git a/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Http/HttpClientChannel.cs b/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Http/HttpClientChannel.cs
index d58cf9dab0a..165216b2ec8 100644
--- a/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Http/HttpClientChannel.cs
+++ b/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Http/HttpClientChannel.cs
@@ -203,7 +203,8 @@ namespace System.Runtime.Remoting.Channels.Http
{
if(sinkProvider == null)
{
- _sinkProvider = new SoapClientFormatterSinkProvider();
+ //_sinkProvider = new SoapClientFormatterSinkProvider();
+ _sinkProvider = new BinaryClientFormatterSinkProvider();
_sinkProvider.Next = new HttpClientTransportSinkProvider();
}
else
diff --git a/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Http/HttpServerChannel.cs b/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Http/HttpServerChannel.cs
index 076662d824e..f90beea3476 100644
--- a/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Http/HttpServerChannel.cs
+++ b/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Http/HttpServerChannel.cs
@@ -147,8 +147,9 @@ namespace System.Runtime.Remoting.Channels.Http
_channelData = new ChannelDataStore(urls);
+ //Change this into BinaryFormatterSinkProvider() in mono
if(_sinkProvider == null)
- _sinkProvider = new SoapServerFormatterSinkProvider();
+ _sinkProvider = new BinaryServerFormatterSinkProvider();
diff --git a/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog b/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
index c6ba5c99bff..91ae8f5eb90 100644
--- a/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
+++ b/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
@@ -1,23 +1,3 @@
-2003-08-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * Style.cs: the MARKED bit is not send set in ViewState unless something
- is changed. Fixed TrackViewState condition.
-
- * WebControl.cs: save the base ViewState *after* ControlStyle is done,
- because it uses the same ViewState as the control. Fixes bug #47725.
-
-2003-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * HyperLinkColumn.cs: patch from David Pickens <dsp@rci.rutgers.edu>
- that fixes databinding when only DataTextField or DataNavigateUrlField
- is set.
-
-2003-08-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * ListControl.cs: patch sent by Yaacov Akiba Slama <ya@slamail.org> on
- behalf of Yaron Shkop <yaronsh@mainsoft.com> that fixes selection of
- values before assigning a data source and other issues.
-
2003-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* CheckBox.cs: save viewstate when needed and correctly handle post
diff --git a/mcs/class/System.Web/System.Web.UI.WebControls/HyperLinkColumn.cs b/mcs/class/System.Web/System.Web.UI.WebControls/HyperLinkColumn.cs
index 4c06d734d29..da18a2d4b1c 100644
--- a/mcs/class/System.Web/System.Web.UI.WebControls/HyperLinkColumn.cs
+++ b/mcs/class/System.Web/System.Web.UI.WebControls/HyperLinkColumn.cs
@@ -166,41 +166,37 @@ namespace System.Web.UI.WebControls
}
}
- private void OnDataBindHyperLinkColumn (object sender, EventArgs e)
- {
- HyperLink link = (HyperLink) sender;
- object item = ((DataGridItem) link.NamingContainer).DataItem;
-
- PropertyDescriptorCollection properties = TypeDescriptor.GetProperties (item);
- if (textFieldDescriptor == null)
- textFieldDescriptor = properties.Find (DataTextField, true);
-
- if (urlFieldDescriptor == null)
- urlFieldDescriptor = properties.Find (DataNavigateUrlField, true);
-
- if (DataTextField.Length > 0 && textFieldDescriptor == null && !DesignMode)
- throw new HttpException (HttpRuntime.FormatResourceString (
- "Field_Not_Found", DataTextField));
-
- if (DataNavigateUrlField.Length > 0 && urlFieldDescriptor == null && !DesignMode)
- throw new HttpException (HttpRuntime.FormatResourceString (
- "Field_Not_Found", DataNavigateUrlField));
-
- if (textFieldDescriptor != null) {
- link.Text = FormatDataTextValue (textFieldDescriptor.GetValue (item));
- } else if ( Text != String.Empty ) {
- link.Text = Text;
- } else {
- link.Text = "Sample_DataBound_Text";
- }
-
- if (urlFieldDescriptor != null) {
- link.NavigateUrl = FormatDataNavigateUrlValue (urlFieldDescriptor.GetValue (item));
- } else {
- link.NavigateUrl = "url";
- }
- }
-
+ private void OnDataBindHyperLinkColumn (object sender, EventArgs e)
+ {
+ HyperLink link = (HyperLink) sender;
+ object item = ((DataGridItem) link.NamingContainer).DataItem;
+
+ if (textFieldDescriptor == null && urlFieldDescriptor == null) {
+ PropertyDescriptorCollection properties = TypeDescriptor.GetProperties (item);
+ textFieldDescriptor = properties.Find (DataTextField, true);
+ if (textFieldDescriptor == null && !DesignMode)
+ throw new HttpException (HttpRuntime.FormatResourceString (
+ "Field_Not_Found", DataTextField));
+
+ urlFieldDescriptor = properties.Find (DataNavigateUrlField, true);
+ if (urlFieldDescriptor == null && !DesignMode)
+ throw new HttpException (HttpRuntime.FormatResourceString (
+ "Field_Not_Found", DataNavigateUrlField));
+ }
+
+ if (textFieldDescriptor != null) {
+ link.Text = FormatDataTextValue (textFieldDescriptor.GetValue (item));
+ } else {
+ link.Text = "Sample_DataBound_Text";
+ }
+
+ if (urlFieldDescriptor != null) {
+ link.NavigateUrl = FormatDataNavigateUrlValue (urlFieldDescriptor.GetValue (item));
+ } else {
+ link.NavigateUrl = "url";
+ }
+ }
+
protected virtual string FormatDataNavigateUrlValue (object dataUrlValue)
{
if (dataUrlValue == null)
diff --git a/mcs/class/System.Web/System.Web.UI.WebControls/ListControl.cs b/mcs/class/System.Web/System.Web.UI.WebControls/ListControl.cs
index 1c869dca233..4b2913d3c8c 100644
--- a/mcs/class/System.Web/System.Web.UI.WebControls/ListControl.cs
+++ b/mcs/class/System.Web/System.Web.UI.WebControls/ListControl.cs
@@ -32,7 +32,6 @@ namespace System.Web.UI.WebControls
private ListItemCollection items;
private int cachedSelectedIndex = -1;
- private string cachedSelectedValue;
public ListControl(): base(HtmlTextWriterTag.Select)
{
@@ -98,10 +97,14 @@ namespace System.Web.UI.WebControls
}
set
{
- if(value == null || value is IListSource || value is IEnumerable) {
- dataSource = value;
- return;
- }
+ if(value != null)
+ {
+ if(value is IListSource || value is IEnumerable)
+ {
+ dataSource = value;
+ return;
+ }
+ }
throw new ArgumentException(HttpRuntime.FormatResourceString(ID, "Invalid DataSource Type"));
}
}
@@ -232,14 +235,9 @@ namespace System.Web.UI.WebControls
ListItem item = null;
if (value != null) {
- if (Items.Count > 0) {
- item = Items.FindByValue (value);
- if (item == null)
- throw new ArgumentOutOfRangeException ("value");
- } else {
- cachedSelectedValue = value;
- return;
- }
+ item = Items.FindByValue (value);
+ if (item == null)
+ throw new ArgumentOutOfRangeException (value);
}
ClearSelection ();
@@ -312,11 +310,11 @@ namespace System.Web.UI.WebControls
Items.Clear();
- bool dontUseProperties = (dtf.Length == 0 && dvf.Length == 0);
+ bool useProperties = (dtf.Length > 0 && dvf.Length > 0);
foreach (object current in ds) {
ListItem li = new ListItem();
- if (dontUseProperties){
+ if (!useProperties){
li.Text = String.Format (dtfs, current);
li.Value = current.ToString ();
Items.Add (li);
@@ -337,22 +335,7 @@ namespace System.Web.UI.WebControls
Items.Add(li);
}
}
-
- if (cachedSelectedValue != null) {
- int index = Items.FindByValueInternal (cachedSelectedValue);
- if (index == -1)
- throw new ArgumentOutOfRangeException("value");
-
- if (cachedSelectedIndex != -1 && cachedSelectedIndex != index)
- throw new ArgumentException(HttpRuntime.FormatResourceString(
- "Attributes_mutually_exclusive", "Selected Index", "Selected Value"));
-
- SelectedIndex = index;
- cachedSelectedIndex = -1;
- cachedSelectedValue = null;
- return;
- }
-
+
if (cachedSelectedIndex != -1) {
SelectedIndex = cachedSelectedIndex;
cachedSelectedIndex = -1;
diff --git a/mcs/class/System.Web/System.Web.UI.WebControls/Style.cs b/mcs/class/System.Web/System.Web.UI.WebControls/Style.cs
index 415ba2637f8..b94de2f69c0 100644
--- a/mcs/class/System.Web/System.Web.UI.WebControls/Style.cs
+++ b/mcs/class/System.Web/System.Web.UI.WebControls/Style.cs
@@ -7,46 +7,45 @@
//
// (C) Gaurav Vaish (2002)
// (C) 2003 Andreas Nahr
-//
-
-using System;
-using System.Text;
-using System.Collections;
-using System.Drawing;
-using System.Globalization;
-using System.ComponentModel;
-using System.Web;
-using System.Web.UI;
-
-namespace System.Web.UI.WebControls
-{
- [ToolboxItem(false)]
- [TypeConverter(typeof(ExpandableObjectConverter))]
- public class Style : Component , IStateManager
- {
- internal static int MARKED = (0x01 << 0);
- internal static int BACKCOLOR = (0x01 << 1);
- internal static int BORDERCOLOR = (0x01 << 2);
- internal static int BORDERSTYLE = (0x01 << 3);
- internal static int BORDERWIDTH = (0x01 << 4);
- internal static int CSSCLASS = (0x01 << 5);
- internal static int FORECOLOR = (0x01 << 6);
- internal static int HEIGHT = (0x01 << 7);
- internal static int WIDTH = (0x01 << 8);
- internal static int FONT_BOLD = (0x01 << 9);
- internal static int FONT_ITALIC = (0x01 << 10);
- internal static int FONT_NAMES = (0x01 << 11);
- internal static int FONT_SIZE = (0x01 << 12);
- internal static int FONT_STRIKE = (0x01 << 13);
- internal static int FONT_OLINE = (0x01 << 14);
- internal static int FONT_ULINE = (0x01 << 15);
-
- internal static string selectionBitString = "_SBS";
-
- StateBag viewState;
- int selectionBits;
- bool selfStateBag;
- bool marked;
+//
+
+using System;
+using System.Text;
+using System.Collections;
+using System.Drawing;
+using System.Globalization;
+using System.ComponentModel;
+using System.Web;
+using System.Web.UI;
+
+namespace System.Web.UI.WebControls
+{
+ [ToolboxItem(false)]
+ [TypeConverter(typeof(ExpandableObjectConverter))]
+ public class Style : Component , IStateManager
+ {
+ internal static int MARKED = (0x01 << 0);
+ internal static int BACKCOLOR = (0x01 << 1);
+ internal static int BORDERCOLOR = (0x01 << 2);
+ internal static int BORDERSTYLE = (0x01 << 3);
+ internal static int BORDERWIDTH = (0x01 << 4);
+ internal static int CSSCLASS = (0x01 << 5);
+ internal static int FORECOLOR = (0x01 << 6);
+ internal static int HEIGHT = (0x01 << 7);
+ internal static int WIDTH = (0x01 << 8);
+ internal static int FONT_BOLD = (0x01 << 9);
+ internal static int FONT_ITALIC = (0x01 << 10);
+ internal static int FONT_NAMES = (0x01 << 11);
+ internal static int FONT_SIZE = (0x01 << 12);
+ internal static int FONT_STRIKE = (0x01 << 13);
+ internal static int FONT_OLINE = (0x01 << 14);
+ internal static int FONT_ULINE = (0x01 << 15);
+
+ internal static string selectionBitString = "_SystemWebUIWebControlsStyle_SBS";
+
+ private StateBag viewState;
+ private int selectionBits;
+ private bool selfStateBag;
private FontInfo font;
@@ -87,12 +86,12 @@ namespace System.Web.UI.WebControls
return ( (selectionBits & bit) != 0x00);
}
- internal virtual void Set(int bit)
- {
- selectionBits |= bit;
- if (IsTrackingViewState)
- selectionBits |= MARKED;
- }
+ internal virtual void Set(int bit)
+ {
+ selectionBits |= bit;
+ if(IsTrackingViewState)
+ selectionBits |= MARKED;
+ }
[NotifyParentProperty (true)]
[DefaultValue (null), Bindable (true), WebCategory ("Appearance")]
@@ -494,44 +493,50 @@ namespace System.Web.UI.WebControls
font.Reset();
selectionBits = 0x00;
}
-
- protected bool IsTrackingViewState {
- get { return marked; }
- }
-
- protected internal virtual void TrackViewState ()
- {
- if (selfStateBag)
- ViewState.TrackViewState ();
-
- marked = true;
- }
-
- protected internal virtual object SaveViewState ()
- {
- if (viewState != null) {
- if (marked)
- ViewState [selectionBitString] = selectionBits;
-
- if (selfStateBag)
- return ViewState.SaveViewState ();
- }
-
- return null;
- }
-
- protected internal void LoadViewState(object state)
- {
- if (state != null && selfStateBag)
- ViewState.LoadViewState (state);
-
- if (viewState != null) {
- object o = ViewState [selectionBitString];
- if (o != null)
- selectionBits = (int) o;
- }
- }
-
+
+ protected bool IsTrackingViewState
+ {
+ get
+ {
+ return ( (selectionBits & MARKED) != 0x00 );
+ }
+ }
+
+ protected internal virtual void TrackViewState()
+ {
+ if(viewState!=null)
+ ViewState.TrackViewState();
+ Set(MARKED);
+ }
+
+ protected internal virtual object SaveViewState()
+ {
+ if(viewState != null)
+ {
+ if(IsSet(MARKED))
+ {
+ ViewState[selectionBitString] = selectionBits;
+ }
+ if(selfStateBag)
+ {
+ return ViewState.SaveViewState();
+ }
+ }
+ return null;
+ }
+
+ protected internal void LoadViewState(object state)
+ {
+ if (state != null && selfStateBag)
+ ViewState.LoadViewState(state);
+
+ if (viewState != null) {
+ object o = ViewState[selectionBitString];
+ if (o != null)
+ selectionBits = (int) o;
+ }
+ }
+
void IStateManager.LoadViewState(object state)
{
LoadViewState(state);
diff --git a/mcs/class/System.Web/System.Web.UI.WebControls/WebControl.cs b/mcs/class/System.Web/System.Web.UI.WebControls/WebControl.cs
index 2e3aea8612d..e0aa65f74a0 100755
--- a/mcs/class/System.Web/System.Web.UI.WebControls/WebControl.cs
+++ b/mcs/class/System.Web/System.Web.UI.WebControls/WebControl.cs
@@ -425,21 +425,18 @@ namespace System.Web.UI.WebControls
return new Style(ViewState);
}
- protected override void LoadViewState (object savedState)
- {
- if (savedState == null)
- return;
-
- Triplet saved = (Triplet) savedState;
- base.LoadViewState (saved.First);
- if (saved.Second != null ||
- ViewState [System.Web.UI.WebControls.Style.selectionBitString] != null)
- ControlStyle.LoadViewState (saved.Second);
-
- if (attributeState != null)
- attributeState.LoadViewState (saved.Third);
- }
-
+ protected override void LoadViewState (object savedState)
+ {
+ if (savedState != null) {
+ Triplet saved = (Triplet) savedState;
+ base.LoadViewState (saved.First);
+ if (ControlStyleCreated)
+ ControlStyle.LoadViewState (saved.Second);
+ if (attributeState != null)
+ attributeState.LoadViewState (saved.Third);
+ }
+ }
+
protected override void Render(HtmlTextWriter writer)
{
RenderBeginTag(writer);
@@ -451,21 +448,21 @@ namespace System.Web.UI.WebControls
{
base.Render(writer);
}
-
- protected override object SaveViewState()
- {
- object controlView = null;
- if (ControlStyleCreated)
- controlView = ControlStyle.SaveViewState ();
-
- object baseView = base.SaveViewState ();
- object attrView = null;
- if (attributeState != null)
- attrView = attributeState.SaveViewState ();
-
- return new Triplet (baseView, controlView, attrView);
- }
-
+
+ protected override object SaveViewState()
+ {
+ object baseView = base.SaveViewState ();
+ object controlView = null;
+ if (ControlStyleCreated)
+ controlView = ControlStyle.SaveViewState();
+
+ object attrView = null;
+ if (attributeState != null)
+ attrView = attributeState.SaveViewState();
+
+ return new Triplet (baseView, controlView, attrView);
+ }
+
protected override void TrackViewState()
{
base.TrackViewState();
diff --git a/mcs/class/System.Web/System.Web.UI/BaseParser.cs b/mcs/class/System.Web/System.Web.UI/BaseParser.cs
index b907394a0a5..b0976f22003 100755
--- a/mcs/class/System.Web/System.Web.UI/BaseParser.cs
+++ b/mcs/class/System.Web/System.Web.UI/BaseParser.cs
@@ -108,8 +108,6 @@ namespace System.Web.UI
return baseVDir;
}
-
- set { baseVDir = value; }
}
}
}
diff --git a/mcs/class/System.Web/System.Web.UI/ChangeLog b/mcs/class/System.Web/System.Web.UI/ChangeLog
index 22685b88040..f628f01b6e1 100644
--- a/mcs/class/System.Web/System.Web.UI/ChangeLog
+++ b/mcs/class/System.Web/System.Web.UI/ChangeLog
@@ -1,20 +1,3 @@
-2003-08-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * ControlCollection.cs:
- * EmptyControlCollection.cs: create a minimum ArrayList for this.
-
- * BaseParser.cs: added setter for BaseVirtualDir.
-
- * Page.cs: fixed message when restoring view state fails.
- * UserControlParser.cs: set the BaseVirtualDirectory to handle the case
- when a relative path to the control is given. Fixes bug #47685.
-
-2003-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * Control.cs: when we load the viewstate for a control that has children
- viewstates and the child is not found, keep its viewstate around and
- wait until the child is added to load the viewstate. Fixes bug #47697.
-
2003-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* TemplateControl.cs: more Delegate.CreateDelegate fixes.
diff --git a/mcs/class/System.Web/System.Web.UI/Control.cs b/mcs/class/System.Web/System.Web.UI/Control.cs
index 5d1c2ff5cb1..1fb54707b6b 100644
--- a/mcs/class/System.Web/System.Web.UI/Control.cs
+++ b/mcs/class/System.Web/System.Web.UI/Control.cs
@@ -124,16 +124,14 @@ namespace System.Web.UI
private bool creatingControls = false;
private bool bindingContainer = true;
private bool autoEventWireup = true;
-
- bool inited = false;
- bool viewStateLoaded;
- bool loaded = false;
- bool prerendered = false;
- int defaultNumberID = 0;
-
- private DataBindingCollection dataBindings = null;
- Hashtable pendingVS; // may hold unused viewstate data from child controls
-
+
+ bool inited = false;
+ bool loaded = false;
+ bool prerendered = false;
+ int defaultNumberID = 0;
+
+ private DataBindingCollection dataBindings = null;
+
public Control()
{
if (this is INamingContainer) _isNamingContainer = true;
@@ -426,44 +424,30 @@ namespace System.Web.UI
protected internal virtual void AddedControl (Control control, int index)
{
- /* Ensure the control don't have more than 1 parent */
- if (control._parent != null)
- control._parent.Controls.Remove (control);
-
- control._parent = this;
- control._page = _page;
- Control nc = _isNamingContainer ? this : NamingContainer;
-
- if (nc != null) {
- control._namingContainer = nc;
- if (control.AutoID == true && control._userId == null)
- control._userId = nc.GetDefaultName () + "a";
- }
-
- if (inited)
- control.InitRecursive (nc);
-
-
- if (viewStateLoaded) {
- if (pendingVS != null) {
- object vs = pendingVS [index];
- if (vs != null) {
- pendingVS.Remove (index);
- if (pendingVS.Count == 0)
- pendingVS = null;
-
- control.LoadViewStateRecursive (vs);
- }
- }
- }
-
- if (loaded)
- control.LoadRecursive ();
-
- if (prerendered)
- control.PreRenderRecursiveInternal ();
- }
-
+ /* Ensure the control don't have more than 1 parent */
+ if (control._parent != null)
+ control._parent.Controls.Remove (control);
+
+ control._parent = this;
+ control._page = _page;
+ Control nc = _isNamingContainer ? this : NamingContainer;
+
+ if (nc != null) {
+ control._namingContainer = nc;
+ if (control.AutoID == true && control._userId == null)
+ control._userId = nc.GetDefaultName () + "a";
+ }
+
+ if (inited)
+ control.InitRecursive (nc);
+
+ if (loaded)
+ control.LoadRecursive ();
+
+ if (prerendered)
+ control.PreRenderRecursiveInternal ();
+ }
+
protected virtual void AddParsedSubObject(object obj) //DIT
{
WebTrace.PushContext ("Control.AddParsedSubobject ()");
@@ -889,35 +873,27 @@ namespace System.Web.UI
return new Triplet (thisState, controlList, controlStates);
}
-
- internal void LoadViewStateRecursive (object savedState)
- {
- if (!EnableViewState || !Visible || savedState == null)
- return;
-
- Triplet savedInfo = (Triplet) savedState;
- LoadViewState (savedInfo.First);
-
- ArrayList controlList = savedInfo.Second as ArrayList;
- if (controlList == null)
- return;
- ArrayList controlStates = savedInfo.Third as ArrayList;
- int nControls = controlList.Count;
- for (int i = 0; i < nControls; i++) {
- Control c = FindControl ((string) controlList [i]);
- if (c != null && controlStates != null) {
- c.LoadViewStateRecursive (controlStates [i]);
- } else {
- if (pendingVS == null)
- pendingVS = new Hashtable ();
-
- pendingVS [i] = controlStates [i];
- }
- }
-
- viewStateLoaded = true;
- }
-
+
+ internal void LoadViewStateRecursive (object savedState)
+ {
+ if (!EnableViewState || !Visible || savedState == null)
+ return;
+
+ Triplet savedInfo = (Triplet) savedState;
+ LoadViewState (savedInfo.First);
+
+ ArrayList controlList = savedInfo.Second as ArrayList;
+ if (controlList == null)
+ return;
+ ArrayList controlStates = savedInfo.Third as ArrayList;
+ int nControls = controlList.Count;
+ for (int i = 0; i < nControls; i++) {
+ Control c = FindControl ((string) controlList [i]);
+ if (c != null && controlStates != null)
+ c.LoadViewStateRecursive (controlStates [i]);
+ }
+ }
+
void IParserAccessor.AddParsedSubObject(object obj)
{
AddParsedSubObject(obj);
diff --git a/mcs/class/System.Web/System.Web.UI/ControlCollection.cs b/mcs/class/System.Web/System.Web.UI/ControlCollection.cs
index 2cd04ff5e8c..adfc1a2dfcb 100755
--- a/mcs/class/System.Web/System.Web.UI/ControlCollection.cs
+++ b/mcs/class/System.Web/System.Web.UI/ControlCollection.cs
@@ -13,7 +13,7 @@ namespace System.Web.UI {
public class ControlCollection : ICollection, IEnumerable
{
- ArrayList list;
+ ArrayList list = new ArrayList ();
Control owner;
public ControlCollection (Control owner)
@@ -21,16 +21,6 @@ namespace System.Web.UI {
if (owner == null)
throw new ArgumentException ();
- list = new ArrayList ();
- this.owner = owner;
- }
-
- internal ControlCollection (Control owner, bool shortList)
- {
- if (owner == null)
- throw new ArgumentException ();
-
- list = new ArrayList (shortList ? 1 : 0);
this.owner = owner;
}
diff --git a/mcs/class/System.Web/System.Web.UI/EmptyControlCollection.cs b/mcs/class/System.Web/System.Web.UI/EmptyControlCollection.cs
index 4ef39b980e5..9d5a039625e 100755
--- a/mcs/class/System.Web/System.Web.UI/EmptyControlCollection.cs
+++ b/mcs/class/System.Web/System.Web.UI/EmptyControlCollection.cs
@@ -13,7 +13,7 @@ namespace System.Web.UI {
public class EmptyControlCollection : ControlCollection
{
public EmptyControlCollection (Control owner)
- : base (owner, true)
+ : base (owner)
{
}
diff --git a/mcs/class/System.Web/System.Web.UI/Page.cs b/mcs/class/System.Web/System.Web.UI/Page.cs
index d76e65887c3..42c1bd0f5df 100755
--- a/mcs/class/System.Web/System.Web.UI/Page.cs
+++ b/mcs/class/System.Web/System.Web.UI/Page.cs
@@ -727,7 +727,7 @@ public class Page : TemplateControl, IHttpHandler
try {
_savedViewState = fmt.Deserialize (view_state);
} catch (Exception e) {
- throw new HttpException ("Error restoring page viewstate.\n", e);
+ throw new HttpException ("Error restoring page viewstate.\n{0}", e);
}
return _savedViewState;
diff --git a/mcs/class/System.Web/System.Web.UI/UserControlParser.cs b/mcs/class/System.Web/System.Web.UI/UserControlParser.cs
index 11ed81005ff..bc1e57e4465 100644
--- a/mcs/class/System.Web/System.Web.UI/UserControlParser.cs
+++ b/mcs/class/System.Web/System.Web.UI/UserControlParser.cs
@@ -19,9 +19,7 @@ namespace System.Web.UI
internal UserControlParser (string virtualPath, string inputFile, HttpContext context)
{
Context = context;
- string vp = UrlUtils.Combine (virtualPath, inputFile);
- BaseVirtualDir = UrlUtils.GetDirectory (vp);
- InputFile = context.Request.MapPath (vp);
+ InputFile = context.Request.MapPath (inputFile);
}
public static Type GetCompiledType (string virtualPath, string inputFile, HttpContext context)
diff --git a/mcs/class/System.Web/System.Web/ChangeLog b/mcs/class/System.Web/System.Web/ChangeLog
index afecc61c06e..6c66d0f963e 100644
--- a/mcs/class/System.Web/System.Web/ChangeLog
+++ b/mcs/class/System.Web/System.Web/ChangeLog
@@ -1,25 +1,3 @@
-2003-08-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * HttpServerUtility.cs: fixed path and query. Path by Rich Alimi
- <rich@velvetsea.net>.
-
-2003-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * HttpException.cs: make the unhandled error more like the MS one.
- * HttpRuntime.cs: set a 500 error code on unhandled exceptions.
-
-2003-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * HttpResponse.cs: flush headers when the body length is 0.
- * StaticFileHandler.cs: added If-Modified-Since handling patch slightly
- modified from the original by Piers Haken <piersh@friskit.com>.
-
-2003-08-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * HttpResponse.cs: another patch from totte and me. This one prevents
- writing output if the client have disconnected and filters the data
- when there's a non-final Flush in the middle of the process.
-
2003-08-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* HttpApplication.cs: fixed typos. Closes bug #44197.
diff --git a/mcs/class/System.Web/System.Web/HttpException.cs b/mcs/class/System.Web/System.Web/HttpException.cs
index f172d3d6759..9cd5f6310a0 100644
--- a/mcs/class/System.Web/System.Web/HttpException.cs
+++ b/mcs/class/System.Web/System.Web/HttpException.cs
@@ -80,11 +80,11 @@ namespace System.Web
StringBuilder builder = new StringBuilder ("<html>\n<title>");
builder.Append ("Error"); //FIXME
builder.AppendFormat ("</title><body bgcolor=\"white\">" +
- "<h1><font color=\"red\">Server error in '{0}' " +
- "application</font></h1><hr>\n",
+ "<h1><font color=\"red\">Error in '{0}' " +
+ "Application</font></h1><hr>\n",
HttpRuntime.AppDomainAppVirtualPath);
- builder.AppendFormat ("<h2><font color=\"maroon\"><i>{0}</i></font></h2>\n", Message);
+ builder.AppendFormat ("<h2><font color=\"maroon\"><i>{0}</i></font></h2>\n", "Error"); //FIXME
builder.AppendFormat ("<b>Description: </b>{0}\n<p>\n", "Error processing request.");
builder.AppendFormat ("<b>Error Message: </b>{0}\n<p>\n", HtmlEncode (this.Message));
builder.AppendFormat ("<b>Stack Trace: </b>");
diff --git a/mcs/class/System.Web/System.Web/HttpResponse.cs b/mcs/class/System.Web/System.Web/HttpResponse.cs
index 5439c3c873e..63a3d8553da 100644
--- a/mcs/class/System.Web/System.Web/HttpResponse.cs
+++ b/mcs/class/System.Web/System.Web/HttpResponse.cs
@@ -34,7 +34,6 @@ namespace System.Web
bool _bBuffering;
bool _bHeadersSent;
bool _bFlushing;
- bool filtered;
long _lContentLength;
int _iStatusCode;
@@ -127,8 +126,6 @@ namespace System.Web
{
if (null != _Writer)
_Writer.FilterData (true);
-
- filtered = true;
}
[MonoTODO("We need to add cache headers also")]
@@ -675,12 +672,10 @@ namespace System.Web
}
try {
- if (_bClientDisconnected)
- return;
-
- long length = _Writer.BufferSize;
- if (!_bHeadersSent && !_bSuppressHeaders) {
+ long length;
+ if (!_bHeadersSent && !_bSuppressHeaders && !_bClientDisconnected) {
if (bFinish) {
+ length = _Writer.BufferSize;
if (length == 0 && _lContentLength == 0)
_sContentType = null;
@@ -709,23 +704,10 @@ namespace System.Web
}
}
- length = _Writer.BufferSize;
SendHeaders ();
}
}
- if (!filtered) {
- _Writer.FilterData (false);
- length = _Writer.BufferSize;
- }
-
- if (length == 0) {
- _WorkerRequest.FlushResponse (bFinish);
- if (!bFinish)
- _Writer.Clear ();
- return;
- }
-
if (!_bSuppressContent && Request.HttpMethod == "HEAD")
_bSuppressContent = true;
diff --git a/mcs/class/System.Web/System.Web/HttpRuntime.cs b/mcs/class/System.Web/System.Web/HttpRuntime.cs
index 428b10fe16b..1c337df5ed6 100644
--- a/mcs/class/System.Web/System.Web/HttpRuntime.cs
+++ b/mcs/class/System.Web/System.Web/HttpRuntime.cs
@@ -137,7 +137,6 @@ namespace System.Web {
context.Response.Clear ();
context.Response.ClearHeaders ();
- context.Response.StatusCode = 500;
if (!(error is HttpException)) {
error = new HttpException (String.Empty, error);
}
diff --git a/mcs/class/System.Web/System.Web/HttpServerUtility.cs b/mcs/class/System.Web/System.Web/HttpServerUtility.cs
index 4c7caf5435e..8df03fb6173 100644
--- a/mcs/class/System.Web/System.Web/HttpServerUtility.cs
+++ b/mcs/class/System.Web/System.Web/HttpServerUtility.cs
@@ -161,8 +161,8 @@ namespace System.Web
int qmark = path.IndexOf ('?');
string query;
if (qmark != -1) {
- query = path.Substring (qmark + 1);
path = path.Substring (0, qmark);
+ query = path.Substring (qmark + 1);
} else {
query = "";
}
diff --git a/mcs/class/System.Web/System.Web/StaticFileHandler.cs b/mcs/class/System.Web/System.Web/StaticFileHandler.cs
index 27a59617f1f..463e9fd2e72 100644
--- a/mcs/class/System.Web/System.Web/StaticFileHandler.cs
+++ b/mcs/class/System.Web/System.Web/StaticFileHandler.cs
@@ -28,22 +28,8 @@ namespace System.Web
return;
}
- string strHeader = request.Headers ["If-Modified-Since"];
+ DateTime lastWT = fi.LastWriteTime;
try {
- if (strHeader != null) {
- DateTime dtIfModifiedSince = DateTime.ParseExact (strHeader, "r", null);
- DateTime ftime = fi.LastWriteTime.ToUniversalTime ();
- if (ftime <= dtIfModifiedSince) {
- response.StatusCode = 304;
- return;
- }
- }
- } catch { }
-
- try {
- DateTime lastWT = fi.LastWriteTime.ToUniversalTime ();
- response.AddHeader ("Last-Modified", lastWT.ToString ("r"));
-
response.WriteFile (fileName);
response.ContentType = MimeTypes.GetMimeType (fileName);
} catch (Exception e) {
diff --git a/mcs/class/System.XML/ChangeLog b/mcs/class/System.XML/ChangeLog
index 9bcac6935a6..692b1772de0 100644
--- a/mcs/class/System.XML/ChangeLog
+++ b/mcs/class/System.XML/ChangeLog
@@ -1,16 +1,3 @@
-2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * System.Xml.dll.sources: add files from Oleg.
-
-2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * System.Xml.dll.source: add System.Xml/HighWaterStack.cs.
-
-2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
-
- * System.Xml.dll.sources: Added Mono.Xml.Xsl.Operation/XslComment.cs
- and Mono.Xml/IHasXmlSchemaInfo.cs
-
2003-08-11 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
* System.Xml.dll.sources: Added Assembly/Locale.cs
diff --git a/mcs/class/System.XML/Mono.Xml.XPath/ChangeLog b/mcs/class/System.XML/Mono.Xml.XPath/ChangeLog
index a9378174221..58bcee375bf 100644
--- a/mcs/class/System.XML/Mono.Xml.XPath/ChangeLog
+++ b/mcs/class/System.XML/Mono.Xml.XPath/ChangeLog
@@ -1,11 +1,3 @@
-2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
-
- * DTMXPathDocument.cs,
- DTMXPathDocumentBuilder.cs,
- DTMXPathNavigator.cs :
- - Implemented ID support using XmlValidatingReader.
- - Prefix should be String.Empty even if XmlReader.Prefix is null.
-
2003-07-23 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
* DTMXPathDocumentBuilder.cs :
diff --git a/mcs/class/System.XML/Mono.Xml.XPath/DTMXPathDocument.cs b/mcs/class/System.XML/Mono.Xml.XPath/DTMXPathDocument.cs
index 8498e07791f..67a4c01c13d 100644
--- a/mcs/class/System.XML/Mono.Xml.XPath/DTMXPathDocument.cs
+++ b/mcs/class/System.XML/Mono.Xml.XPath/DTMXPathDocument.cs
@@ -22,36 +22,7 @@ namespace Mono.Xml.XPath
#region ctor.
- public DTMXPathDocument (XmlNameTable nameTable,
- int [] firstChild__,
- int [] parent__,
- int [] firstAttribute__,
- int [] previousSibling__,
- int [] nextSibling__,
- int [] depth__,
- int [] position__,
- XPathNodeType [] nodeType__,
- string [] baseUri__,
- bool [] isEmptyElement__,
- string [] localName__,
- string [] namespaceUri__,
- string [] prefix__,
- string [] value__,
- string [] xmlLang__,
- int [] namespaceNode__,
- object [] schemaType__,
- int [] ownerElement__,
- int [] nextAttribute__,
- string [] attrLocalName__,
- string [] attrPrefix__,
- string [] attrNsUri__,
- string [] attrValue__,
- object [] attrSchemaType__,
- int [] nsDeclaredElement__,
- int [] nextNsNode__,
- string [] nsNodeName__,
- string [] nsNodeUri__,
- Hashtable idTable__)
+ public DTMXPathDocument (XmlNameTable nameTable, int [] firstChild__, int [] parent__, int [] firstAttribute__, int [] previousSibling__, int [] nextSibling__, int [] depth__, int [] position__, XPathNodeType [] nodeType__, string [] baseUri__, bool [] isEmptyElement__, string [] localName__, string [] namespaceUri__, string [] prefix__, string [] value__, string [] xmlLang__, int [] namespaceNode__, object [] schemaType__, int [] ownerElement__, int [] nextAttribute__, string [] attrLocalName__, string [] attrPrefix__, string [] attrNsUri__, string [] attrValue__, object [] attrSchemaType__, int [] nsDeclaredElement__, int [] nextNsNode__, string [] nsNodeName__, string [] nsNodeUri__)
{
firstChild_ = firstChild__;
parent_ = parent__;
@@ -86,8 +57,6 @@ namespace Mono.Xml.XPath
nsNodeName_ = nsNodeName__;
nsNodeUri_ = nsNodeUri__;
- idTable_ = idTable__;
-
this.nameTable = nameTable;
}
@@ -98,7 +67,7 @@ namespace Mono.Xml.XPath
public XPathNavigator CreateNavigator ()
{
if (root == null) {
- root = new DTMXPathNavigator (this, nameTable, firstChild_, parent_, firstAttribute_, previousSibling_, nextSibling_, depth_, position_, nodeType_, baseUri_, isEmptyElement_, localName_, namespaceUri_, prefix_, value_, xmlLang_, namespaceNode_, schemaType_, ownerElement_, nextAttribute_, attrLocalName_, attrPrefix_, attrNsUri_, attrValue_, attrSchemaType_, nsDeclaredElement_, nextNsNode_, nsNodeName_, nsNodeUri_, idTable_);
+ root = new DTMXPathNavigator (this, nameTable, firstChild_, parent_, firstAttribute_, previousSibling_, nextSibling_, depth_, position_, nodeType_, baseUri_, isEmptyElement_, localName_, namespaceUri_, prefix_, value_, xmlLang_, namespaceNode_, schemaType_, ownerElement_, nextAttribute_, attrLocalName_, attrPrefix_, attrNsUri_, attrValue_, attrSchemaType_, nsDeclaredElement_, nextNsNode_, nsNodeName_, nsNodeUri_);
return root;
} else
return root.Clone ();
@@ -147,8 +116,10 @@ namespace Mono.Xml.XPath
string [] nsNodeName_; // NS prefix.
string [] nsNodeUri_; // NS uri.
+ // ID-Key
+ // [string attribute-name] -> idTable
// idTable [string value] -> int nodeId
- readonly Hashtable idTable_;
+ readonly Hashtable idTableTable;
#endregion
diff --git a/mcs/class/System.XML/Mono.Xml.XPath/DTMXPathDocumentBuilder.cs b/mcs/class/System.XML/Mono.Xml.XPath/DTMXPathDocumentBuilder.cs
index a3af4d2317c..4a49e35ba62 100644
--- a/mcs/class/System.XML/Mono.Xml.XPath/DTMXPathDocumentBuilder.cs
+++ b/mcs/class/System.XML/Mono.Xml.XPath/DTMXPathDocumentBuilder.cs
@@ -19,43 +19,29 @@ namespace Mono.Xml.XPath
public class DTMXPathDocumentBuilder
{
public DTMXPathDocumentBuilder (string url)
- : this (url, XmlSpace.None, false)
+ : this (url, XmlSpace.None)
{
}
public DTMXPathDocumentBuilder (string url, XmlSpace space)
- : this (url, space, false)
- {
- }
-
- public DTMXPathDocumentBuilder (string url, XmlSpace space, bool supportID)
- : this (new XmlTextReader (url), space, supportID)
+ : this (new XmlTextReader (url), space)
{
}
public DTMXPathDocumentBuilder (XmlReader reader)
- : this (reader, XmlSpace.None, false)
+ : this (reader, XmlSpace.None)
{
}
public DTMXPathDocumentBuilder (XmlReader reader, XmlSpace space)
- : this (reader, space, false)
- {
- }
-
- public DTMXPathDocumentBuilder (XmlReader reader, XmlSpace space, bool supportID)
{
this.xmlReader = reader;
- if (supportID)
- this.validatingReader = reader as XmlValidatingReader;
this.xmlSpace = xmlSpace;
this.nameTable = reader.NameTable;
Compile ();
}
- bool supportID;
XmlReader xmlReader;
- XmlValidatingReader validatingReader;
XmlSpace xmlSpace;
XmlNameTable nameTable;
int defaultCapacity = 100;
@@ -102,9 +88,6 @@ namespace Mono.Xml.XPath
int [] nextNsNode_ = new int [100];
string [] nsNodeName_ = new string [100];
string [] nsNodeUri_ = new string [100];
-
- // idTable [string value] -> int nodeId
- Hashtable idTable_;
#endregion
int nodeIndex;
@@ -146,15 +129,12 @@ namespace Mono.Xml.XPath
nsDeclaredElement_,
nextNsNode_,
nsNodeName_,
- nsNodeUri_,
- idTable_
+ nsNodeUri_
);
}
public void Compile ()
{
- idTable_ = new Hashtable ();
-
// index 0 is dummy. No node (including Root) is assigned to this index
// So that we can easily compare index != 0 instead of index < 0.
// (Difference between jnz or jbe in 80x86.)
@@ -304,31 +284,20 @@ namespace Mono.Xml.XPath
if (lastNsIndexInCurrent == 0)
namespaceNode_ [nodeIndex] = nsIndex;
this.AddNsNode (nodeIndex,
- (xmlReader.Prefix == null || xmlReader.Prefix == String.Empty) ?
+ xmlReader.Prefix == "" ?
"" : xmlReader.LocalName,
xmlReader.Value);
lastNsIndexInCurrent = nsIndex;
} else {
// add attribute node.
attributeIndex ++;
- this.AddAttribute (nodeIndex, xmlReader.LocalName, xmlReader.NamespaceURI, xmlReader.Prefix != null ? xmlReader.Prefix : String.Empty, xmlReader.Value, null);
+ this.AddAttribute (nodeIndex, xmlReader.LocalName, xmlReader.NamespaceURI, xmlReader.Prefix, xmlReader.Value, null);
if (firstAttributeIndex == 0)
firstAttributeIndex = attributeIndex;
else
nextAttribute_ [attributeIndex - 1] = attributeIndex;
// dummy for "current" attribute.
nextAttribute_ [attributeIndex] = 0;
-
- // Identity infoset
- if (validatingReader != null) {
- XmlSchemaDatatype dt = validatingReader.SchemaType as XmlSchemaDatatype;
- if (dt == null) {
- XmlSchemaType xsType = validatingReader.SchemaType as XmlSchemaType;
- dt = xsType.Datatype;
- }
- if (dt != null && dt.TokenizedType == XmlTokenizedType.ID)
- idTable_.Add (xmlReader.Value, nodeIndex);
- }
}
} while (xmlReader.MoveToNextAttribute ());
xmlReader.MoveToElement ();
diff --git a/mcs/class/System.XML/Mono.Xml.XPath/DTMXPathNavigator.cs b/mcs/class/System.XML/Mono.Xml.XPath/DTMXPathNavigator.cs
index 2e26a0cec81..690c373061e 100644
--- a/mcs/class/System.XML/Mono.Xml.XPath/DTMXPathNavigator.cs
+++ b/mcs/class/System.XML/Mono.Xml.XPath/DTMXPathNavigator.cs
@@ -19,23 +19,7 @@ namespace Mono.Xml.XPath
{
#region Copy of XPathDocument
- public DTMXPathNavigator (DTMXPathDocument document,
- XmlNameTable nameTable,
- int [] firstChild__, int [] parent__,
- int [] firstAttribute__, int [] previousSibling__,
- int [] nextSibling__, int [] depth__,
- int [] position__, XPathNodeType [] nodeType__,
- string [] baseUri__, bool [] isEmptyElement__,
- string [] localName__, string [] namespaceUri__,
- string [] prefix__, string [] value__,
- string [] xmlLang__, int [] namespaceNode__,
- object [] schemaType__, int [] ownerElement__,
- int [] nextAttribute__, string [] attrLocalName__,
- string [] attrPrefix__, string [] attrNsUri__,
- string [] attrValue__, object [] attrSchemaType__,
- int [] nsDeclaredElement__, int [] nextNsNode__,
- string [] nsNodeName__, string [] nsNodeUri__,
- Hashtable idTable__)
+ public DTMXPathNavigator (DTMXPathDocument document, XmlNameTable nameTable, int [] firstChild__, int [] parent__, int [] firstAttribute__, int [] previousSibling__, int [] nextSibling__, int [] depth__, int [] position__, XPathNodeType [] nodeType__, string [] baseUri__, bool [] isEmptyElement__, string [] localName__, string [] namespaceUri__, string [] prefix__, string [] value__, string [] xmlLang__, int [] namespaceNode__, object [] schemaType__, int [] ownerElement__, int [] nextAttribute__, string [] attrLocalName__, string [] attrPrefix__, string [] attrNsUri__, string [] attrValue__, object [] attrSchemaType__, int [] nsDeclaredElement__, int [] nextNsNode__, string [] nsNodeName__, string [] nsNodeUri__)
{
firstChild_ = firstChild__;
parent_ = parent__;
@@ -70,8 +54,6 @@ namespace Mono.Xml.XPath
nsNodeName_ = nsNodeName__;
nsNodeUri_ = nsNodeUri__;
- idTable_ = idTable__;
-
this.nameTable = nameTable;
this.MoveToRoot ();
this.document = document;
@@ -79,17 +61,7 @@ namespace Mono.Xml.XPath
// Copy constructor including position informations.
public DTMXPathNavigator (DTMXPathNavigator org)
- : this (org.document, org.nameTable,
- org.firstChild_, org.parent_, org.firstAttribute_,
- org.previousSibling_, org.nextSibling_, org.depth_,
- org.position_, org.nodeType_, org.baseUri_,
- org.isEmptyElement_, org.localName_, org.namespaceUri_,
- org.prefix_, org.value_, org.xmlLang_,
- org.namespaceNode_, org.schemaType_, org.ownerElement_,
- org.nextAttribute_, org.attrLocalName_, org.attrPrefix_,
- org.attrNsUri_, org.attrValue_, org.attrSchemaType_,
- org.nsDeclaredElement_, org.nextNsNode_, org.nsNodeName_,
- org.nsNodeUri_, org.idTable_)
+ : this (org.document, org.nameTable, org.firstChild_, org.parent_, org.firstAttribute_, org.previousSibling_, org.nextSibling_, org.depth_, org.position_, org.nodeType_, org.baseUri_, org.isEmptyElement_, org.localName_, org.namespaceUri_, org.prefix_, org.value_, org.xmlLang_, org.namespaceNode_, org.schemaType_, org.ownerElement_, org.nextAttribute_, org.attrLocalName_, org.attrPrefix_, org.attrNsUri_, org.attrValue_, org.attrSchemaType_, org.nsDeclaredElement_, org.nextNsNode_, org.nsNodeName_, org.nsNodeUri_)
{
currentIsNode = org.currentIsNode;
currentIsAttr = org.currentIsAttr;
@@ -138,12 +110,10 @@ namespace Mono.Xml.XPath
string [] nsNodeName_; // NS prefix.
string [] nsNodeUri_; // NS uri.
- // ID table
- Hashtable idTable_;
-
- // Key table (considered xsd:keyref for XPath 2.0)
+ // ID-Key (considered xsd:keyref for XPath 2.0)
Hashtable keyRefTable; // [string key-name] -> idTable
// idTable [string value] -> int nodeId
+ // keyname="" for ID
#endregion
bool currentIsNode;
@@ -478,19 +448,9 @@ namespace Mono.Xml.XPath
return moveToSpecifiedNamespace (cur, namespaceScope);
}
- // Note that this support is extension to XPathDocument.
- // XPathDocument does not support ID reference.
public override bool MoveToId (string id)
{
-// return MoveToKeyRef ("", id);
- if (idTable_.ContainsKey (id)) {
- currentNode = (int) idTable_ [id];
- currentIsNode = true;
- currentIsAttr = false;
- return true;
- }
- else
- return false;
+ return MoveToKeyRef ("", id);
}
// This is extension for XPath 2.0
diff --git a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/ChangeLog b/mcs/class/System.XML/Mono.Xml.Xsl.Operations/ChangeLog
index 1ef97d7a0b7..8eed6614f01 100644
--- a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/ChangeLog
+++ b/mcs/class/System.XML/Mono.Xml.Xsl.Operations/ChangeLog
@@ -1,60 +1,3 @@
-2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * XslNumber.cs: Better support for formatting.
-
-2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * XslNumber.cs: Support for multiple level numbering
-
-2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * XslNumber.cs: Initial support.
-
-2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * XslCopyOf.cs, XslLiteralElement: Use namespace support in Outputter.
-
-2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * XslVariable.cs: sync to API changes.
-
-2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * *.cs: Support for xsl:output. (Oleg)
-
-2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * XslCopyOf.cs: handle default ns
- * XslFallback.cs: implement
- * XslLiteralElement.cs: copy namespaces that were declared.
- * XslTemplateContent.cs: handle ext elements
-
-2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * XslComment.cs, XslTemplateContent.cs: remove dead variables.
-
-2003-08-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * XslComment.cs: patch by BenM that implements Evaluate.
-
-2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
-
- * XslCallTemplates.cs : Forgot to commit ;-)
-
-2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
-
- * XslApplyTemplates.cs,
- XslCallTemplate.cs : Should accept other than element content such
- as comment and PI.
- * XslNumber.cs : In Compile(), 'value' might not exist. (Think about
- it later if how it should be.)
- * XslTemplateContent.cs : "comment" and "number" support. (I know they
- are still incomplete.)
-
-2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
-
- * Added XslComment.cs.
-
2003-08-05 Ben Maurer <bmaurer@users.sourceforge.net>
* XslVariable.cs: Fix up how variables are evaluated.
diff --git a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslApplyTemplates.cs b/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslApplyTemplates.cs
index 77d514df8c0..08861c0dc7a 100644
--- a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslApplyTemplates.cs
+++ b/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslApplyTemplates.cs
@@ -31,32 +31,22 @@ namespace Mono.Xml.Xsl.Operations {
if (c.Input.MoveToFirstChild ()) {
do {
- switch (c.Input.NodeType) {
- case XPathNodeType.Comment:
- case XPathNodeType.ProcessingInstruction:
- case XPathNodeType.Whitespace:
- continue;
- case XPathNodeType.Element:
- if (c.Input.NamespaceURI != XsltNamespace)
- throw new Exception ("unexptected element"); // TODO: fwd compat
-
- switch (c.Input.LocalName)
- {
- case "with-param":
- withParams.Add (new XslVariableInformation (c));
- break;
-
- case "sort":
- if (select == null)
- select = c.CompileExpression ("*");
- c.AddSort (select, new Sort (c));
- break;
- default:
- throw new Exception ("unexptected element"); // todo forwards compat
- }
- break;
- default:
- throw new Exception ("unexpected node type " + c.Input.NodeType); // todo forwards compat
+ if (c.Input.NamespaceURI != XsltNamespace)
+ throw new Exception ("unexptected element"); // TODO: fwd compat
+
+ switch (c.Input.LocalName)
+ {
+ case "with-param":
+ withParams.Add (new XslVariableInformation (c));
+ break;
+
+ case "sort":
+ if (select == null)
+ select = c.CompileExpression ("*");
+ c.AddSort (select, new Sort (c));
+ break;
+ default:
+ throw new Exception ("unexptected element"); // todo forwards compat
}
} while (c.Input.MoveToNext ());
c.Input.MoveToParent ();
diff --git a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslCallTemplate.cs b/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslCallTemplate.cs
index 5bc4cca8747..26989010d73 100644
--- a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslCallTemplate.cs
+++ b/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslCallTemplate.cs
@@ -28,26 +28,16 @@ namespace Mono.Xml.Xsl.Operations {
if (c.Input.MoveToFirstChild ()) {
do {
- switch (c.Input.NodeType) {
- case XPathNodeType.Comment:
- case XPathNodeType.ProcessingInstruction:
- case XPathNodeType.Whitespace:
- continue;
- case XPathNodeType.Element:
- if (c.Input.NamespaceURI != XsltNamespace)
- throw new Exception ("unexptected element"); // TODO: fwd compat
-
- switch (c.Input.LocalName)
- {
- case "with-param":
- withParams.Add (new XslVariableInformation (c));
- break;
- default:
- throw new Exception ("unexptected element"); // todo forwards compat
- }
- break;
- default:
- throw new Exception ("unexptected node type " + c.Input.NodeType); // TODO: fwd compat
+ if (c.Input.NamespaceURI != XsltNamespace)
+ throw new Exception ("unexptected element"); // TODO: fwd compat
+
+ switch (c.Input.LocalName)
+ {
+ case "with-param":
+ withParams.Add (new XslVariableInformation (c));
+ break;
+ default:
+ throw new Exception ("unexptected element"); // todo forwards compat
}
} while (c.Input.MoveToNext ());
c.Input.MoveToParent ();
diff --git a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslComment.cs b/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslComment.cs
deleted file mode 100644
index 13b586ddcbe..00000000000
--- a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslComment.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-//
-// XslComment.cs
-//
-// Authors:
-// Ben Maurer (bmaurer@users.sourceforge.net)
-// Atsushi Enomoto (ginga@kit.hi-ho.ne.jp)
-//
-// (C) 2003 Ben Maurer
-// (C) 2003 Atsushi Enomoto
-//
-
-using System;
-using System.Collections;
-using System.IO;
-using System.Xml;
-using System.Xml.XPath;
-using System.Xml.Xsl;
-
-namespace Mono.Xml.Xsl.Operations {
- public class XslComment : XslCompiledElement {
- bool disableOutputEscaping = false;
- XslOperation value;
-
- public XslComment (Compiler c) : base (c) {}
-
- protected override void Compile (Compiler c)
- {
- if (c.Input.MoveToFirstChild ()) {
- value = c.CompileTemplateContent ();
- c.Input.MoveToParent ();
- }
- }
-
- public override void Evaluate (XslTransformProcessor p)
- {
- StringWriter s = new StringWriter ();
- //TODO: only text nodes allowed here, other nodes must be ignored along with any content,
- //so TextOutputter is not really suitable here
- Outputter outputter = new TextOutputter(s);
- p.PushOutput (outputter);
- value.Evaluate (p);
- p.PopOutput ();
-
- p.Out.WriteComment (s.ToString ());
- }
- }
-}
diff --git a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslCopyOf.cs b/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslCopyOf.cs
index 3fc6d785956..cace0871d22 100644
--- a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslCopyOf.cs
+++ b/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslCopyOf.cs
@@ -25,22 +25,22 @@ namespace Mono.Xml.Xsl.Operations {
select = c.CompileExpression (c.GetAttribute ("select"));
}
- void CopyNode (Outputter outputter, XPathNavigator nav)
+ void CopyNode (XmlWriter w, XPathNavigator nav)
{
switch (nav.NodeType) {
case XPathNodeType.Root:
XPathNodeIterator itr = nav.SelectChildren (XPathNodeType.All);
while (itr.MoveNext ())
- CopyNode (outputter, itr.Current);
+ CopyNode (w, itr.Current);
break;
case XPathNodeType.Element:
- outputter.WriteStartElement (nav.Prefix, nav.LocalName, nav.NamespaceURI);
+ w.WriteStartElement (nav.Prefix, nav.LocalName, nav.NamespaceURI);
if (nav.MoveToFirstNamespace (XPathNamespaceScope.Local))
{
do {
- outputter.WriteNamespaceDecl (nav.Name, nav.Value);
+ w.WriteAttributeString ("xmlns", nav.Name, null, nav.Value);
} while (nav.MoveToNextNamespace (XPathNamespaceScope.Local));
nav.MoveToParent ();
}
@@ -48,33 +48,33 @@ namespace Mono.Xml.Xsl.Operations {
if (nav.MoveToFirstAttribute())
{
do {
- outputter.WriteStartAttribute (nav.Prefix, nav.LocalName, nav.NamespaceURI);
- outputter.WriteString (nav.Value);
- outputter.WriteEndAttribute ();
+ w.WriteStartAttribute (nav.Prefix, nav.LocalName, nav.NamespaceURI);
+ w.WriteString (nav.Value);
+ w.WriteEndAttribute ();
} while (nav.MoveToNextAttribute ());
nav.MoveToParent();
}
if (nav.MoveToFirstChild ()) {
do {
- CopyNode (outputter, nav);
+ CopyNode (w, nav);
} while (nav.MoveToNext ());
nav.MoveToParent ();
}
- outputter.WriteEndElement ();
+ w.WriteEndElement ();
break;
case XPathNodeType.Whitespace:
case XPathNodeType.SignificantWhitespace:
case XPathNodeType.Text:
- outputter.WriteString (nav.Value);
+ w.WriteString (nav.Value);
break;
case XPathNodeType.ProcessingInstruction:
- outputter.WriteProcessingInstruction (nav.Name, nav.Value);
+ w.WriteProcessingInstruction (nav.Name, nav.Value);
break;
case XPathNodeType.Comment:
- outputter.WriteComment (nav.Value);
+ w.WriteComment (nav.Value);
break;
}
}
diff --git a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslFallback.cs b/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslFallback.cs
index 01ff98fcfb6..a46a8dde98d 100644
--- a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslFallback.cs
+++ b/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslFallback.cs
@@ -31,7 +31,7 @@ namespace Mono.Xml.Xsl.Operations {
public override void Evaluate (XslTransformProcessor p)
{
- children.Evaluate (p);
+ throw new NotImplementedException ();
}
}
}
diff --git a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslLiteralElement.cs b/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslLiteralElement.cs
index d515a24c098..ca568b75cc1 100644
--- a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslLiteralElement.cs
+++ b/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslLiteralElement.cs
@@ -21,7 +21,6 @@ namespace Mono.Xml.Xsl.Operations {
string localname, prefix, nsUri;
ArrayList attrs = new ArrayList ();
XmlQualifiedName [] useAttributeSets;
- Hashtable nsDecls;
public XslLiteralElement (Compiler c) : base (c) {}
@@ -50,7 +49,6 @@ namespace Mono.Xml.Xsl.Operations {
this.nsUri = c.Input.NamespaceURI;
this.localname = c.Input.LocalName;
this.useAttributeSets = c.ParseQNameListAttribute ("use-attribute-sets", XsltNamespace);
- this.nsDecls = c.GetNamespacesToCopy ();
if (c.Input.MoveToFirstAttribute ())
{
@@ -71,9 +69,6 @@ namespace Mono.Xml.Xsl.Operations {
{
p.Out.WriteStartElement (prefix, localname, nsUri);
- foreach (DictionaryEntry de in nsDecls)
- p.Out.WriteNamespaceDecl ((string)de.Key, (string)de.Value);
-
foreach (XslLiteralAttribute a in attrs)
a.Evaluate (p);
diff --git a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslMessage.cs b/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslMessage.cs
index 545b37b453a..50f2c6ae6a8 100644
--- a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslMessage.cs
+++ b/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslMessage.cs
@@ -34,8 +34,7 @@ namespace Mono.Xml.Xsl.Operations {
public override void Evaluate (XslTransformProcessor p)
{
if (children != null) {
- //TODO: Which outputter to use here?
- p.PushOutput (new TextOutputter(Console.Error));
+ p.PushOutput (new XmlTextWriter (Console.Error));
children.Evaluate (p);
p.PopOutput ();
}
diff --git a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslNumber.cs b/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslNumber.cs
index 2d96204deb2..25fd81b7439 100644
--- a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslNumber.cs
+++ b/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslNumber.cs
@@ -14,7 +14,6 @@ using System.Collections;
using System.Xml;
using System.Xml.XPath;
using System.Xml.Xsl;
-using System.Text;
namespace Mono.Xml.Xsl.Operations {
public class XslNumber : XslCompiledElement {
@@ -65,7 +64,7 @@ namespace Mono.Xml.Xsl.Operations {
from = c.CompilePattern (c.GetAttribute ("from"));
value = c.CompileExpression (c.GetAttribute ("value"));
- if (value != null && value.ReturnType != XPathResultType.Number && value.ReturnType != XPathResultType.Any)
+ if (value.ReturnType != XPathResultType.Number && value.ReturnType != XPathResultType.Any)
throw new Exception ("The expression for attribute 'value' must return a number");
format = c.ParseAvtAttribute ("format");
@@ -115,304 +114,36 @@ namespace Mono.Xml.Xsl.Operations {
switch (this.level) {
case XslNumberingLevel.Single:
- return nf.Format (NumberSingle (p));
+ throw new NotImplementedException ();
case XslNumberingLevel.Multiple:
- return nf.Format (NumberMultiple (p));
+ throw new NotImplementedException ();
case XslNumberingLevel.Any:
- return nf.Format (NumberAny (p));
+ throw new NotImplementedException ();
default:
throw new Exception ("Should not get here");
}
}
- int [] NumberMultiple (XslTransformProcessor p)
- {
- ArrayList nums = new ArrayList ();
- XPathNavigator n = p.CurrentNode.Clone ();
-
- bool foundFrom = false;
-
- do {
- if (MatchesFrom (n, p)) {
- foundFrom = true;
- break;
- }
-
- if (MatchesCount (n, p)) {
- int i = 1;
- while (n.MoveToPrevious ()) {
- if (MatchesCount (n, p)) i++;
- }
- nums.Add (i);
- }
- } while (n.MoveToParent ());
-
- if (!foundFrom) return new int [0];
-
- int [] ret = new int [nums.Count];
- int pos = nums.Count;
- foreach (int num in nums)
- ret [--pos] = num;
-
- return ret;
- }
- int NumberAny (XslTransformProcessor p)
- {
- int i = 0;
- XPathNavigator n = p.CurrentNode.Clone ();
- do {
- do {
- if (MatchesCount (n, p)) i++;
- if (MatchesFrom (n, p)) return i;
- } while (n.MoveToPrevious ());
- } while (n.MoveToParent ());
- return 0;
- }
- int NumberSingle (XslTransformProcessor p)
- {
- XPathNavigator n = p.CurrentNode.Clone ();
-
- while (!MatchesCount (n, p)) {
- if (from != null && MatchesFrom (n, p))
- return 0;
-
- if (!n.MoveToParent ())
- return 0;
- }
-
- if (from != null) {
- XPathNavigator tmp = n.Clone ();
- if (MatchesFrom (tmp, p))
- // Was not desc of closest matches from
- return 0;
-
- bool found = false;
- while (tmp.MoveToParent ())
- if (MatchesFrom (tmp, p)) {
- found = true; break;
- }
- if (!found)
- // not desc of matches from
- return 0;
- }
-
- int i = 1;
-
- while (n.MoveToPrevious ()) {
- if (MatchesCount (n, p)) i++;
- }
-
- return i;
- }
-
- bool MatchesCount (XPathNavigator item, XslTransformProcessor p)
- {
- if (count == null)
- return item.LocalName == p.CurrentNode.LocalName &&
- item.NamespaceURI == p.CurrentNode.NamespaceURI;
- else
- return item.Matches (count);
- }
-
- bool MatchesFrom (XPathNavigator item, XslTransformProcessor p)
- {
- if (from == null)
- return item.NodeType == XPathNodeType.Root;
- else
- return item.Matches (from);
- }
-
class XslNumberFormatter {
- string firstSep = "", lastSep = "";
- ArrayList fmtList = new ArrayList ();
-
public XslNumberFormatter (string format, string lang, string letterValue, char groupingSeparator, int groupingSize)
{
- // We dont do any i18n now, so we ignore lang and letterValue.
- if (format == null || format == "")
- fmtList.Add (FormatItem.GetItem (null, "1", groupingSeparator, groupingSize));
- else {
- NumberFormatterScanner s = new NumberFormatterScanner (format);
-
- string sep, itm;
-
- sep = s.Advance (false);
- itm = s.Advance (true);
-
- if (itm == null) {
- lastSep = sep;
- fmtList.Add (FormatItem.GetItem (null, "1", groupingSeparator, groupingSize));
- } else {
- firstSep = sep;
- sep = null;
-
- while (itm != null) {
- fmtList.Add (FormatItem.GetItem (sep, itm, groupingSeparator, groupingSize));
- sep = s.Advance (false);
- itm = s.Advance (true);
- }
-
- lastSep = sep;
- }
- }
+ throw new NotImplementedException ();
+ }
+
+ public int NumbersNeeded {
+ get { throw new NotImplementedException (); }
}
// return the format for a single value, ie, if using Single or Any
public string Format (int value)
{
- StringBuilder b = new StringBuilder ();
- if (firstSep != null) b.Append (firstSep);
- ((FormatItem)fmtList [0]).Format (b, value);
- if (lastSep != null) b.Append (lastSep);
-
- return b.ToString ();
+ throw new NotImplementedException ();
}
// format for an array of numbers.
public string Format (int [] values)
{
- StringBuilder b = new StringBuilder ();
- if (firstSep != null) b.Append (firstSep);
-
- int i = 0;
- foreach (int v in values) {
- FormatItem itm = (FormatItem)fmtList [i];
- if (i > 0) b.Append (itm.sep);
- itm.Format (b, v);
-
- if (++i == fmtList.Count)
- i--;
- }
-
- if (lastSep != null) b.Append (lastSep);
-
- return b.ToString ();
- }
-
- class NumberFormatterScanner {
- int pos = 0, len;
- string fmt;
-
- public NumberFormatterScanner (string fmt) {
- this.fmt = fmt;
- len = fmt.Length;
- }
-
- public string Advance (bool alphaNum)
- {
- int start = pos;
- while ((pos < len) && (char.IsLetterOrDigit (fmt, pos) == alphaNum))
- pos++;
-
- if (pos == start)
- return null;
- else
- return fmt.Substring (start, pos - start);
- }
- }
-
- abstract class FormatItem {
- public readonly string sep;
- public FormatItem (string sep)
- {
- this.sep = sep;
- }
-
- public abstract void Format (StringBuilder b, int num);
-
- public static FormatItem GetItem (string sep, string item, char gpSep, int gpSize)
- {
- switch (item [0])
- {
- case '0': case '1':
- return new DigitItem (sep, item.Length, gpSep, gpSize);
- case 'a':
- return new AlphaItem (sep, false);
- case 'A':
- return new AlphaItem (sep, true);
- case 'i':
- return new RomanItem (sep, false);
- case 'I':
- return new RomanItem (sep, true);
-
- default:
- throw new Exception ();
- }
- }
- }
-
- class AlphaItem : FormatItem {
- bool uc;
- static readonly char [] ucl = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
- static readonly char [] lcl = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
-
- public AlphaItem (string sep, bool uc) : base (sep)
- {
- this.uc = uc;
- }
-
- public override void Format (StringBuilder b, int num)
- {
- alphaSeq (b, num, uc ? ucl : lcl);
- }
-
- static void alphaSeq (StringBuilder b, int n, char [] alphabet) {
- if (n > alphabet.Length)
- alphaSeq (b, (n-1) / alphabet.Length, alphabet);
- b.Append (alphabet [(n-1) % alphabet.Length]);
- }
- }
-
- class RomanItem : FormatItem {
- bool uc;
- public RomanItem (string sep, bool uc) : base (sep)
- {
- this.uc = uc;
- }
- static readonly string [] ucrDigits =
- { "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I" };
- static readonly string [] lcrDigits =
- { "m", "cm", "d", "cd", "c", "xc", "l", "xl", "x", "ix", "v", "iv", "i" };
- static readonly int [] decValues =
- {1000, 900 , 500, 400 , 100, 90 , 50 , 40 , 10 , 9 , 5 , 4 , 1 };
-
- public override void Format (StringBuilder b, int num)
- {
- if (num < 1 || num > 4999) {
- b.Append (num);
- return;
- }
-
- for (int i = 0; i < decValues.Length; i++) {
- while (decValues [i] <= num) {
- if (uc)
- b.Append (ucrDigits [i]);
- else
- b.Append (lcrDigits [i]);
-
- num -= decValues [i];
- }
- if (num == 0) break;
- }
- }
- }
-
- class DigitItem : FormatItem {
- System.Globalization.NumberFormatInfo nfi;
-
- public DigitItem (string sep, int len, char gpSep, int gpSize) : base (sep)
- {
- nfi = new System.Globalization.NumberFormatInfo ();
- nfi.NumberDecimalDigits = 0;
- nfi.NumberGroupSizes = new int [] {gpSize};
- nfi.NumberGroupSeparator = gpSep.ToString ();
- // TODO use len to get min number of digits.
- }
-
- public override void Format (StringBuilder b, int num)
- {
- b.Append (num.ToString ("N", nfi));
- }
+ throw new NotImplementedException ();
}
}
}
diff --git a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslProcessingInstruction.cs b/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslProcessingInstruction.cs
index 3a3098ef5d2..dbcee1de283 100644
--- a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslProcessingInstruction.cs
+++ b/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslProcessingInstruction.cs
@@ -35,10 +35,9 @@ namespace Mono.Xml.Xsl.Operations {
public override void Evaluate (XslTransformProcessor p)
{
StringWriter s = new StringWriter ();
- //TODO: only text nodes allowed here, other nodes must be ignored along with any content,
- //so TextOutputter is not really suitable here
- Outputter outputter = new TextOutputter(s);
- p.PushOutput (outputter);
+ XmlWriter w = new XmlTextWriter (s);
+
+ p.PushOutput (w);
value.Evaluate (p);
p.PopOutput ();
diff --git a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslTemplateContent.cs b/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslTemplateContent.cs
index 9b66c82a174..c9a90078ccf 100644
--- a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslTemplateContent.cs
+++ b/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslTemplateContent.cs
@@ -18,6 +18,7 @@ using System.Xml.Xsl;
namespace Mono.Xml.Xsl.Operations {
public class XslTemplateContent : XslCompiledElement {
ArrayList content = new ArrayList ();
+ ArrayList variables;
bool hasStack;
int stackSize;
@@ -52,8 +53,7 @@ namespace Mono.Xml.Xsl.Operations {
content.Add (new XslChoose (c));
break;
case "comment":
- content.Add (new XslComment (c));
- break;
+ throw new NotImplementedException ();
case "copy":
content.Add (new XslCopy (c));
break;
@@ -76,8 +76,7 @@ namespace Mono.Xml.Xsl.Operations {
content.Add (new XslMessage(c));
break;
case "number":
- content.Add (new XslNumber(c));
- break;
+ throw new NotImplementedException ();
case "processing-instruction":
content.Add (new XslProcessingInstruction(c));
break;
@@ -96,17 +95,7 @@ namespace Mono.Xml.Xsl.Operations {
}
break;
default:
- if (!c.IsExtensionNamespace (n.NamespaceURI))
- content.Add (new XslLiteralElement(c));
- else {
- if (n.MoveToFirstChild ()) {
- do {
- if (n.NamespaceURI == XsltNamespace && n.LocalName == "fallback")
- content.Add (new XslFallback (c));
- } while (n.MoveToNext ());
- n.MoveToParent ();
- }
- }
+ content.Add (new XslLiteralElement(c));
break;
}
break;
diff --git a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslVariable.cs b/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslVariable.cs
index 9d619be20a5..e7cbaab37f2 100644
--- a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslVariable.cs
+++ b/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslVariable.cs
@@ -46,9 +46,7 @@ namespace Mono.Xml.Xsl.Operations {
return p.Evaluate (select);
} else if (content != null) {
XmlNodeWriter w = new XmlNodeWriter ();
- //TODO: which outputter should be used here?
- Outputter outputter = new XmlOutputter(w, p.Outputs);
- p.PushOutput (outputter);
+ p.PushOutput (w);
content.Evaluate (p);
p.PopOutput ();
return w.Document.CreateNavigator ().SelectChildren (XPathNodeType.All);
diff --git a/mcs/class/System.XML/Mono.Xml.Xsl/ChangeLog b/mcs/class/System.XML/Mono.Xml.Xsl/ChangeLog
index 1361f7997c6..ab739d44a70 100644
--- a/mcs/class/System.XML/Mono.Xml.Xsl/ChangeLog
+++ b/mcs/class/System.XML/Mono.Xml.Xsl/ChangeLog
@@ -1,65 +1,3 @@
-2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * Compiler.cs: Really give null for blank avt's
-
-2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * Compiler.cs: Fixed lre/lre04.
-
-2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
-
- * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
- won't have default namespace. See http://www.w3.org/TR/xslt#qname
-
-2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * XslTransformProcessor.cs: add support for resolving documents.
- * XsltCompiledContext: add support for document () function.
-
-2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
- of the abstract methods in Outputter, making them call other
- functions with default values, remove impl's in derived classes.
-
-2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * Outputter.cs: s/Close/Done
- * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
- * XslTransformProcessor.cs: Flush output when popping, pop at end.
-
-2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * Outputter.cs: Add support for namespaces.
-
-2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
- XslTransformProcessor.cs: move output logic from XslStylesheet to
- Compiler.
-
-2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * XslOutput.cs: add support for encoding.
-
-2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * *.cs: Support for xsl:output. (Oleg)
-
-2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * Compiler.cs: handle extension and excluded namespaces.
-
-2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
- from the stylesheet for correct namespace resolution.
-
-2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
-
- * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
- introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
-
2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
* XslTransformProcessor.cs: Add a table to detect when an object
diff --git a/mcs/class/System.XML/Mono.Xml.Xsl/Compiler.cs b/mcs/class/System.XML/Mono.Xml.Xsl/Compiler.cs
index 9df0a851124..df22c290aca 100644
--- a/mcs/class/System.XML/Mono.Xml.Xsl/Compiler.cs
+++ b/mcs/class/System.XML/Mono.Xml.Xsl/Compiler.cs
@@ -13,7 +13,6 @@ using System;
using System.CodeDom;
using System.Collections;
using System.Collections.Specialized;
-using System.Security.Policy;
using System.Xml;
using System.Xml.Schema;
using System.Xml.XPath;
@@ -32,9 +31,8 @@ namespace Mono.Xml.Xsl {
ExpressionStore exprStore;
XmlNamespaceManager nsMgr;
ArrayList keys;
- Hashtable outputs;
- public CompiledStylesheet (XslStylesheet style, Hashtable globalVariables, Hashtable attrSets, ExpressionStore exprStore, XmlNamespaceManager nsMgr, ArrayList keys, Hashtable outputs)
+ public CompiledStylesheet (XslStylesheet style, Hashtable globalVariables, Hashtable attrSets, ExpressionStore exprStore, XmlNamespaceManager nsMgr, ArrayList keys)
{
this.style = style;
this.globalVariables = globalVariables;
@@ -42,14 +40,12 @@ namespace Mono.Xml.Xsl {
this.exprStore = exprStore;
this.nsMgr = nsMgr;
this.keys = keys;
- this.outputs = outputs;
}
public Hashtable Variables {get{return globalVariables;}}
public XslStylesheet Style { get { return style; }}
public ExpressionStore ExpressionStore {get{return exprStore;}}
public XmlNamespaceManager NamespaceManager {get{return nsMgr;}}
public ArrayList Keys {get { return keys;}}
- public Hashtable Outputs { get { return outputs; }}
public XslGeneralVariable ResolveVariable (QName name)
{
@@ -80,18 +76,12 @@ namespace Mono.Xml.Xsl {
XmlResolver res;
XslStylesheet rootStyle;
- Hashtable outputs = new Hashtable ();
- public CompiledStylesheet Compile (XPathNavigator nav, XmlResolver res, Evidence evidence)
+ public CompiledStylesheet Compile (XPathNavigator nav, XmlResolver res)
{
this.res = res;
- if (res == null)
- this.res = new XmlUrlResolver ();
-
if (!nav.MoveToFirstChild ()) throw new Exception ("WTF?");
- outputs [""] = new XslOutput ("");
-
while (nav.NodeType != XPathNodeType.Element) nav.MoveToNext();
PushInputDocument (nav);
@@ -104,7 +94,7 @@ namespace Mono.Xml.Xsl {
}
this.rootStyle = new XslStylesheet (this);
- return new CompiledStylesheet (rootStyle, globalVariables, attrSets, exprStore, nsMgr, keys, outputs);
+ return new CompiledStylesheet (rootStyle, globalVariables, attrSets, exprStore, nsMgr, keys);
}
#region Input
@@ -229,7 +219,7 @@ namespace Mono.Xml.Xsl {
public XslAvt ParseAvt (string s)
{
- if (s == null || s == string.Empty) return null;
+ if (s == null) return null;
return new XslAvt (s, this);
}
@@ -302,74 +292,6 @@ namespace Mono.Xml.Xsl {
}
public VariableScope CurrentVariableScope { get { return curVarScope; }}
#endregion
-
-#region Scope (version, {excluded, extension} namespaces)
- [MonoTODO ("This will work, but is *very* slow")]
- public bool IsExtensionNamespace (string nsUri)
- {
- if (nsUri == XsltNamespace) return true;
-
- XPathNavigator nav = Input.Clone ();
- XPathNavigator nsScope = nav.Clone ();
- do {
- bool isXslt = nav.NamespaceURI == XsltNamespace;
- nsScope.MoveTo (nav);
- if (nav.MoveToFirstAttribute ()) {
- do {
- if (nav.LocalName == "extension-element-prefixes" &&
- nav.NamespaceURI == (isXslt ? String.Empty : XsltNamespace))
- {
-
- foreach (string ns in nav.Value.Split (' '))
- if (nsScope.GetNamespace (ns == "#default" ? "" : ns) == nsUri)
- return true;
- }
- } while (nav.MoveToNextAttribute ());
- nav.MoveToParent ();
- }
- } while (nav.MoveToParent ());
-
- return false;
- }
-
- public Hashtable GetNamespacesToCopy ()
- {
- Hashtable ret = new Hashtable ();
-
- XPathNavigator nav = Input.Clone ();
- XPathNavigator nsScope = nav.Clone ();
-
- if (nav.MoveToFirstNamespace (XPathNamespaceScope.ExcludeXml)) {
- do {
- if (nav.Value != XsltNamespace && !ret.Contains (nav.Name))
- ret.Add (nav.Name, nav.Value);
- } while (nav.MoveToNextNamespace (XPathNamespaceScope.ExcludeXml));
- nav.MoveToParent ();
- }
-
- do {
- bool isXslt = nav.NamespaceURI == XsltNamespace;
- nsScope.MoveTo (nav);
-
- if (nav.MoveToFirstAttribute()) {
- do {
- if ((nav.LocalName == "extension-element-prefixes" || nav.LocalName == "exclude-result-prefixes") &&
- nav.NamespaceURI == (isXslt ? String.Empty : XsltNamespace))
- {
- foreach (string ns in nav.Value.Split (' ')) {
- if (ret [ns] == nsScope.GetNamespace (ns == "#default" ? "" : ns))
- ret.Remove (ns);
- }
- }
- } while (nav.MoveToNextAttribute ());
- nav.MoveToParent();
- }
- } while (nav.MoveToParent ());
-
- return ret;
- }
-#endregion
-
#region Key
ArrayList keys = new ArrayList ();
@@ -378,18 +300,6 @@ namespace Mono.Xml.Xsl {
keys.Add (key);
}
#endregion
-
- public void CompileOutput ()
- {
- XPathNavigator n = Input;
- string uri = n.GetAttribute ("href", "");
- XslOutput output = outputs [uri] as XslOutput;
- if (output == null) {
- output = new XslOutput (uri);
- outputs.Add (uri, output);
- }
- output.Fill (n);
- }
}
public class VariableScope {
@@ -527,12 +437,10 @@ namespace Mono.Xml.Xsl {
Hashtable exprToVarCtx = new Hashtable ();
Hashtable exprToSorts = new Hashtable ();
- Hashtable exprToDocument = new Hashtable ();
public void AddExpression (XPathExpression e, Compiler c)
{
exprToVarCtx [e] = c.CurrentVariableScope;
- exprToDocument [e] = c.Input.Clone ();
}
public void AddSort (XPathExpression e, Sort s)
@@ -550,7 +458,7 @@ namespace Mono.Xml.Xsl {
{
XPathExpression expr = e.Clone ();
- expr.SetContext (new XsltCompiledContext (p, (VariableScope)exprToVarCtx [e], (XPathNavigator)exprToDocument [e]));
+ expr.SetContext (new XsltCompiledContext (p, (VariableScope)exprToVarCtx [e]));
if (exprToSorts.Contains (e))
{
foreach (Sort s in (ArrayList)exprToSorts [e])
@@ -568,8 +476,7 @@ namespace Mono.Xml.Xsl {
if (colon > 0)
return new QName (name.Substring (colon, name.Length - colon), current.GetNamespace (name.Substring (0, colon)));
else if (colon < 0)
- // Default namespace is not used for unprefixed names.
- return new QName (name, "");
+ return new QName (name, current.GetNamespace (""));
else
throw new ArgumentException ("Invalid name: " + name);
}
@@ -580,8 +487,7 @@ namespace Mono.Xml.Xsl {
if (colon > 0)
return new QName (name.Substring (colon, name.Length - colon), ctx.LookupNamespace (name.Substring (0, colon)));
else if (colon < 0)
- // Default namespace is not used for unprefixed names.
- return new QName (name, "");
+ return new QName (name, ctx.LookupNamespace (""));
else
throw new ArgumentException ("Invalid name: " + name);
}
diff --git a/mcs/class/System.XML/Mono.Xml.Xsl/Outputter.cs b/mcs/class/System.XML/Mono.Xml.Xsl/Outputter.cs
deleted file mode 100644
index 108d29084f2..00000000000
--- a/mcs/class/System.XML/Mono.Xml.Xsl/Outputter.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Outputter.cs
-//
-// Authors:
-// Oleg Tkachenko (oleg@tkachenko.com)
-//
-// (C) 2003 Oleg Tkachenko
-//
-
-using System;
-
-namespace Mono.Xml.Xsl {
- /// <summary>
- /// Abstract XSLT outputter.
- /// Implementations of this class outputs result tree according output method.
- /// </summary>
- public abstract class Outputter {
- public abstract void WriteStartDocument();
- public abstract void WriteEndDocument();
-
- public void WriteStartElement(string localName, string nsURI)
- {
- WriteStartElement (null, localName, nsURI);
- }
-
- public abstract void WriteStartElement(string prefix, string localName, string nsURI);
- public abstract void WriteEndElement();
-
- public void WriteAttributeString(string localName, string value)
- {
- WriteAttributeString ("", localName, "", value);
- }
-
- public abstract void WriteAttributeString(string prefix, string localName, string nsURI, string value);
- public void WriteNamespaceDecl (string prefix, string nsUri)
- {
- if (prefix == String.Empty)
- WriteAttributeString ("", "xmlns", "", nsUri);
- else
- WriteAttributeString ("xmlns", prefix, null, nsUri);
- }
-
- public void WriteStartAttribute(string localName, string nsURI)
- {
- WriteStartAttribute (null, localName, nsURI);
- }
-
- public abstract void WriteStartAttribute(string prefix, string localName, string nsURI);
- public abstract void WriteEndAttribute();
-
- public abstract void WriteComment(string text);
-
- public abstract void WriteProcessingInstruction(string name, string text);
-
- public abstract void WriteString(string text);
- public abstract void WriteRaw(string data);
-
- public abstract void Done ();
- }
-}
diff --git a/mcs/class/System.XML/Mono.Xml.Xsl/TextOutputter.cs b/mcs/class/System.XML/Mono.Xml.Xsl/TextOutputter.cs
deleted file mode 100644
index 2326d314826..00000000000
--- a/mcs/class/System.XML/Mono.Xml.Xsl/TextOutputter.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-//
-// TextOutputter.cs
-//
-// Authors:
-// Oleg Tkachenko (oleg@tkachenko.com)
-//
-// (C) 2003 Oleg Tkachenko
-//
-
-using System;
-using System.Xml;
-using System.IO;
-
-namespace Mono.Xml.Xsl {
- /// <summary>
- /// Outputter implementation for text output method
- /// </summary>
- public class TextOutputter : Outputter {
- private TextWriter _writer;
-
- public TextOutputter(TextWriter w) {
- _writer = w;
- }
-
- public override void WriteStartDocument() {}
-
- public override void WriteEndDocument() {}
-
- public override void WriteStartElement(string prefix, string localName, string nsURI) {}
-
- public override void WriteEndElement() {}
-
- public override void WriteAttributeString(string prefix, string localName, string nsURI, string value) {}
-
- public override void WriteStartAttribute(string prefix, string localName, string nsURI) {}
-
- public override void WriteEndAttribute() {}
-
- public override void WriteComment(string text) {}
-
- public override void WriteProcessingInstruction(string name, string text) {}
-
- public override void WriteString(string text) {
- _writer.Write(text);
- }
-
- public override void WriteRaw(string data) {
- _writer.Write(data);
- }
-
- public override void Done () {
- _writer.Flush ();
- }
- }
-}
diff --git a/mcs/class/System.XML/Mono.Xml.Xsl/XmlOutputter.cs b/mcs/class/System.XML/Mono.Xml.Xsl/XmlOutputter.cs
deleted file mode 100644
index 2d65e862d7e..00000000000
--- a/mcs/class/System.XML/Mono.Xml.Xsl/XmlOutputter.cs
+++ /dev/null
@@ -1,86 +0,0 @@
-//
-// XmlOutputter.cs
-//
-// Authors:
-// Oleg Tkachenko (oleg@tkachenko.com)
-//
-// (C) 2003 Oleg Tkachenko
-//
-
-using System;
-using System.Xml;
-using System.IO;
-using System.Collections;
-
-namespace Mono.Xml.Xsl {
- /// <summary>
- /// Outputter implementation for XML output method
- /// </summary>
- public class XmlOutputter : Outputter {
- private XmlWriter _writer;
- private Hashtable _outputs;
- private XslOutput _currentOutput;
-
- public XmlOutputter(XmlWriter w, Hashtable o) {
- _writer = w;
- _outputs = o;
- _currentOutput = (XslOutput)o[String.Empty];
- }
-
- public XmlOutputter(TextWriter w, Hashtable o)
- : this(new XmlTextWriter(w), o) {}
-
- public override void WriteStartDocument() {
- if (_currentOutput != null && _currentOutput.OmitXmlDeclaration)
- return;
- if (_currentOutput == null || _currentOutput.Standalone == null)
- _writer.WriteStartDocument();
- else
- _writer.WriteStartDocument(_currentOutput.Standalone == "yes");
- }
-
- public override void WriteEndDocument() {
- _writer.WriteEndDocument();
- }
-
- public override void WriteStartElement(string prefix, string localName, string nsURI) {
- _writer.WriteStartElement(prefix, localName, nsURI);
- }
-
- public override void WriteEndElement() {
- _writer.WriteEndElement();
- }
-
- public override void WriteAttributeString(string prefix, string localName, string nsURI, string value) {
- _writer.WriteAttributeString(prefix, localName, nsURI, value);
- }
-
- public override void WriteStartAttribute(string prefix, string localName, string nsURI) {
- _writer.WriteStartAttribute(prefix, localName, nsURI);
- }
-
- public override void WriteEndAttribute() {
- _writer.WriteEndElement();
- }
-
- public override void WriteComment(string text) {
- _writer.WriteComment(text);
- }
-
- public override void WriteProcessingInstruction(string name, string text) {
- _writer.WriteProcessingInstruction(name, text);
- }
-
- public override void WriteString(string text) {
- _writer.WriteString(text);
- }
-
- public override void WriteRaw(string data) {
- _writer.WriteRaw(data);
- }
-
- public override void Done () {
- _writer.Flush ();
- }
- }
-}
diff --git a/mcs/class/System.XML/Mono.Xml.Xsl/XslOutput.cs b/mcs/class/System.XML/Mono.Xml.Xsl/XslOutput.cs
index d204e645848..1db059cc5da 100644
--- a/mcs/class/System.XML/Mono.Xml.Xsl/XslOutput.cs
+++ b/mcs/class/System.XML/Mono.Xml.Xsl/XslOutput.cs
@@ -4,11 +4,9 @@
// Authors:
// Ben Maurer (bmaurer@users.sourceforge.net)
// Atsushi Enomoto (ginga@kit.hi-ho.ne.jp)
-// Oleg Tkachenko (oleg@tkachenko.com)
//
// (C) 2003 Ben Maurer
// (C) 2003 Atsushi Enomoto
-// (C) 2003 Oleg Tkachenko
//
using System;
@@ -17,28 +15,18 @@ using System.Collections;
using System.Xml;
using System.Xml.Schema;
using System.Xml.XPath;
-using System.Xml.Xsl;
-using System.Text;
+using System.Xml.Xsl;
namespace Mono.Xml.Xsl
{
using QName = System.Xml.XmlQualifiedName;
- public enum OutputMethod {
- XML,
- HTML,
- Text,
- Custom,
- Unknown
- }
-
public class XslOutput // also usable for xsl:result-document
{
string uri;
- QName customMethod;
- OutputMethod method = OutputMethod.Unknown;
+ QName method;
string version;
- Encoding encoding = System.Text.Encoding.UTF8;
+ string encoding;
bool omitXmlDeclaration;
string standalone;
string doctypePublic;
@@ -60,14 +48,15 @@ namespace Mono.Xml.Xsl
this.uri = uri;
}
- public OutputMethod Method { get { return method; }}
- public QName CustomMethod { get { return customMethod; }}
+ public QName Method {
+ get { return method; }
+ }
public string Version {
get { return version; }
}
- public Encoding Encoding {
+ public string Encoding {
get { return encoding; }
}
@@ -139,59 +128,39 @@ namespace Mono.Xml.Xsl
// cdSectsList.AddRange (XslNameUtil.ParseQNames (att, nav));
att = nav.GetAttribute ("method", "");
-
- if (att != String.Empty) {
- switch (att) {
- case "xml":
- method = OutputMethod.XML;
- break;
- case "html":
- method = OutputMethod.HTML;
- break;
- case "text":
- method = OutputMethod.Text;
- break;
- default:
- method = OutputMethod.Custom;
- customMethod = XslNameUtil.FromString (att, nav);
- if (customMethod.Namespace == String.Empty)
- //TODO: how to get current line number and position?
- throw new XsltCompileException(new ArgumentException("Invalid output method value: '" + att +
- "'. It must be either 'xml' or 'html' or 'text' or QName."), nav.BaseURI, 1, 1);
- break;
- }
- }
+ if (att != null)
+ this.method = XslNameUtil.FromString (att, nav);
att = nav.GetAttribute ("version", "");
- if (att != String.Empty)
+ if (att != null)
this.version = att;
att = nav.GetAttribute ("encoding", "");
- if (att != String.Empty)
- this.encoding = System.Text.Encoding.GetEncoding (att);
+ if (att != null)
+ this.encoding = att;
att = nav.GetAttribute ("standalone", "");
- if (att != String.Empty)
+ if (att != null)
this.standalone = att;
att = nav.GetAttribute ("doctype-public", "");
- if (att != String.Empty)
+ if (att != null)
this.doctypePublic = att;
att = nav.GetAttribute ("doctype-system", "");
- if (att != String.Empty)
+ if (att != null)
this.doctypeSystem = att;
att = nav.GetAttribute ("media-type", "");
- if (att != String.Empty)
+ if (att != null)
this.mediaType = att;
att = nav.GetAttribute ("omit-xml-declaration", "");
- if (att != String.Empty)
+ if (att != null)
this.omitXmlDeclaration = att == "yes";
att = nav.GetAttribute ("indent", "");
- if (att != String.Empty)
+ if (att != null)
this.indent = att == "yes";
}
}
diff --git a/mcs/class/System.XML/Mono.Xml.Xsl/XslStylesheet.cs b/mcs/class/System.XML/Mono.Xml.Xsl/XslStylesheet.cs
index 3d84a223324..a49934222c5 100644
--- a/mcs/class/System.XML/Mono.Xml.Xsl/XslStylesheet.cs
+++ b/mcs/class/System.XML/Mono.Xml.Xsl/XslStylesheet.cs
@@ -43,6 +43,8 @@ namespace Mono.Xml.Xsl {
// [QName]=>XmlSpace
Hashtable parameters = new Hashtable ();
+ // [string href]=>XslOutput
+ Hashtable outputs = new Hashtable ();
MSXslScriptManager msScripts = new MSXslScriptManager ();
XslTemplateTable templates;
@@ -87,6 +89,10 @@ namespace Mono.Xml.Xsl {
get { return parameters; }
}
+ public Hashtable Outputs {
+ get { return outputs; }
+ }
+
public MSXslScriptManager ScriptManager{
get { return msScripts; }
}
@@ -171,7 +177,13 @@ namespace Mono.Xml.Xsl {
break;
case "output":
- c.CompileOutput ();
+ string uri = n.GetAttribute ("href", "");
+ XslOutput output = outputs [uri] as XslOutput;
+ if (output == null) {
+ output = new XslOutput (uri);
+ outputs.Add (uri, output);
+ }
+ output.Fill (n);
break;
case "template":
diff --git a/mcs/class/System.XML/Mono.Xml.Xsl/XslTransformProcessor.cs b/mcs/class/System.XML/Mono.Xml.Xsl/XslTransformProcessor.cs
index adaffa51011..afa69f01fe4 100644
--- a/mcs/class/System.XML/Mono.Xml.Xsl/XslTransformProcessor.cs
+++ b/mcs/class/System.XML/Mono.Xml.Xsl/XslTransformProcessor.cs
@@ -20,8 +20,7 @@ using Mono.Xml.Xsl.Operations;
using QName = System.Xml.XmlQualifiedName;
namespace Mono.Xml.Xsl {
- public class XslTransformProcessor
- {
+ public class XslTransformProcessor {
CompiledStylesheet compiledStyle;
XslStylesheet style;
@@ -42,7 +41,7 @@ namespace Mono.Xml.Xsl {
this.style = style.Style;
}
- public void Process (XPathNavigator root, Outputter outputtter, XsltArgumentList args, XmlResolver resolver)
+ public void Process (XPathNavigator root, XmlWriter output, XsltArgumentList args, XmlResolver resolver)
{
foreach (XslGlobalVariable v in CompiledStyle.Variables.Values) {
if (v is XslGlobalParam) {
@@ -55,9 +54,8 @@ namespace Mono.Xml.Xsl {
this.args = args;
this.root = root;
this.resolver = resolver != null ? resolver : new XmlUrlResolver ();
- this.PushOutput (outputtter);
+ this.outputStack.Push (output);
this.ApplyTemplates (root.Select ("."), QName.Empty, null);
- this.PopOutput ();
}
public XsltContext Context { get { return ctx; }}
@@ -66,49 +64,22 @@ namespace Mono.Xml.Xsl {
#region Document Resolution
public XmlResolver Resolver {get{return resolver;}}
-
- Hashtable docCache;
-
- public XPathNavigator GetDocument (Uri uri)
- {
- XPathNavigator result;
-
- if (docCache != null) {
- result = docCache [uri] as XPathNavigator;
- if (result != null)
- return result.Clone();
- } else {
- docCache = new Hashtable();
- }
-
- XmlReader rdr = new XmlTextReader (uri.ToString(), (Stream) resolver.GetEntity (uri, null, null));
- result = new XPathDocument (rdr).CreateNavigator ();
- rdr.Close ();
-
- docCache [uri] = result.Clone ();
- return result;
- }
-
#endregion
#region Output
Stack outputStack = new Stack ();
- public Outputter Out { get { return (Outputter)outputStack.Peek(); }}
+ public XmlWriter Out { get { return (XmlWriter)outputStack.Peek(); }}
- public void PushOutput (Outputter newOutput)
+ public void PushOutput (XmlWriter newOutput)
{
this.outputStack.Push (newOutput);
}
- public Outputter PopOutput ()
+ public XmlWriter PopOutput ()
{
- Outputter ret = (Outputter)this.outputStack.Pop ();
- ret.Done ();
- return ret;
+ return (XmlWriter)this.outputStack.Pop ();
}
-
- public Hashtable Outputs { get { return compiledStyle.Outputs; }}
#endregion
#region Templates -- Apply/Call
diff --git a/mcs/class/System.XML/Mono.Xml.Xsl/XsltCompiledContext.cs b/mcs/class/System.XML/Mono.Xml.Xsl/XsltCompiledContext.cs
index bf1cfb2b344..905f4cc7892 100644
--- a/mcs/class/System.XML/Mono.Xml.Xsl/XsltCompiledContext.cs
+++ b/mcs/class/System.XML/Mono.Xml.Xsl/XsltCompiledContext.cs
@@ -45,15 +45,13 @@ namespace Mono.Xml.Xsl {
XslTransformProcessor p;
VariableScope v;
- XPathNavigator doc;
public XslTransformProcessor Processor { get { return p; }}
- public XsltCompiledContext (XslTransformProcessor p, VariableScope v, XPathNavigator doc)
+ public XsltCompiledContext (XslTransformProcessor p, VariableScope v)
{
this.p = p;
this.v = v;
- this.doc = doc;
}
public override string DefaultNamespace { get { return String.Empty; }}
@@ -64,7 +62,7 @@ namespace Mono.Xml.Xsl {
if (prefix == "" || prefix == null)
return "";
- return this.doc.GetNamespace (prefix);
+ return p.CompiledStyle.NamespaceManager.LookupNamespace (prefix);
}
public override IXsltContextFunction ResolveFunction (string prefix, string name, XPathResultType[] argTypes)
@@ -165,22 +163,6 @@ namespace Mono.Xml.Xsl {
public override int CompareDocument (string baseUri, string nextBaseUri) { throw new NotImplementedException (); }
public override bool PreserveWhitespace (XPathNavigator nav) { throw new NotImplementedException (); }
public override bool Whitespace { get { throw new NotImplementedException (); }}
- public string BaseUri { get { return doc.BaseURI; }}
- public XPathNavigator Stylesheet {
- get {
- XPathNavigator ret = doc.Clone ();
- ret.MoveToRoot ();
- return ret;
- }
- }
-
- public XPathNavigator GetDocument (Uri uri)
- {
- if (uri.ToString () == string.Empty)
- return Stylesheet;
-
- return p.GetDocument (uri);
- }
}
@@ -300,59 +282,7 @@ namespace Mono.Xml.Xsl.Functions {
public override object Invoke (XsltCompiledContext xsltContext, object [] args, XPathNavigator docContext)
{
- string baseUri = null;
- if (args.Length == 2) {
- XPathNodeIterator it = (XPathNodeIterator) args [1];
- if (it.MoveNext())
- baseUri = it.Current.BaseURI;
- else
- baseUri = VoidBaseUriFlag;
- }
-
- if (args [0] is XPathNodeIterator)
- return GetDocument (xsltContext, (XPathNodeIterator)args [0], baseUri);
- else
- return GetDocument (xsltContext, args [0].ToString (), baseUri);
- }
-
- static string VoidBaseUriFlag = "&^)(*&%*^$&$VOID!BASE!URI!";
-
- Uri Resolve (string thisUri, string baseUri, XslTransformProcessor p)
- {
- Debug.WriteLine ("THIS: " + thisUri);
- Debug.WriteLine ("BASE: " + baseUri);
- XmlResolver r = p.Resolver;
-
- Uri uriBase = null;
- if (! object.ReferenceEquals (baseUri, VoidBaseUriFlag))
- uriBase = r.ResolveUri (null, baseUri);
-
- return r.ResolveUri (uriBase, thisUri);
- }
-
- XPathNodeIterator GetDocument (XsltCompiledContext xsltContext, XPathNodeIterator itr, string baseUri)
- {
- ArrayList list = new ArrayList ();
- Hashtable got = new Hashtable ();
-
- while (itr.MoveNext()) {
- Uri uri = Resolve (itr.Current.Value, baseUri != null ? baseUri : itr.Current.BaseURI, xsltContext.Processor);
- if (!got.ContainsKey (uri)) {
- got.Add (uri, null);
- list.Add (xsltContext.GetDocument (uri));
- }
- }
-
- return new EnumeratorIterator (list.GetEnumerator (), xsltContext);
- }
-
- XPathNodeIterator GetDocument (XsltCompiledContext xsltContext, string arg0, string baseUri)
- {
- return new SelfIterator (
- xsltContext.GetDocument (
- Resolve (arg0, baseUri != null ? baseUri : xsltContext.BaseUri, xsltContext.Processor)
- )
- , null);
+ throw new NotImplementedException ();
}
}
diff --git a/mcs/class/System.XML/Mono.Xml/ChangeLog b/mcs/class/System.XML/Mono.Xml/ChangeLog
index 5ec05f292a6..117d7b178e3 100644
--- a/mcs/class/System.XML/Mono.Xml/ChangeLog
+++ b/mcs/class/System.XML/Mono.Xml/ChangeLog
@@ -1,7 +1,3 @@
-2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
-
- * added IHasXmlSchemaInfo.cs.
-
2003-08-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
* added IHasXmlParserContext.cs.
diff --git a/mcs/class/System.XML/Mono.Xml/IHasXmlSchemaInfo.cs b/mcs/class/System.XML/Mono.Xml/IHasXmlSchemaInfo.cs
deleted file mode 100644
index 547ededd193..00000000000
--- a/mcs/class/System.XML/Mono.Xml/IHasXmlSchemaInfo.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// Mono.Xml.IHasXmlSchemaInfo.cs
-//
-// Author:
-// Atsushi Enomoto (ginga@kit.hi-ho.ne.jp)
-//
-// (C) 2003 Atsushi Enomoto
-//
-// This interface is used to support XmlSchema type information.
-//
-using System.Xml;
-
-namespace Mono.Xml
-{
- public interface IHasXmlSchemaInfo
- {
- object SchemaType { get; }
- }
-}
diff --git a/mcs/class/System.XML/System.Xml.Xsl/ChangeLog b/mcs/class/System.XML/System.Xml.Xsl/ChangeLog
index 1ad8384a861..07204aeda8d 100644
--- a/mcs/class/System.XML/System.Xml.Xsl/ChangeLog
+++ b/mcs/class/System.XML/System.Xml.Xsl/ChangeLog
@@ -1,25 +1,3 @@
-2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * ManagedXslTransform.cs: sync to API changes.
-
-2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * ManagedXslTransform.cs, XslTransformImpl.cs: Add support for
- encoding.
-
-2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * *.cs: Support for xsl:output. (Oleg)
-
-2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * XslTransformImpl.cs: close XmlTextWriter when we create it.
-
-2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
-
- * XslTransformImpl.cs, XslTransform.cs, Multiplexer.cs,
- ManagedXslTransform.cs : Added Evidence args introduced in .NET 1.1.
-
2003-08-11 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
* XsltCompileException.cs: Fixed/ Implemented rest
diff --git a/mcs/class/System.XML/System.Xml.Xsl/ManagedXslTransform.cs b/mcs/class/System.XML/System.Xml.Xsl/ManagedXslTransform.cs
index 948a5ed0b3a..898e3681441 100644
--- a/mcs/class/System.XML/System.Xml.Xsl/ManagedXslTransform.cs
+++ b/mcs/class/System.XML/System.Xml.Xsl/ManagedXslTransform.cs
@@ -10,7 +10,6 @@
using System;
using System.Collections;
using System.IO;
-using System.Security.Policy;
using System.Text;
using System.Xml.XPath;
using Mono.Xml.Xsl;
@@ -21,50 +20,14 @@ namespace System.Xml.Xsl {
CompiledStylesheet s;
- public override void Load (XPathNavigator stylesheet, XmlResolver resolver, Evidence evidence)
+ public override void Load (XPathNavigator stylesheet, XmlResolver resolver)
{
- s = new Compiler ().Compile (stylesheet, resolver, evidence);
+ s = new Compiler ().Compile (stylesheet, resolver);
}
public override void Transform (XPathNavigator input, XsltArgumentList args, XmlWriter output, XmlResolver resolver)
{
- Outputter outputter = new XmlOutputter(output, s.Outputs);
- bool wroteStartDocument = false;
- if (output.WriteState == WriteState.Start) {
- outputter.WriteStartDocument ();
- wroteStartDocument = true;
- }
- new XslTransformProcessor (s).Process (input, outputter, args, resolver);
- if (wroteStartDocument)
- outputter.WriteEndDocument ();
- }
-
- public override void Transform (XPathNavigator input, XsltArgumentList args, TextWriter output, XmlResolver resolver) {
- XslOutput xslOutput = (XslOutput)s.Outputs[String.Empty];
- switch (xslOutput.Method) {
- case OutputMethod.Unknown: // TODO: handle xml vs html
- case OutputMethod.XML:
- XmlWriter w = new XmlTextWriter(output);
- Transform(input, args, w, resolver);
- w.Close ();
- break;
- case OutputMethod.HTML:
- throw new NotImplementedException("HTML output method is not implemented yet.");
- case OutputMethod.Text:
- new XslTransformProcessor (s).Process (input, new TextOutputter(output), args, resolver);
- break;
- case OutputMethod.Custom:
- throw new NotImplementedException("Custom output method is not implemented yet.");
- }
- }
-
- public override void Transform (XPathNavigator input, XsltArgumentList args, Stream output, XmlResolver resolver)
- {
- XslOutput xslOutput = (XslOutput)s.Outputs[String.Empty];
- if (xslOutput == null)
- Transform (input, args, new StreamWriter (output), resolver);
- else
- Transform (input, args, new StreamWriter (output, xslOutput.Encoding), resolver);
+ new XslTransformProcessor (s).Process (input, output, args, resolver);
}
}
}
diff --git a/mcs/class/System.XML/System.Xml.Xsl/Multiplexer.cs b/mcs/class/System.XML/System.Xml.Xsl/Multiplexer.cs
index 5d8a81b738f..f2648f6db66 100644
--- a/mcs/class/System.XML/System.Xml.Xsl/Multiplexer.cs
+++ b/mcs/class/System.XML/System.Xml.Xsl/Multiplexer.cs
@@ -13,7 +13,6 @@ using System.Collections;
using System.IO;
using System.Text;
using System.Runtime.InteropServices;
-using System.Security.Policy;
using System.Xml.XPath;
namespace System.Xml.Xsl {
@@ -76,7 +75,7 @@ namespace System.Xml.Xsl {
public void Transform(XPathNavigator input, XsltArgumentList args, TextWriter output)
{
- impl.Transform (input, args, output, xmlResolver);
+ impl.Transform (input, args, new XmlTextWriter (output), xmlResolver);
}
public void Transform (string inputfile, string outputfile)
@@ -96,81 +95,34 @@ namespace System.Xml.Xsl {
impl.Load (url, resolver);
}
-#if NET_1_1
- [Obsolete("You should pass evidence.", false)]
-#endif
public void Load (XmlReader stylesheet)
{
- Load (stylesheet, null, null);
+ Load (stylesheet, null);
}
-#if NET_1_1
- [Obsolete("You should pass evidence.", false)]
-#endif
public void Load (XmlReader stylesheet, XmlResolver resolver)
{
- Load (stylesheet, resolver, null);
+ impl.Load (stylesheet, resolver);
}
-#if NET_1_1
- [Obsolete("You should pass evidence.", false)]
-#endif
public void Load (XPathNavigator stylesheet)
{
- Load (stylesheet, null, null);
+ Load (stylesheet, null);
}
-#if NET_1_1
- [Obsolete("You should pass evidence.", false)]
-#endif
public void Load (XPathNavigator stylesheet, XmlResolver resolver)
{
- Load (stylesheet, resolver, null);
+ impl.Load (stylesheet, resolver);
}
-#if NET_1_1
- [Obsolete("You should pass evidence.", false)]
-#endif
public void Load (IXPathNavigable stylesheet)
{
Load (stylesheet.CreateNavigator(), null);
}
-#if NET_1_1
- [Obsolete("You should pass evidence.", false)]
-#endif
public void Load (IXPathNavigable stylesheet, XmlResolver resolver)
{
Load (stylesheet.CreateNavigator(), resolver);
}
-
- // Introduced in .NET 1.1
-#if NET_1_1
- public void Load (IXPathNavigable stylesheet, XmlResolver resolver, Evidence evidence)
-#else
- internal void Load (IXPathNavigable stylesheet, XmlResolver resolver, Evidence evidence)
-#endif
- {
- impl.Load (stylesheet.CreateNavigator(), resolver, evidence);
- }
-
-#if NET_1_1
- public void Load (XPathNavigator stylesheet, XmlResolver resolver, Evidence evidence)
-#else
- internal void Load (XPathNavigator stylesheet, XmlResolver resolver, Evidence evidence)
-#endif
- {
- impl.Load (stylesheet, resolver, evidence);
- }
-
-#if NET_1_1
- public void Load (XmlReader stylesheet, XmlResolver resolver, Evidence evidence)
-#else
- internal void Load (XmlReader stylesheet, XmlResolver resolver, Evidence evidence)
-#endif
- {
- Load (stylesheet, resolver, null);
- }
-
}
}
diff --git a/mcs/class/System.XML/System.Xml.Xsl/XslTransform.cs b/mcs/class/System.XML/System.Xml.Xsl/XslTransform.cs
index d49f1a49ad3..a884d5f29da 100644
--- a/mcs/class/System.XML/System.Xml.Xsl/XslTransform.cs
+++ b/mcs/class/System.XML/System.Xml.Xsl/XslTransform.cs
@@ -14,7 +14,6 @@
using System;
using System.Collections;
using System.IO;
-using System.Security.Policy;
using System.Text;
using System.Runtime.InteropServices;
using System.Xml.XPath;
@@ -65,7 +64,7 @@ namespace System.Xml.Xsl
throw new XmlException ("Error creating stylesheet");
}
- public override void Load (XmlReader stylesheet, XmlResolver resolver, Evidence evidence)
+ public override void Load (XmlReader stylesheet, XmlResolver resolver)
{
FreeStylesheetIfNeeded ();
// Create a document for the stylesheet
@@ -83,7 +82,7 @@ namespace System.Xml.Xsl
throw new XmlException ("Error creating stylesheet");
}
- public override void Load (XPathNavigator stylesheet, XmlResolver resolver, Evidence evidence)
+ public override void Load (XPathNavigator stylesheet, XmlResolver resolver)
{
FreeStylesheetIfNeeded ();
StringWriter sr = new UTF8StringWriter ();
@@ -279,10 +278,6 @@ namespace System.Xml.Xsl
output.WriteRaw (writer.GetStringBuilder ().ToString ());
output.Flush ();
}
- public override void Transform (XPathNavigator input, XsltArgumentList args, TextWriter output, XmlResolver resolver)
- {
- Transform(input, args, new XmlTextWriter(output), resolver);
- }
public override void Transform(string inputfile, string outputfile, XmlResolver resolver)
{
diff --git a/mcs/class/System.XML/System.Xml.Xsl/XslTransformImpl.cs b/mcs/class/System.XML/System.Xml.Xsl/XslTransformImpl.cs
index 3754792c092..d9f9573265e 100644
--- a/mcs/class/System.XML/System.Xml.Xsl/XslTransformImpl.cs
+++ b/mcs/class/System.XML/System.Xml.Xsl/XslTransformImpl.cs
@@ -10,7 +10,6 @@
using System;
using System.Collections;
using System.IO;
-using System.Security.Policy;
using System.Text;
using System.Xml.XPath;
@@ -20,27 +19,22 @@ namespace System.Xml.Xsl {
public virtual void Load (string url, XmlResolver resolver)
{
- Load (new XPathDocument (url).CreateNavigator (), resolver, null);
+ Load (new XPathDocument (url).CreateNavigator (), resolver);
}
- public virtual void Load (XmlReader stylesheet, XmlResolver resolver, Evidence evidence)
+ public virtual void Load (XmlReader stylesheet, XmlResolver resolver)
{
- Load (new XPathDocument (stylesheet).CreateNavigator (), resolver, evidence);
+ Load (new XPathDocument (stylesheet).CreateNavigator (), resolver);
}
- public abstract void Load (XPathNavigator stylesheet, XmlResolver resolver, Evidence evidence);
+ public abstract void Load (XPathNavigator stylesheet, XmlResolver resolver);
public abstract void Transform (XPathNavigator input, XsltArgumentList args, XmlWriter output, XmlResolver resolver);
- public abstract void Transform (XPathNavigator input, XsltArgumentList args, TextWriter output, XmlResolver resolver);
- public virtual void Transform (XPathNavigator input, XsltArgumentList args, Stream output, XmlResolver resolver)
- {
- Transform (input, args, new StreamWriter (output), resolver);
- }
public virtual void Transform (string inputfile, string outputfile, XmlResolver resolver)
{
- using (Stream s = new FileStream (outputfile, FileMode.Create, FileAccess.ReadWrite)) {
- Transform(new XPathDocument (inputfile).CreateNavigator (), null, s, resolver);
+ using (FileStream fs = new FileStream (outputfile, FileMode.Create, FileAccess.ReadWrite)) {
+ Transform(new XPathDocument (inputfile).CreateNavigator (), null, new XmlTextWriter (fs, null), resolver);
}
}
}
diff --git a/mcs/class/System.XML/System.Xml.dll.sources b/mcs/class/System.XML/System.Xml.dll.sources
index 81f0a40a279..29d7e1bd9c0 100755
--- a/mcs/class/System.XML/System.Xml.dll.sources
+++ b/mcs/class/System.XML/System.Xml.dll.sources
@@ -9,7 +9,6 @@ Mono.Xml.Xsl.Operations/XslAttribute.cs
Mono.Xml.Xsl.Operations/XslAvt.cs
Mono.Xml.Xsl.Operations/XslCallTemplate.cs
Mono.Xml.Xsl.Operations/XslChoose.cs
-Mono.Xml.Xsl.Operations/XslComment.cs
Mono.Xml.Xsl.Operations/XslCompiledElement.cs
Mono.Xml.Xsl.Operations/XslCopy.cs
Mono.Xml.Xsl.Operations/XslCopyOf.cs
@@ -26,9 +25,6 @@ Mono.Xml.Xsl.Operations/XslTemplateContent.cs
Mono.Xml.Xsl.Operations/XslText.cs
Mono.Xml.Xsl.Operations/XslValueOf.cs
Mono.Xml.Xsl.Operations/XslVariable.cs
-Mono.Xml.Xsl/XmlOutputter.cs
-Mono.Xml.Xsl/Outputter.cs
-Mono.Xml.Xsl/TextOutputter.cs
Mono.Xml.Xsl/Compiler.cs
Mono.Xml.Xsl/Debug.cs
Mono.Xml.Xsl/MSXslScriptManager.cs
@@ -40,7 +36,6 @@ Mono.Xml.Xsl/XslTemplate.cs
Mono.Xml.Xsl/XslTransformProcessor.cs
Mono.Xml.Xsl/XsltCompiledContext.cs
Mono.Xml/IHasXmlParserContext.cs
-Mono.Xml/IHasXmlSchemaInfo.cs
Mono.Xml/XmlNodeWriter.cs
System.Xml/IHasXmlNode.cs
System.Xml/DTDAutomata.cs
@@ -48,7 +43,6 @@ System.Xml/DTDObjectModel.cs
System.Xml/DTDValidatingReader.cs
System.Xml/EntityHandling.cs
System.Xml/Formatting.cs
-System.Xml/HighWaterStack.cs
System.Xml/IXmlLineInfo.cs
System.Xml/NameTable.cs
System.Xml/ReadState.cs
diff --git a/mcs/class/System.XML/System.Xml/ChangeLog b/mcs/class/System.XML/System.Xml/ChangeLog
index a374d297355..68f30d3843c 100644
--- a/mcs/class/System.XML/System.Xml/ChangeLog
+++ b/mcs/class/System.XML/System.Xml/ChangeLog
@@ -1,56 +1,3 @@
-2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
-
- * XmlDocumentNavigator.cs : Fixed MoveToFirstNamespace() that arose
- infinite loop.
- * XmlNamespaceManager.cs : Renamed AtomStrEq to AtomicStringEquals.
- Commented out Console.Error.WriteLine().
- * XmlUrlResolver.cs : Fixed ResolveUri() and GetEntity() to support
- escape and unescape for relative URI string.
-
-2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * XmlParserContext.cs: Make each context inherit next.
-
-2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * XmlChar.cs (IsWhitespace): Spare enumerator allocation.
- * XmlTextWriter.cs (WriteWhitespace): Enumerators are very high in
- fat, use low-fat loops instead. Even better, call the function
- inside XmlChar for code reuse.
- * HighWaterStack.cs (added): New class that acts like a Stack, but
- helps with memory allocation.
- * XmlNamespaceManager.cs, XmlParserContext.cs: Rewrote to use
- HighWaterStack.
- * XmlTextReader.cs: Remove orderedAttributesEnumerator variable,
- use a variable that stores the position in the ArrayList.
-
-2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * XmlTextWriter.cs: Begin diet. String.Format has too much
- saturated fat, lets replace with the fat-free .Write ()
- calls. Effects best seen when Paolo's StreamWriter patch is
- applied.
-
-2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
-
- * XmlNodeReader.cs : Fixed ReadAttributeValue() that might result in
- vanishing current node.
-
-2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
-
- * DTDValidatingReader.cs : Added SchemaType.
- Read() Assures to return to element.
- * DTDObjectModel.cs : Removed DTDEntityDeclaration.BaseURI.
- * XmlReader.cs : ReadString() should be virtual in NET_1_1.
- * XmlTextReader.cs : 1) Depth should consider Attribute and its values.
- Introduced insideAttribute field to support them.
- 2) ReadAttributeValue() should consider empty string.
- * XmlValidatingReader.cs :
- Fixed several properties which premised as if it was already read.
- Encoding and Namespaces now throws NotSupportedException for other
- than XmlTextReader.
- Implemented ReadTypedValue() based on IHasXmlSchemaInfo.SchemaType.
-
2003-08-10 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
* XmlInputStream.cs : Reverted CanSeek as to return false anyway.
diff --git a/mcs/class/System.XML/System.Xml/DTDObjectModel.cs b/mcs/class/System.XML/System.Xml/DTDObjectModel.cs
index c1148eca533..1d0419cad4c 100644
--- a/mcs/class/System.XML/System.Xml/DTDObjectModel.cs
+++ b/mcs/class/System.XML/System.Xml/DTDObjectModel.cs
@@ -747,6 +747,7 @@ namespace Mono.Xml
public string Name;
public string PublicId;
public string SystemId;
+ public string BaseURI;
public string LiteralValue;
public bool LoadFailed;
diff --git a/mcs/class/System.XML/System.Xml/DTDValidatingReader.cs b/mcs/class/System.XML/System.Xml/DTDValidatingReader.cs
index 23e27df9f84..c4d5520637d 100644
--- a/mcs/class/System.XML/System.Xml/DTDValidatingReader.cs
+++ b/mcs/class/System.XML/System.Xml/DTDValidatingReader.cs
@@ -8,7 +8,7 @@ using System.Xml.Schema;
namespace Mono.Xml
{
- public class DTDValidatingReader : XmlReader, IXmlLineInfo, IHasXmlParserContext, IHasXmlSchemaInfo
+ public class DTDValidatingReader : XmlReader, IXmlLineInfo, IHasXmlParserContext
{
public DTDValidatingReader (XmlReader reader)
: this (reader, null)
@@ -520,7 +520,6 @@ namespace Mono.Xml
}
break;
}
- MoveToElement ();
return true;
}
@@ -969,16 +968,6 @@ namespace Mono.Xml
}
}
- public object SchemaType {
- get {
- if (currentElement == null)
- return null;
- DTDAttributeDefinition def =
- DTD.AttListDecls [currentElement] [currentAttribute];
- return def.Datatype;
- }
- }
-
char [] whitespaceChars = new char [] {' '};
private string FilterNormalization (string attrName, string rawValue)
{
diff --git a/mcs/class/System.XML/System.Xml/HighWaterStack.cs b/mcs/class/System.XML/System.Xml/HighWaterStack.cs
deleted file mode 100644
index 9762b10f5dd..00000000000
--- a/mcs/class/System.XML/System.Xml/HighWaterStack.cs
+++ /dev/null
@@ -1,104 +0,0 @@
-//
-// HighWaterStack.cs
-//
-// Authors:
-// Ben Maurer (bmaurer@users.sourceforge.net)
-//
-// (C) 2003 Ben Maurer
-//
-
-namespace System.Xml {
- // This class represents a stack that minimizes object
- // allocation by using the "high water" method by allowing
- // objects to be reused over time. It would be much easier to do
- // with generics.
- //
- // To push an object one must use the following method:
- // Scope current = (Scope)scopes.Push ();
- // if (current == null) {
- // current = new Scope ();
- // scopes.AddToTop (current);
- // }
- // // set props of current
-
- internal class HighWaterStack : ICloneable {
- public HighWaterStack (int GrowthRate) : this (GrowthRate, int.MaxValue) {}
-
- public HighWaterStack (int GrowthRate, int limit)
- {
- growthrate = GrowthRate;
- used = 0;
- stack = new object [GrowthRate];
- size = GrowthRate;
- limit = limit;
- }
-
- public object Push ()
- {
- if (used == size) {
- if (limit <= used)
- throw new XmlException ("Xml Stack overflow!");
-
- size += growthrate;
- object [] newstack = new object [size];
-
- if (used > 0)
- Array.Copy (stack, 0, newstack, 0, used);
-
- stack = newstack;
-
- }
- return stack [used++];
- }
-
- public object Pop ()
- {
- if (used > 0)
- return stack [--used];
-
- return null;
- }
-
- public object Peek ()
- {
- return used > 0 ? stack[used - 1] : null;
- }
-
- public void AddToTop (object o)
- {
- if (used > 0)
- stack[used - 1] = o;
- }
-
- public object this [int index] {
- get {
- if (index >= 0 && index < used)
- return stack [index];
-
- throw new IndexOutOfRangeException ("index");
- }
- set {
- if (index >= 0 && index < used) stack [index] = value;
-
- throw new IndexOutOfRangeException ("index");
- }
- }
-
- public int Length {
- get { return used;}
- }
-
- public object Clone()
- {
- HighWaterStack ret = (HighWaterStack)this.MemberwiseClone ();
- ret.stack = (object [])this.stack.Clone ();
- return ret;
- }
-
- object [] stack;
- int growthrate;
- int used;
- int size;
- int limit;
- }
-}
diff --git a/mcs/class/System.XML/System.Xml/XmlChar.cs b/mcs/class/System.XML/System.Xml/XmlChar.cs
index faf6ef8b245..52bb5537fbd 100644
--- a/mcs/class/System.XML/System.Xml/XmlChar.cs
+++ b/mcs/class/System.XML/System.Xml/XmlChar.cs
@@ -19,9 +19,9 @@ namespace System.Xml
internal static bool IsWhitespace (string str)
{
- for (int i = 0; i < str.Length; i++)
- if (!IsWhitespace (str [i])) return false;
-
+ foreach (char c in str)
+ if (!IsWhitespace (c))
+ return false;
return true;
}
diff --git a/mcs/class/System.XML/System.Xml/XmlDocumentNavigator.cs b/mcs/class/System.XML/System.Xml/XmlDocumentNavigator.cs
index 71799f35173..aa2dff117bc 100644
--- a/mcs/class/System.XML/System.Xml/XmlDocumentNavigator.cs
+++ b/mcs/class/System.XML/System.Xml/XmlDocumentNavigator.cs
@@ -300,7 +300,7 @@ namespace System.Xml
}
if (namespaceScope == XPathNamespaceScope.Local)
return false;
- el = el.ParentNode as XmlElement;
+ el = node.ParentNode as XmlElement;
} while (el != null);
}
diff --git a/mcs/class/System.XML/System.Xml/XmlNamespaceManager.cs b/mcs/class/System.XML/System.Xml/XmlNamespaceManager.cs
index fed3df0fd8f..3f9dc1be3cf 100644
--- a/mcs/class/System.XML/System.Xml/XmlNamespaceManager.cs
+++ b/mcs/class/System.XML/System.Xml/XmlNamespaceManager.cs
@@ -16,16 +16,10 @@ namespace System.Xml
#region Fields
private XmlNameTable nameTable;
-
- HighWaterStack decls = new HighWaterStack (50);
- HighWaterStack scopes = new HighWaterStack (50);
- Namespace defaultNamespace;
- int count = 0;
-
+ private NamespaceScope currentScope;
internal const string XmlnsXml = "http://www.w3.org/XML/1998/namespace";
internal const string XmlnsXmlns = "http://www.w3.org/2000/xmlns/";
- string XMLNS, XML, XMLNS_URL, XML_URL;
#endregion
#region Constructor
@@ -34,10 +28,16 @@ namespace System.Xml
{
this.nameTable = nameTable;
- XMLNS = nameTable.Add ("xmlns");
- XML = nameTable.Add ("xml");
- XMLNS_URL = nameTable.Add (XmlnsXmlns);
- XML_URL = nameTable.Add (XmlnsXml);
+ nameTable.Add ("xmlns");
+ nameTable.Add ("xml");
+ nameTable.Add (String.Empty);
+ nameTable.Add (XmlnsXmlns);
+ nameTable.Add (XmlnsXml);
+
+ PushScope ();
+ currentScope.Namespaces = new Hashtable ();
+ currentScope.Namespaces.Add ("xml", XmlnsXml);
+ currentScope.Namespaces.Add ("xmlns", XmlnsXmlns);
}
#endregion
@@ -45,7 +45,7 @@ namespace System.Xml
#region Properties
public virtual string DefaultNamespace {
- get { return (defaultNamespace == null) ? String.Empty : defaultNamespace.Uri; }
+ get { return LookupNamespace (String.Empty); }
}
public XmlNameTable NameTable {
@@ -66,30 +66,12 @@ namespace System.Xml
IsValidDeclaration (prefix, uri, true);
- prefix = nameTable.Add (prefix);
- uri = nameTable.Add (uri);
+ if (currentScope.Namespaces == null)
+ currentScope.Namespaces = new Hashtable ();
- // Is it already in the table?
- for (int i = decls.Length - 1; i >= decls.Length - count; i--) {
- Namespace decl = (Namespace)decls [i];
- if (AtomicStringEquals (decl.Prefix, prefix)) {
- // Then redefine it
- decl.Uri = uri;
- return;
- }
- }
-
- // Otherwise, we are going to add it as a new object
- Namespace newDecl = (Namespace) decls.Push ();
- if (newDecl == null) {
- newDecl = new Namespace ();
- decls.AddToTop (newDecl);
- }
- newDecl.Prefix = prefix;
- newDecl.Uri = uri;
- count++;
- if (prefix == String.Empty)
- defaultNamespace = newDecl;
+ if (prefix != String.Empty)
+ nameTable.Add (prefix);
+ currentScope.Namespaces [prefix] = nameTable.Add (uri);
}
internal static string IsValidDeclaration (string prefix, string uri, bool throwException)
@@ -111,72 +93,56 @@ namespace System.Xml
public virtual IEnumerator GetEnumerator ()
{
- Hashtable p = new Hashtable (count);
- for (int i = decls.Length - 1; i >= decls.Length - count; i--) {
- Namespace decl = (Namespace)decls [i];
- if (decl.Prefix != String.Empty && decl.Uri != null)
- p [decl.Prefix] = decl.Uri;
- }
- p [String.Empty] = DefaultNamespace;
- p [XML] = XML_URL;
- p [XMLNS] = XMLNS_URL;
- return p.Keys.GetEnumerator ();
+ if (currentScope.Namespaces == null)
+ currentScope.Namespaces = new Hashtable ();
+
+ return currentScope.Namespaces.Keys.GetEnumerator ();
}
public virtual bool HasNamespace (string prefix)
{
- if (prefix == null) return false;
-
- for (int i = decls.Length - 1; i >= decls.Length - count; i--) {
- Namespace decl = (Namespace)decls [i];
- if (AtomicStringEquals (decl.Prefix, prefix) && decl.Uri != null)
- return true;
- }
- return false;
+ return currentScope != null && currentScope.Namespaces != null && currentScope.Namespaces.Contains (prefix);
}
public virtual string LookupNamespace (string prefix)
{
- if (prefix == null)
- return null;
-
- if (prefix == String.Empty)
- return DefaultNamespace;
+ NamespaceScope scope = currentScope;
- if (AtomicStringEquals (XML, prefix))
- return XML_URL;
-
- if (AtomicStringEquals (XMLNS, prefix))
- return XMLNS_URL;
+ while (scope != null) {
+ if (scope.Namespaces != null && scope.Namespaces.Contains (prefix))
+ return scope.Namespaces[prefix] as string;
+ scope = scope.Next;
+ }
- for (int i = decls.Length - 1; i >= 0; i--) {
- Namespace decl = (Namespace)decls [i];
- if (AtomicStringEquals (decl.Prefix, prefix) && decl.Uri != null)
- return decl.Uri;
+ switch (prefix) {
+ case "xmlns":
+ return nameTable.Get (XmlnsXmlns);
+ case "xml":
+ return nameTable.Get (XmlnsXml);
+ case "":
+ return nameTable.Get (String.Empty);
}
+
return null;
}
-
public virtual string LookupPrefix (string uri)
{
if (uri == null)
return null;
- if (AtomicStringEquals (DefaultNamespace, uri))
- return String.Empty;
-
- if (AtomicStringEquals (XML_URL, uri))
- return XML;
-
- if (AtomicStringEquals (XMLNS_URL, uri))
- return XMLNS;
+ NamespaceScope scope = currentScope;
+ while (scope != null)
+ {
+ if (scope.Namespaces != null && scope.Namespaces.ContainsValue (uri)) {
+ foreach (DictionaryEntry entry in scope.Namespaces) {
+ if (entry.Value.ToString() == uri)
+ return nameTable.Get (entry.Key as string) as string;
+ }
+ }
- for (int i = decls.Length - 1; i >= 0; i--) {
- Namespace decl = (Namespace)decls [i];
- if (AtomicStringEquals (decl.Uri, uri) && decl.Uri != null)
- return decl.Prefix;
+ scope = scope.Next;
}
// ECMA specifies that this method returns String.Empty
@@ -189,29 +155,17 @@ namespace System.Xml
public virtual bool PopScope ()
{
- Scope current = (Scope)scopes.Pop ();
- if (current == null) {
- return false;
- } else {
- for (int i = 0; i < count; i++)
- decls.Pop ();
-
- defaultNamespace = current.DefaultNamespace;
- count = current.Count;
- return true;
- }
+ if (currentScope != null)
+ currentScope = currentScope.Next;
+
+ return currentScope != null;
}
public virtual void PushScope ()
{
- Scope current = (Scope)scopes.Push ();
- if (current == null) {
- current = new Scope ();
- scopes.AddToTop (current);
- }
- current.DefaultNamespace = defaultNamespace;
- current.Count = count;
- count = 0;
+ NamespaceScope newScope = new NamespaceScope ();
+ newScope.Next = currentScope;
+ currentScope = newScope;
}
public virtual void RemoveNamespace (string prefix, string uri)
@@ -222,35 +176,27 @@ namespace System.Xml
if (uri == null)
throw new ArgumentNullException ("uri");
+ if (currentScope == null || currentScope.Namespaces == null)
+ return;
+
string p = nameTable.Get (prefix);
string u = nameTable.Get (uri);
if (p == null || u == null)
return;
- for (int i = decls.Length - 1; i >= decls.Length - count; i--) {
- Namespace n = (Namespace)decls [i];
- if (AtomicStringEquals (n.Prefix, p) && AtomicStringEquals (n.Uri, u))
- n.Uri = null;
- }
- }
-
- bool AtomicStringEquals (string a, string b) {
- if (String.Equals (a, b) && !Object.ReferenceEquals (a, b)) {
-// Console.Error.WriteLine ("WARNING: {0} not interned", a);
- }
-
- return String.Equals (a, b);
+ string storedUri = currentScope.Namespaces [p] as string;
+ if (storedUri == null || storedUri != u)
+ return;
+ currentScope.Namespaces.Remove (p);
}
#endregion
- class Namespace {
- public string Prefix, Uri;
}
- class Scope {
- public Namespace DefaultNamespace;
- public int Count;
- }
+ internal class NamespaceScope
+ {
+ internal NamespaceScope Next;
+ internal Hashtable Namespaces;
}
}
diff --git a/mcs/class/System.XML/System.Xml/XmlNodeReader.cs b/mcs/class/System.XML/System.Xml/XmlNodeReader.cs
index f77a2875e10..6336174eece 100755
--- a/mcs/class/System.XML/System.Xml/XmlNodeReader.cs
+++ b/mcs/class/System.XML/System.Xml/XmlNodeReader.cs
@@ -276,10 +276,7 @@ namespace System.Xml
if (current == null)
return String.Empty;
- if (current.NodeType == XmlNodeType.Attribute)
- return current.Prefix != String.Empty ? current.Prefix : null;
- else
- return current.Prefix;
+ return current.Prefix;
}
}
@@ -784,10 +781,8 @@ namespace System.Xml
}
if (current.NodeType == XmlNodeType.Attribute) {
- if (current.FirstChild == null)
- return false;
current = current.FirstChild;
- return true;
+ return current != null;
} else if (current.ParentNode.NodeType == XmlNodeType.Attribute) {
if (current.NextSibling == null)
return false;
diff --git a/mcs/class/System.XML/System.Xml/XmlParserContext.cs b/mcs/class/System.XML/System.Xml/XmlParserContext.cs
index 49158c248b4..f21a205d592 100644
--- a/mcs/class/System.XML/System.Xml/XmlParserContext.cs
+++ b/mcs/class/System.XML/System.Xml/XmlParserContext.cs
@@ -134,14 +134,18 @@ namespace System.Xml
}
this.encoding = enc;
- PushScope ();
- this.BaseURI = baseURI != null ? baseURI : String.Empty;
- this.XmlLang = xmlLang;
- this.XmlSpace = xmlSpace;
+ baseURIStack = new Stack ();
+ xmlLangStack = new Stack ();
+ xmlSpaceStack = new Stack ();
+ baseURIStack.Push (baseURI != null ? baseURI : String.Empty);
+ xmlLangStack.Push (xmlLang);
+ xmlSpaceStack.Push (xmlSpace);
}
#endregion
#region Fields
+
+ private string baseURI;
private string docTypeName;
private Encoding encoding;
private string internalSubset;
@@ -149,8 +153,11 @@ namespace System.Xml
private XmlNameTable nameTable;
private string publicID;
private string systemID;
- private HighWaterStack scopeStack = new HighWaterStack (50);
- Scope current;
+ private string xmlLang;
+ private XmlSpace xmlSpace;
+ private Stack baseURIStack;
+ private Stack xmlLangStack;
+ private Stack xmlSpaceStack;
private DTDObjectModel dtd;
#endregion
@@ -158,8 +165,8 @@ namespace System.Xml
#region Properties
public string BaseURI {
- get { return current.baseUri; }
- set { current.baseUri = value; }
+ get { return baseURI != null ? baseURI : baseURIStack.Peek () as string; }
+ set { baseURI = value; }
}
public string DocTypeName {
@@ -203,13 +210,13 @@ namespace System.Xml
}
public string XmlLang {
- get { return current.xmlLang; }
- set { current.xmlLang = value; }
+ get { return xmlLang != null ? xmlLang : xmlLangStack.Peek () as string; }
+ set { xmlLang = value; }
}
public XmlSpace XmlSpace {
- get { return current.xmlSpace; }
- set { current.xmlSpace = value; }
+ get { return xmlSpace != XmlSpace.None ? xmlSpace : (XmlSpace) xmlSpaceStack.Peek (); }
+ set { xmlSpace = value; }
}
#endregion
@@ -217,31 +224,22 @@ namespace System.Xml
#region Methods
internal void PushScope ()
{
- Scope next = (Scope)scopeStack.Push ();
- if (next == null) {
- next = new Scope ();
- scopeStack.AddToTop (current);
- }
-
- if (current != null) {
- next.baseUri = BaseURI;
- next.xmlLang = XmlLang;
- next.xmlSpace = XmlSpace;
- }
-
- current = next;
+ baseURIStack.Push (BaseURI);
+ xmlLangStack.Push (XmlLang);
+ xmlSpaceStack.Push (XmlSpace);
+ baseURI = null;
+ xmlLang = null;
+ xmlSpace = XmlSpace.None;
}
internal void PopScope ()
{
- current = (Scope)scopeStack.Pop ();
- }
-
- class Scope {
- public string baseUri, xmlLang;
- public XmlSpace xmlSpace;
-
- public Scope () {}
+ baseURIStack.Pop ();
+ xmlLangStack.Pop ();
+ xmlSpaceStack.Pop ();
+ baseURI = null;
+ xmlLang = null;
+ xmlSpace = XmlSpace.None;
}
#endregion
}
diff --git a/mcs/class/System.XML/System.Xml/XmlReader.cs b/mcs/class/System.XML/System.Xml/XmlReader.cs
index acfa455ccfb..b7cbf7368ce 100644
--- a/mcs/class/System.XML/System.Xml/XmlReader.cs
+++ b/mcs/class/System.XML/System.Xml/XmlReader.cs
@@ -397,14 +397,7 @@ namespace System.Xml
Read ();
}
-#if NET_1_0
public abstract string ReadString ();
-#else
- public virtual string ReadString ()
- {
- return ReadStringInternal ();
- }
-#endif
internal string ReadStringInternal ()
{
diff --git a/mcs/class/System.XML/System.Xml/XmlTextReader.cs b/mcs/class/System.XML/System.Xml/XmlTextReader.cs
index 4fd2f05cf27..8c16f275b2e 100644
--- a/mcs/class/System.XML/System.Xml/XmlTextReader.cs
+++ b/mcs/class/System.XML/System.Xml/XmlTextReader.cs
@@ -16,9 +16,6 @@
// Some thought needs to be given to performance. There's too many
// strings being allocated.
//
-// If current node is on an Attribute, Prefix might be null, and
-// in several fields which uses XmlReader, it should be considered.
-//
using System;
using System.Collections;
@@ -102,6 +99,7 @@ namespace System.Xml
{
}
+ [MonoTODO("TODO as same as private XmlTextReader(TextReader, XmlNodeType, XmlParserContext)")]
public XmlTextReader (string xmlFragment, XmlNodeType fragType, XmlParserContext context)
: this (context != null ? context.BaseURI : String.Empty,
new StringReader (xmlFragment),
@@ -110,6 +108,8 @@ namespace System.Xml
{
}
+ // TODO still remains as described at head of this file,
+ // but it might not be TODO of the constructors...
XmlTextReader (string url, TextReader fragment, XmlNodeType fragType, XmlParserContext context)
{
InitializeContext (url, context, fragment, fragType);
@@ -132,10 +132,6 @@ namespace System.Xml
public override int Depth
{
get {
- if (NodeType == XmlNodeType.Attribute)
- return elementDepth + 1;
- else if (insideAttribute)
- return elementDepth + 2; // inside attribute value.
return elementDepth;
}
}
@@ -390,11 +386,13 @@ namespace System.Xml
if (attributes == null || orderedAttributes.Count < i || i < 0)
throw new ArgumentOutOfRangeException ("attribute index out of range.");
- if (orderedAttributesPos == -1) {
+ if (orderedAttributesEnumerator == null) {
SaveProperties ();
}
- orderedAttributesPos = i;
+ orderedAttributesEnumerator = orderedAttributes.GetEnumerator ();
+ for (int n=0; n<=i; n++)
+ orderedAttributesEnumerator.MoveNext();
string name = orderedAttributes [i] as string;
string value = attributes [name] as string;
@@ -405,7 +403,6 @@ namespace System.Xml
value, // value
false // clearAttributes
);
- insideAttribute = true;
attributeValuePos = 0;
}
@@ -417,15 +414,17 @@ namespace System.Xml
if (attributes == null)
return false;
- if (orderedAttributesPos == -1) {
+ if (orderedAttributesEnumerator == null) {
SaveProperties ();
}
- for (orderedAttributesPos = 0; orderedAttributesPos < orderedAttributes.Count; orderedAttributesPos++)
- if (name == orderedAttributes [orderedAttributesPos] as string) {
+ orderedAttributesEnumerator = orderedAttributes.GetEnumerator ();
+ while (orderedAttributesEnumerator.MoveNext ()) {
+ if(name == orderedAttributesEnumerator.Current as string) {
match = true;
break;
}
+ }
if (match) {
string value = attributes [name] as string;
@@ -436,7 +435,6 @@ namespace System.Xml
value, // value
false // clearAttributes
);
- insideAttribute = true;
attributeValuePos = 0;
}
@@ -459,11 +457,10 @@ namespace System.Xml
public override bool MoveToElement ()
{
- if (orderedAttributesPos != -1) {
- orderedAttributesPos = -1;
+ if (orderedAttributesEnumerator != null) {
+ orderedAttributesEnumerator = null;
if (isPropertySaved)
RestoreProperties ();
- insideAttribute = false;
return true;
}
@@ -481,12 +478,13 @@ namespace System.Xml
if (attributes == null)
return false;
- if (orderedAttributesPos == -1)
+ if (orderedAttributesEnumerator == null) {
SaveProperties ();
+ orderedAttributesEnumerator = orderedAttributes.GetEnumerator ();
+ }
-
- if (++orderedAttributesPos < orderedAttributes.Count) {
- string name = orderedAttributes [orderedAttributesPos] as string;
+ if (orderedAttributesEnumerator.MoveNext ()) {
+ string name = orderedAttributesEnumerator.Current as string;
string value = attributes [name] as string;
SetProperties (
XmlNodeType.Attribute, // nodeType
@@ -495,7 +493,6 @@ namespace System.Xml
value, // value
false // clearAttributes
);
- insideAttribute = true;
attributeValuePos = 0;
return true;
}
@@ -508,7 +505,6 @@ namespace System.Xml
bool more = false;
isPropertySaved = false;
readState = ReadState.Interactive;
- insideAttribute = false;
// It was moved from end of ReadStartTag ().
if (depthUp)
@@ -523,7 +519,7 @@ namespace System.Xml
maybeTextDecl--;
if (!more && startNodeType == XmlNodeType.Document && currentState != XmlNodeType.EndElement)
- throw new XmlException ("Document element did not appear.");
+ throw new XmlException ("Document element was not appeared.");
return more;
}
@@ -547,20 +543,9 @@ namespace System.Xml
return false;
// If not started, then initialize attributeString when parsing is at start.
- if (attributeValuePos == 0) {
+ if (attributeValuePos == 0)
attributeString =
value.Substring (1, value.Length - 2);
- // If it has an empty value, this method still returns true.
- if (attributeString.Length == 0) {
- attributeValuePos = -1;
- SetProperties (XmlNodeType.Text,
- "",
- false,
- "",
- false);
- return true;
- }
- }
// It occurs when attribute dully consists of entity reference.
if (attributeValuePos == attributeString.Length)
@@ -764,8 +749,6 @@ namespace System.Xml
private StringBuilder valueBuilder;
private bool valueBuilderAvailable = false;
- private bool insideAttribute;
-
private bool isPropertySaved;
private XmlNodeType saveNodeType;
private string saveName;
@@ -776,7 +759,7 @@ namespace System.Xml
private Hashtable attributes;
private ArrayList orderedAttributes;
- private int orderedAttributesPos = -1;
+ private IEnumerator orderedAttributesEnumerator;
private bool returnEntityReference;
private string entityReferenceName;
@@ -797,7 +780,6 @@ namespace System.Xml
private string attributeString;
private int attributeValuePos;
-
// This should be only referenced(used) by ReadInnerXml(). Kind of flyweight pattern.
private StringBuilder innerXmlBuilder;
@@ -844,7 +826,7 @@ namespace System.Xml
attributes = new Hashtable ();
attributeString = String.Empty;
orderedAttributes = new ArrayList ();
- orderedAttributesPos = -1;
+ orderedAttributesEnumerator = null;
returnEntityReference = false;
entityReferenceName = String.Empty;
@@ -922,7 +904,6 @@ namespace System.Xml
if (indexOfColon == -1) {
prefix = String.Empty;
-// prefix = nodeType == XmlNodeType.Attribute ? null : String.Empty;
localName = name;
} else {
prefix = name.Substring (0, indexOfColon);
@@ -936,7 +917,6 @@ namespace System.Xml
switch (nodeType) {
case XmlNodeType.Attribute:
if (prefix == string.Empty) namespaceURI = string.Empty;
-// if (prefix == string.Empty || prefix == null) namespaceURI = string.Empty;
else namespaceURI = LookupNamespace (prefix);
if (localName == "xmlns" && prefix == "")
namespaceURI = "http://www.w3.org/2000/xmlns/";
@@ -1007,7 +987,7 @@ namespace System.Xml
orderedAttributes.Clear ();
}
- orderedAttributesPos = -1;
+ orderedAttributesEnumerator = null;
}
private int PeekChar ()
diff --git a/mcs/class/System.XML/System.Xml/XmlTextWriter.cs b/mcs/class/System.XML/System.Xml/XmlTextWriter.cs
index 214aac3a919..d4a5c7e3d6a 100644
--- a/mcs/class/System.XML/System.Xml/XmlTextWriter.cs
+++ b/mcs/class/System.XML/System.Xml/XmlTextWriter.cs
@@ -345,10 +345,8 @@ namespace System.Xml
CheckState ();
CloseStartElement ();
-
- w.Write ("<![CDATA[");
- w.Write (text);
- w.Write ("]]>");
+
+ w.Write("<![CDATA[{0}]]>", text);
}
public override void WriteCharEntity (char ch)
@@ -378,9 +376,7 @@ namespace System.Xml
CheckState ();
CloseStartElement ();
- w.Write ("<!--");
- w.Write (text);
- w.Write ("-->");
+ w.Write ("<!--{0}-->", text);
}
public override void WriteDocType (string name, string pubid, string sysid, string subset)
@@ -391,27 +387,14 @@ namespace System.Xml
w.Write ("<!DOCTYPE ");
w.Write (name);
if (pubid != null) {
- w.Write (" PUBLIC ");
- w.Write (quoteChar);
- w.Write (pubid);
- w.Write (quoteChar);
-
- w.Write (quoteChar);
- w.Write (sysid);
- w.Write (quoteChar);
+ w.Write (String.Format (" PUBLIC {0}{1}{0} {0}{2}{0}", quoteChar, pubid, sysid));
} else if (sysid != null) {
- w.Write (" SYSTEM ");
- w.Write (quoteChar);
- w.Write (sysid);
- w.Write (quoteChar);
+ w.Write (String.Format (" SYSTEM {0}{1}{0}", quoteChar, sysid));
}
- if (subset != null) {
- w.Write ('[');
- w.Write (subset);
- w.Write (']');
- }
-
+ if (subset != null)
+ w.Write ("[" + subset + "]");
+
w.Write('>');
}
@@ -435,7 +418,7 @@ namespace System.Xml
((XmlTextWriterOpenElement)openElements.Peek()).XmlSpace = xmlSpace;
}
- w.Write (quoteChar);
+ w.Write ("{0}", quoteChar);
openAttribute = false;
@@ -477,20 +460,15 @@ namespace System.Xml
if (openStartElement) {
if (openAttribute)
WriteEndAttribute ();
- if (fullEndElement) {
- w.Write ("></");
- w.Write (((XmlTextWriterOpenElement)openElements.Peek ()).Name);
- w.Write ('>');
- } else
+ if (fullEndElement)
+ w.Write ("></{0}>", ((XmlTextWriterOpenElement)openElements.Peek ()).Name);
+ else
w.Write (" />");
openElements.Pop ();
openStartElement = false;
} else {
- w.Write (indentFormatting);
- w.Write ("</");
- w.Write (openElements.Pop ());
- w.Write ('>');
+ w.Write ("{0}</{1}>", indentFormatting, openElements.Pop ());
}
namespaceManager.PopScope();
@@ -541,12 +519,7 @@ namespace System.Xml
CheckState ();
CloseStartElement ();
- w.Write (indentFormatting);
- w.Write ("<?");
- w.Write (name);
- w.Write (' ');
- w.Write (text);
- w.Write ("?>");
+ w.Write ("{0}<?{1} {2}?>", indentFormatting, name, text);
}
[MonoTODO]
@@ -559,9 +532,8 @@ namespace System.Xml
if (!openAttribute)
CloseStartElement ();
- w.Write (namespaceManager.LookupPrefix (ns));
- w.Write (':');
- w.Write (localName);
+ string prefix = namespaceManager.LookupPrefix (ns);
+ w.Write ("{0}:{1}", prefix, localName);
}
public override void WriteRaw (string data)
@@ -633,11 +605,7 @@ namespace System.Xml
// writtenAttributes.Contains (formatPrefix + localName))
// return;
- w.Write (formatSpace);
- w.Write (formatPrefix);
- w.Write (localName);
- w.Write ('=');
- w.Write (quoteChar);
+ w.Write ("{0}{1}{2}={3}", formatSpace, formatPrefix, localName, quoteChar);
if (checkMultipleAttributes)
writtenAttributes.Add (formatPrefix + localName, formatPrefix + localName);
@@ -714,16 +682,16 @@ namespace System.Xml
if (prefix == null)
prefix = String.Empty;
- string formatName = localName;
+ string formatPrefix = "";
- if (ns != null && prefix != String.Empty)
- formatName = prefix + ":" + localName;
-
- w.Write (indentFormatting);
- w.Write ('<');
- w.Write (formatName);
+ if(ns != null) {
+ if (prefix != String.Empty)
+ formatPrefix = prefix + ":";
+ }
+
+ w.Write ("{0}<{1}{2}", indentFormatting, formatPrefix, localName);
- openElements.Push (new XmlTextWriterOpenElement (formatName));
+ openElements.Push (new XmlTextWriterOpenElement (formatPrefix + localName));
ws = WriteState.Element;
openStartElement = true;
openElementNS = ns;
@@ -821,8 +789,10 @@ namespace System.Xml
public override void WriteWhitespace (string ws)
{
- if (!XmlChar.IsWhitespace (ws))
- throw new ArgumentException ("Invalid Whitespace");
+ foreach (char c in ws) {
+ if ((c != ' ') && (c != '\t') && (c != '\r') && (c != '\n'))
+ throw new ArgumentException ();
+ }
CheckState ();
diff --git a/mcs/class/System.XML/System.Xml/XmlUrlResolver.cs b/mcs/class/System.XML/System.Xml/XmlUrlResolver.cs
index 5311643ffc4..1bd2dedb340 100755
--- a/mcs/class/System.XML/System.Xml/XmlUrlResolver.cs
+++ b/mcs/class/System.XML/System.Xml/XmlUrlResolver.cs
@@ -39,17 +39,17 @@ namespace System.Xml
}
// Methods
- [MonoTODO("Uri must be absolute.")]
+ [MonoTODO("Use Credentials; Uri must be absolute.")]
public override object GetEntity (Uri absoluteUri, string role, Type ofObjectToReturn)
{
if (absoluteUri.Scheme == "file")
- return new FileStream (UnescapeRelativeUriBody (absoluteUri.LocalPath), FileMode.Open, FileAccess.Read, FileShare.Read);
+ return new FileStream (absoluteUri.LocalPath, FileMode.Open, FileAccess.Read, FileShare.Read);
// (MS documentation says) parameter role isn't used yet.
Stream s = null;
using (s) {
WebClient wc = new WebClient ();
- wc.Credentials = credential;
+// wc.Credentials = credential;
s = wc.OpenRead (absoluteUri.ToString ());
if (s.GetType ().IsSubclassOf (ofObjectToReturn))
return s;
@@ -71,31 +71,17 @@ namespace System.Xml
// extraneous "/a" is required because current Uri stuff
// seems ignorant of difference between "." and "./".
// I'd be appleciate if it is fixed with better solution.
- return new Uri (new Uri (Path.GetFullPath ("./a")), EscapeRelativeUriBody (relativeUri));
+ return new Uri (new Uri (Path.GetFullPath ("./a")), relativeUri);
}
+ // Do not expect relativeUri.Length > 2.
+// if (relativeUri.IndexOf ("://") >= 0)
+// return new Uri (relativeUri);
+
if (relativeUri == null)
return baseUri;
- return new Uri (baseUri, EscapeRelativeUriBody (relativeUri));
- }
-
- private string EscapeRelativeUriBody (string src)
- {
- return src.Replace ("<", "%3C")
- .Replace (">", "%3E")
- .Replace ("#", "%23")
- .Replace ("%", "%25")
- .Replace ("\"", "%22");
- }
-
- private string UnescapeRelativeUriBody (string src)
- {
- return src.Replace ("%3C", "<")
- .Replace ("%3E", ">")
- .Replace ("%23", "#")
- .Replace ("%25", "%")
- .Replace ("%22", "\"");
+ return new Uri (baseUri, relativeUri);
}
}
}
diff --git a/mcs/class/System.XML/System.Xml/XmlValidatingReader.cs b/mcs/class/System.XML/System.Xml/XmlValidatingReader.cs
index 307f67fe2ad..d800d0e1be6 100644
--- a/mcs/class/System.XML/System.Xml/XmlValidatingReader.cs
+++ b/mcs/class/System.XML/System.Xml/XmlValidatingReader.cs
@@ -21,22 +21,21 @@ namespace System.Xml {
EntityHandling entityHandling;
XmlReader sourceReader;
- XmlTextReader xmlTextReader;
XmlReader validatingReader;
XmlResolver resolver;
ValidationType validationType;
XmlSchemaCollection schemas;
DTDValidatingReader dtdReader;
- IHasXmlSchemaInfo schemaInfo;
#endregion // Fields
#region Constructors
+ [MonoTODO]
public XmlValidatingReader (XmlReader reader)
+ : base ()
{
this.sourceReader = reader;
- this.xmlTextReader = reader as XmlTextReader;
entityHandling = EntityHandling.ExpandEntities;
validationType = ValidationType.Auto;
schemas = new XmlSchemaCollection ();
@@ -57,29 +56,27 @@ namespace System.Xml {
#region Properties
public override int AttributeCount {
+ [MonoTODO]
get { return validatingReader == null ? 0 : validatingReader.AttributeCount; }
}
public override string BaseURI {
+ [MonoTODO]
get { return validatingReader == null ? sourceReader.BaseURI : validatingReader.BaseURI; }
}
- // This property for this class always return true.
public override bool CanResolveEntity {
- get { return true; }
+ get { return validatingReader == null ? false : validatingReader.CanResolveEntity; }
}
public override int Depth {
+ [MonoTODO]
get { return validatingReader == null ? 0 : validatingReader.Depth; }
}
public Encoding Encoding {
- get {
- if (xmlTextReader != null)
- return xmlTextReader.Encoding;
- else
- throw new NotSupportedException ("Encoding is supported only for XmlTextReader.");
- }
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
}
public EntityHandling EntityHandling {
@@ -88,35 +85,38 @@ namespace System.Xml {
}
public override bool EOF {
+ [MonoTODO]
get { return validatingReader == null ? false : validatingReader.EOF; }
}
public override bool HasValue {
+ [MonoTODO]
get { return validatingReader == null ? false : validatingReader.HasValue; }
}
public override bool IsDefault {
+ [MonoTODO]
get { return validatingReader == null ? false : validatingReader.IsDefault; }
}
public override bool IsEmptyElement {
+ [MonoTODO]
get { return validatingReader == null ? false : validatingReader.IsEmptyElement; }
}
public override string this [int i] {
- get {
- if (validatingReader == null)
- throw new IndexOutOfRangeException ("Reader is not started.");
- return validatingReader [i];
- }
+ [MonoTODO]
+ get { return validatingReader [i]; }
}
public override string this [string name] {
- get { return validatingReader == null ? null : validatingReader [name]; }
+ [MonoTODO]
+ get { return validatingReader == null ? String.Empty : validatingReader [name]; }
}
public override string this [string localName, string namespaceName] {
- get { return validatingReader == null ? null : validatingReader [localName, namespaceName]; }
+ [MonoTODO]
+ get { return validatingReader == null ? String.Empty : validatingReader [localName, namespaceName]; }
}
int IXmlLineInfo.LineNumber {
@@ -134,73 +134,66 @@ namespace System.Xml {
}
public override string LocalName {
- get {
- if (validatingReader == null)
- return String.Empty;
- else if (Namespaces)
- return validatingReader.LocalName;
- else
- return validatingReader.Name;
- }
+ [MonoTODO]
+ get { return validatingReader == null ? String.Empty : validatingReader.LocalName; }
}
public override string Name {
+ [MonoTODO]
get { return validatingReader == null ? String.Empty : validatingReader.Name; }
}
+ [MonoTODO]
public bool Namespaces {
get {
- if (xmlTextReader != null)
- return xmlTextReader.Namespaces;
+ XmlTextReader xtr = sourceReader as XmlTextReader;
+ if (xtr != null)
+ return xtr.Namespaces;
else
- return true;
+ throw new NotImplementedException ();
}
set {
- if (ReadState != ReadState.Initial)
- throw new InvalidOperationException ("Namespaces have to be set before reading.");
-
- if (xmlTextReader != null)
- xmlTextReader.Namespaces = value;
+ XmlTextReader xtr = sourceReader as XmlTextReader;
+ if (xtr != null)
+ xtr.Namespaces = value;
else
- throw new NotSupportedException ("Property 'Namespaces' is supported only for XmlTextReader.");
+ throw new NotImplementedException ();
}
}
public override string NamespaceURI {
- get {
- if (validatingReader == null)
- return String.Empty;
- else if (Namespaces)
- return validatingReader.NamespaceURI;
- else
- return String.Empty;
- }
+ [MonoTODO]
+ get { return validatingReader == null ? String.Empty : validatingReader.NamespaceURI; }
}
public override XmlNameTable NameTable {
- get { return validatingReader == null ? sourceReader.NameTable : validatingReader.NameTable; }
+ [MonoTODO]
+ get { return validatingReader == null ? null : validatingReader.NameTable; }
}
public override XmlNodeType NodeType {
+ [MonoTODO]
get { return validatingReader == null ? XmlNodeType.None : validatingReader.NodeType; }
}
- public override string Prefix {
+ public override string Prefix {
[MonoTODO]
get { return validatingReader == null ? String.Empty : validatingReader.Prefix; }
}
public override char QuoteChar {
- get { return validatingReader == null ? sourceReader.QuoteChar : validatingReader.QuoteChar; }
+ [MonoTODO]
+ get { return validatingReader == null ? '"' : validatingReader.QuoteChar; }
}
+ [MonoTODO ("confirm which reader should be returned.")]
public XmlReader Reader {
get { return sourceReader; }
}
public override ReadState ReadState {
[MonoTODO]
- get {
+ get {
if (validatingReader == null)
return ReadState.Initial;
return validatingReader.ReadState;
@@ -236,10 +229,12 @@ namespace System.Xml {
}
public override string Value {
+ [MonoTODO]
get { return validatingReader == null ? String.Empty : validatingReader.Value; }
}
public override string XmlLang {
+ [MonoTODO]
get { return validatingReader == null ? String.Empty : validatingReader.XmlLang; }
}
@@ -247,12 +242,12 @@ namespace System.Xml {
[MonoTODO]
set {
resolver = value;
-// XmlSchemaValidatingReader xsvr = validatingReader as XmlSchemaValidatingReader;
-// if (xsvr != null)
-// xsvr.XmlResolver = value;
DTDValidatingReader dvr = validatingReader as DTDValidatingReader;
if (dvr != null)
dvr.XmlResolver = value;
+// XmlSchemaValidatingReader xsvr = validatingReader as XmlSchemaValidatingReader;
+// if (xsvr != null)
+// xsvr.XmlResolver = value;
}
}
@@ -265,27 +260,28 @@ namespace System.Xml {
#region Methods
+ [MonoTODO]
public override void Close ()
{
- if (validatingReader == null)
- sourceReader.Close ();
- else
- validatingReader.Close ();
+ validatingReader.Close ();
}
+ [MonoTODO]
public override string GetAttribute (int i)
{
- return this [i];
+ return validatingReader.GetAttribute (i);
}
+ [MonoTODO]
public override string GetAttribute (string name)
{
- return this [name];
+ return validatingReader.GetAttribute (name);
}
+ [MonoTODO]
public override string GetAttribute (string localName, string namespaceName)
{
- return this [localName, namespaceName];
+ return validatingReader.GetAttribute (localName, namespaceName);
}
internal XmlParserContext GetInternalParserContext ()
@@ -300,54 +296,45 @@ namespace System.Xml {
return info != null ? info.HasLineInfo () : false;
}
+ [MonoTODO]
public override string LookupNamespace (string prefix)
{
- if (validatingReader != null)
- return sourceReader.LookupNamespace (prefix);
- else
- return validatingReader.LookupNamespace (prefix);
+ return validatingReader.LookupNamespace (prefix);
}
+ [MonoTODO]
public override void MoveToAttribute (int i)
{
- if (validatingReader == null)
- throw new IndexOutOfRangeException ("Reader is not started.");
- else
- validatingReader.MoveToAttribute (i);
+ validatingReader.MoveToAttribute (i);
}
+ [MonoTODO]
public override bool MoveToAttribute (string name)
{
- if (validatingReader == null)
- return false;
return validatingReader.MoveToAttribute (name);
}
+ [MonoTODO]
public override bool MoveToAttribute (string localName, string namespaceName)
{
- if (validatingReader == null)
- return false;
return validatingReader.MoveToAttribute (localName, namespaceName);
}
+ [MonoTODO]
public override bool MoveToElement ()
{
- if (validatingReader == null)
- return false;
return validatingReader.MoveToElement ();
}
+ [MonoTODO]
public override bool MoveToFirstAttribute ()
{
- if (validatingReader == null)
- return false;
return validatingReader.MoveToFirstAttribute ();
}
+ [MonoTODO]
public override bool MoveToNextAttribute ()
{
- if (validatingReader == null)
- return false;
return validatingReader.MoveToNextAttribute ();
}
@@ -376,61 +363,36 @@ namespace System.Xml {
return validatingReader.Read ();
}
+ [MonoTODO]
public override bool ReadAttributeValue ()
{
- if (validatingReader == null)
- return false;
return validatingReader.ReadAttributeValue ();
}
#if NET_1_0
- // LAMESPEC: MS.NET 1.0 has critical bug here.
- // After calling these methods, validation does no more work!
[MonoTODO]
public override string ReadInnerXml ()
{
- if (validatingReader == null)
- return "";
return validatingReader.ReadInnerXml ();
}
[MonoTODO]
public override string ReadOuterXml ()
{
- if (validatingReader == null)
- return "";
return validatingReader.ReadOuterXml ();
}
#endif
[MonoTODO]
-#if NET_1_0
- public override string ReadString ()
- {
- return base.ReadStringInternal ();
- }
-#else
public override string ReadString ()
{
- return base.ReadString ();
+ return validatingReader.ReadString ();
}
-#endif
[MonoTODO]
public object ReadTypedValue ()
{
- if (dtdReader == null)
- return null;
- XmlSchemaDatatype dt = schemaInfo.SchemaType as XmlSchemaDatatype;
- if (dt == null)
- return null;
- switch (NodeType) {
- case XmlNodeType.Element:
- return dt.ParseValue (ReadString (), NameTable, dtdReader.ParserContext.NamespaceManager);
- case XmlNodeType.Attribute:
- return dt.ParseValue (Value, NameTable, dtdReader.ParserContext.NamespaceManager);
- }
- return null;
+ throw new NotImplementedException ();
}
public override void ResolveEntity ()
diff --git a/mcs/class/System/Microsoft.CSharp/CSharpCodeGenerator.cs b/mcs/class/System/Microsoft.CSharp/CSharpCodeGenerator.cs
index 2386c51e91f..ab1f346e3f5 100644
--- a/mcs/class/System/Microsoft.CSharp/CSharpCodeGenerator.cs
+++ b/mcs/class/System/Microsoft.CSharp/CSharpCodeGenerator.cs
@@ -202,11 +202,8 @@ namespace Mono.CSharp
protected override void GenerateMethodReferenceExpression( CodeMethodReferenceExpression expression )
{
- if (expression.TargetObject != null)
- {
- GenerateExpression( expression.TargetObject );
- Output.Write( '.' );
- };
+ GenerateExpression( expression.TargetObject );
+ Output.Write( '.' );
Output.Write( GetSafeName (expression.MethodName) );
}
@@ -274,7 +271,6 @@ namespace Mono.CSharp
{
Output.Write( "throw " );
GenerateExpression( statement.ToThrow );
- Output.WriteLine(";");
}
protected override void GenerateComment( CodeComment comment )
@@ -501,10 +497,7 @@ namespace Mono.CSharp
MemberAttributes attributes = method.Attributes;
- if (method.PrivateImplementationType == null)
- {
- OutputMemberAccessModifier( attributes );
- };
+ OutputMemberAccessModifier( attributes );
OutputMemberScopeModifier( attributes );
OutputType( method.ReturnType );
@@ -522,7 +515,7 @@ namespace Mono.CSharp
OutputParameters( method.Parameters );
output.Write( ')' );
- if ( (attributes & MemberAttributes.ScopeMask) == MemberAttributes.Abstract || declaration.IsInterface)
+ if ( (attributes & MemberAttributes.ScopeMask) == MemberAttributes.Abstract )
output.WriteLine( ';' );
else {
output.WriteLine( " {" );
@@ -545,50 +538,30 @@ namespace Mono.CSharp
OutputMemberAccessModifier( attributes );
OutputMemberScopeModifier( attributes );
- if (property.Name == "Item")
- {
- // indexer
-
- OutputTypeNamePair( property.Type, "this");
- output.Write("[");
- OutputParameters(property.Parameters);
- output.Write("]");
- }
- else
- {
- OutputTypeNamePair( property.Type, GetSafeName (property.Name));
- }
+ OutputTypeNamePair( property.Type, GetSafeName (property.Name));
output.WriteLine (" {");
++Indent;
- if (declaration.IsInterface)
+ if (property.HasGet)
{
- if (property.HasGet) output.WriteLine("get; ");
- if (property.HasSet) output.WriteLine("set; ");
- }
- else
- {
- if (property.HasGet)
- {
- output.WriteLine ("get {");
- ++Indent;
-
- GenerateStatements (property.GetStatements);
+ output.WriteLine ("get {");
+ ++Indent;
- --Indent;
- output.WriteLine ("}");
- }
+ GenerateStatements (property.GetStatements);
- if (property.HasSet)
- {
- output.WriteLine ("set {");
- ++Indent;
+ --Indent;
+ output.WriteLine ("}");
+ }
+
+ if (property.HasSet)
+ {
+ output.WriteLine ("set {");
+ ++Indent;
- GenerateStatements (property.SetStatements);
+ GenerateStatements (property.SetStatements);
- --Indent;
- output.WriteLine ("}");
- }
+ --Indent;
+ output.WriteLine ("}");
}
--Indent;
@@ -601,36 +574,7 @@ namespace Mono.CSharp
OutputMemberAccessModifier (constructor.Attributes);
Output.Write (GetSafeName (CurrentTypeName) + " (");
OutputParameters (constructor.Parameters);
- Output.Write (") ");
- if (constructor.ChainedConstructorArgs.Count > 0)
- {
- Output.Write(": this(");
- bool first = true;
- foreach (CodeExpression ex in constructor.ChainedConstructorArgs)
- {
- if (!first)
- Output.Write(", ");
- first = false;
- GenerateExpression(ex);
- }
-
- Output.Write(") ");
- };
- if (constructor.BaseConstructorArgs.Count > 0)
- {
- Output.Write(": base(");
- bool first = true;
- foreach (CodeExpression ex in constructor.BaseConstructorArgs)
- {
- if (!first)
- Output.Write(", ");
- first = false;
- GenerateExpression(ex);
- }
-
- Output.Write(") ");
- };
- Output.WriteLine ("{");
+ Output.WriteLine (") {");
Indent++;
GenerateStatements (constructor.Statements);
Indent--;
diff --git a/mcs/class/System/Microsoft.CSharp/ChangeLog b/mcs/class/System/Microsoft.CSharp/ChangeLog
index a4262284ac4..3910d47b9f9 100644
--- a/mcs/class/System/Microsoft.CSharp/ChangeLog
+++ b/mcs/class/System/Microsoft.CSharp/ChangeLog
@@ -1,20 +1,3 @@
-2003-08-15 Jaroslaw Kowalski <jarek@atm.com.pl>
-
- * CSharpCodeGenerator.cs:
-
- - fixed support for method references where target
- object is null
- - fixed CodeThrowExceptionStatement
- - disabled member access modifiers for private method
- implementations
- - disabled generation of empty method body for interface
- declarations
- - disabled generation of empty property accessor bodies
- in interface declarations
- - added support for indexers (properties named "Item")
- - added support for chained constructor arguments and
- base constructor arguments
-
2003-08-05 Lluis Sanchez Gual <lluis@ximian.com>
* CSharpCodeGenerator.cs: Added method GetSafeName() that checks if
diff --git a/mcs/class/System/System.CodeDom/ChangeLog b/mcs/class/System/System.CodeDom/ChangeLog
index dd4757d1e8c..772703f02d7 100644
--- a/mcs/class/System/System.CodeDom/ChangeLog
+++ b/mcs/class/System/System.CodeDom/ChangeLog
@@ -1,10 +1,3 @@
-2003-08-15 Jaroslaw Kowalski <jarek@atm.com.pl>
-
- * CodeTypeDeclaration.cs:
-
- - TypeAttributes of CodeTypeDeclaration now defaults to
- TypeAttributes.Public (same as MS implementation)
-
2003-04-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* CodeEventReferenceExpression.cs: fixed typo that prevented event
diff --git a/mcs/class/System/System.CodeDom/CodeTypeDeclaration.cs b/mcs/class/System/System.CodeDom/CodeTypeDeclaration.cs
index ab119e30d0e..be0fdc70cff 100755
--- a/mcs/class/System/System.CodeDom/CodeTypeDeclaration.cs
+++ b/mcs/class/System/System.CodeDom/CodeTypeDeclaration.cs
@@ -21,7 +21,7 @@ namespace System.CodeDom
{
private CodeTypeReferenceCollection baseTypes;
private CodeTypeMemberCollection members;
- private TypeAttributes typeAttributes = TypeAttributes.Public;
+ private TypeAttributes typeAttributes;
private bool isEnum;
private bool isStruct;
diff --git a/mcs/class/System/System.Net/ChangeLog b/mcs/class/System/System.Net/ChangeLog
index 35484015d46..b0ac96a71c1 100644
--- a/mcs/class/System/System.Net/ChangeLog
+++ b/mcs/class/System/System.Net/ChangeLog
@@ -1,7 +1,3 @@
-2003-08-14 Nick Drochak <ndrochak@gol.com>
-
- * WebRequest.cs: Check lower case string since that is what we will add.
-
2003-08-04 Jerome Laban <jlaban@wanadoo.fr>
* IPHostEntry.cs: Default contructor must not initialize members.
diff --git a/mcs/class/System/System.Net/WebRequest.cs b/mcs/class/System/System.Net/WebRequest.cs
index 394654af3ce..93efc666455 100644
--- a/mcs/class/System/System.Net/WebRequest.cs
+++ b/mcs/class/System/System.Net/WebRequest.cs
@@ -156,10 +156,9 @@ namespace System.Net
throw new ArgumentNullException("creator");
lock (prefixes.SyncRoot) {
- string lowerCasePrefix = prefix.ToLower ();
- if (prefixes.Contains (lowerCasePrefix))
+ if (prefixes.Contains (prefix))
return false;
- prefixes.Add (lowerCasePrefix, creator);
+ prefixes.Add (prefix.ToLower (), creator);
}
return true;
}
diff --git a/mcs/class/System/Test/System/ChangeLog b/mcs/class/System/Test/System/ChangeLog
index ba06081be12..7427bb64021 100644
--- a/mcs/class/System/Test/System/ChangeLog
+++ b/mcs/class/System/Test/System/ChangeLog
@@ -1,8 +1,3 @@
-2003-08-18 Nick Drochak <ndrochak@gol.com>
-
- * UriBuilderTest.cs: Separated tests into NUnit v2 style. Need to track
- down a test failure.
-
2003-05-07 Ben Maurer <bmaurer@users.sourceforge.net>
* UriTest.cs: added tests for UNIX file paths.
diff --git a/mcs/class/System/Test/System/UriBuilderTest.cs b/mcs/class/System/Test/System/UriBuilderTest.cs
index 1a0ed43b88a..d9451c5f58b 100644
--- a/mcs/class/System/Test/System/UriBuilderTest.cs
+++ b/mcs/class/System/Test/System/UriBuilderTest.cs
@@ -61,26 +61,24 @@ namespace MonoTests.System
}
[Test]
- [ExpectedException (typeof (ArgumentOutOfRangeException))]
- public void BadPort1 ()
+ public void Port ()
{
- b.Port = -12345;
- }
-
- [Test]
- [ExpectedException (typeof (ArgumentOutOfRangeException))]
- public void BadPort2 ()
- {
- b.Port = 123456789;
- }
-
- [Test]
- [ExpectedException (typeof (ArgumentOutOfRangeException))]
- public void BadPort3 ()
- {
- b.Port = -1;
+ try {
+ b.Port = -12345;
+ Assertion.Fail ("#1 should've failed, illegal port.");
+ } catch (ArgumentOutOfRangeException) {}
+ try {
+ b.Port = 123456789;
+ Assertion.Fail ("#2 should've failed, illegal port.");
+ } catch (ArgumentOutOfRangeException) {}
+ try {
+ b.Port = -1;
+ Assertion.AssertEquals ("#3", -1, b.Port);
+ } catch (ArgumentOutOfRangeException) {
+ Assertion.Fail ("#4: spec should allow -1 as value.");
+ }
}
-
+
[Test]
public void Query ()
{
diff --git a/mcs/class/corlib/ChangeLog b/mcs/class/corlib/ChangeLog
index 5e871b6424d..337b7ae46c7 100644
--- a/mcs/class/corlib/ChangeLog
+++ b/mcs/class/corlib/ChangeLog
@@ -1,7 +1,3 @@
-2003-08-19 Nick Drochak <ndrochak@gol.com>
-
- * Makefile: Turn on debug for the corlib tests on .NET.
-
2003-08-06 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
* corlib.dll.sources: added quite some files
diff --git a/mcs/class/corlib/Makefile b/mcs/class/corlib/Makefile
index 00d1110d520..835cccf732b 100644
--- a/mcs/class/corlib/Makefile
+++ b/mcs/class/corlib/Makefile
@@ -54,7 +54,7 @@ plattest_excludes = corlib_plattest.dll.excludes
plattest_response = $(depsdir)/$(plattestlib).response
plattest_makefrag = $(depsdir)/$(plattestlib).makefrag
plattest_stampfile = $(depsdir)/$(plattestlib).stamp
-plattest_flags = /debug+ /debug:full /nowarn:0618 /nowarn:0672 /r:$(PLATFORM_CORLIB) /r:$(topdir)/class/lib/NUnit.Framework.dll
+plattest_flags = /nowarn:0618 /nowarn:0672 /r:$(PLATFORM_CORLIB) /r:$(topdir)/class/lib/NUnit.Framework.dll
# Here, we make all.
diff --git a/mcs/class/corlib/System.Collections/ChangeLog b/mcs/class/corlib/System.Collections/ChangeLog
index 2feffb1d535..488261b15ff 100644
--- a/mcs/class/corlib/System.Collections/ChangeLog
+++ b/mcs/class/corlib/System.Collections/ChangeLog
@@ -1,12 +1,3 @@
-2003-08-17 Duncan Mak <duncan@ximian.com>
-
- * Hashtable.cs (PutImpl): Patch from Luca Barbieri <lb@lb.ods.org>.
- Currently Hashtable.PutImpl has an incorrect test which causes the
- key chain search to terminate as soon as a free slot is found,
- causing key duplication.
-
- This fixes bug #47692.
-
2003-08-11 Duncan Mak <duncan@ximian.com>
* DictionaryBase.cs: Applied patch from Carlos Barcenilla
diff --git a/mcs/class/corlib/System.Collections/Hashtable.cs b/mcs/class/corlib/System.Collections/Hashtable.cs
index c0578794fe7..84922aa954a 100644
--- a/mcs/class/corlib/System.Collections/Hashtable.cs
+++ b/mcs/class/corlib/System.Collections/Hashtable.cs
@@ -598,7 +598,7 @@ namespace System.Collections {
if (freeIndx == -1
&& entry.key == KeyMarker.Removed
- && (entry.hashMix & CHAIN_MARKER)== 0)
+ && (entry.hashMix & CHAIN_MARKER)!= 0)
freeIndx = indx;
if (entry.key == null ||
diff --git a/mcs/class/corlib/System.Runtime.Remoting.Activation/AppDomainLevelActivator.cs b/mcs/class/corlib/System.Runtime.Remoting.Activation/AppDomainLevelActivator.cs
index 8d4bd41aec7..e47464f12c7 100644
--- a/mcs/class/corlib/System.Runtime.Remoting.Activation/AppDomainLevelActivator.cs
+++ b/mcs/class/corlib/System.Runtime.Remoting.Activation/AppDomainLevelActivator.cs
@@ -11,7 +11,7 @@ using System.Runtime.Remoting.Messaging;
namespace System.Runtime.Remoting.Activation
{
- internal class AppDomainLevelActivator: IActivator
+ public class AppDomainLevelActivator: IActivator
{
string _activationUrl;
IActivator _next;
diff --git a/mcs/class/corlib/System.Runtime.Remoting.Activation/ChangeLog b/mcs/class/corlib/System.Runtime.Remoting.Activation/ChangeLog
index 1714aa34685..0d36c020dca 100644
--- a/mcs/class/corlib/System.Runtime.Remoting.Activation/ChangeLog
+++ b/mcs/class/corlib/System.Runtime.Remoting.Activation/ChangeLog
@@ -1,9 +1,3 @@
-2003-08-14 Lluis Sanchez Gual <lluis@ximian.com>
-
- * AppDomainLevelActivator.cs, ConstructionLevelActivator.cs,
- ContextLevelActivator.cs, RemoteActivationAttribute.cs,
- RemoteActivator.cs: Changed class from public to internal.
-
2003-03-21 Lluis Sanchez Gual <lluis@ideary.com>
* ActivationServices.cs: Added the method Activate that performs the forwards the
diff --git a/mcs/class/corlib/System.Runtime.Remoting.Activation/ConstructionLevelActivator.cs b/mcs/class/corlib/System.Runtime.Remoting.Activation/ConstructionLevelActivator.cs
index 789f54d1772..c8009e56a57 100644
--- a/mcs/class/corlib/System.Runtime.Remoting.Activation/ConstructionLevelActivator.cs
+++ b/mcs/class/corlib/System.Runtime.Remoting.Activation/ConstructionLevelActivator.cs
@@ -12,7 +12,7 @@ using System.Runtime.Remoting.Messaging;
namespace System.Runtime.Remoting.Activation
{
[Serializable]
- internal class ConstructionLevelActivator: IActivator
+ public class ConstructionLevelActivator: IActivator
{
IActivator _next;
diff --git a/mcs/class/corlib/System.Runtime.Remoting.Activation/ContextLevelActivator.cs b/mcs/class/corlib/System.Runtime.Remoting.Activation/ContextLevelActivator.cs
index b5b9fc8305e..52cf269c4a7 100644
--- a/mcs/class/corlib/System.Runtime.Remoting.Activation/ContextLevelActivator.cs
+++ b/mcs/class/corlib/System.Runtime.Remoting.Activation/ContextLevelActivator.cs
@@ -13,7 +13,7 @@ using System.Runtime.Remoting.Contexts;
namespace System.Runtime.Remoting.Activation
{
[Serializable]
- internal class ContextLevelActivator: IActivator
+ public class ContextLevelActivator: IActivator
{
IActivator _next;
diff --git a/mcs/class/corlib/System.Runtime.Remoting.Activation/RemoteActivationAttribute.cs b/mcs/class/corlib/System.Runtime.Remoting.Activation/RemoteActivationAttribute.cs
index 9ecf8710f59..c2aaca25028 100644
--- a/mcs/class/corlib/System.Runtime.Remoting.Activation/RemoteActivationAttribute.cs
+++ b/mcs/class/corlib/System.Runtime.Remoting.Activation/RemoteActivationAttribute.cs
@@ -13,7 +13,7 @@ using System.Collections;
namespace System.Runtime.Remoting.Activation
{
- internal class RemoteActivationAttribute: Attribute, IContextAttribute
+ public class RemoteActivationAttribute: Attribute, IContextAttribute
{
// This activation attribute is used when creating a client activated
// CBO in the server. This attribute will enforce the creation of
diff --git a/mcs/class/corlib/System.Runtime.Remoting.Activation/RemoteActivator.cs b/mcs/class/corlib/System.Runtime.Remoting.Activation/RemoteActivator.cs
index c8b62818e4d..c426dddf093 100644
--- a/mcs/class/corlib/System.Runtime.Remoting.Activation/RemoteActivator.cs
+++ b/mcs/class/corlib/System.Runtime.Remoting.Activation/RemoteActivator.cs
@@ -6,14 +6,14 @@
// (C) 2002, Lluis Sanchez Gual
//
-using System;
+using System;
using System.Runtime.Remoting.Lifetime;
-using System.Runtime.Remoting.Messaging;
-
-namespace System.Runtime.Remoting.Activation
-{
- internal class RemoteActivator: MarshalByRefObject, IActivator
- {
+using System.Runtime.Remoting.Messaging;
+
+namespace System.Runtime.Remoting.Activation
+{
+ public class RemoteActivator: MarshalByRefObject, IActivator
+ {
public IConstructionReturnMessage Activate (IConstructionCallMessage msg)
{
if (!RemotingConfiguration.IsActivationAllowed (msg.ActivationType))
@@ -28,28 +28,28 @@ namespace System.Runtime.Remoting.Activation
ObjRef objref = RemotingServices.Marshal (newObject);
return new ConstructionResponse (objref, null, msg);
}
-
- public override Object InitializeLifetimeService()
- {
- ILease lease = (ILease)base.InitializeLifetimeService();
- if (lease.CurrentState == LeaseState.Initial)
- {
- lease.InitialLeaseTime = TimeSpan.FromMinutes(30);
- lease.SponsorshipTimeout = TimeSpan.FromMinutes(1);
- lease.RenewOnCallTime = TimeSpan.FromMinutes(10);
- }
- return lease;
- }
-
- public ActivatorLevel Level
+
+ public override Object InitializeLifetimeService()
+ {
+ ILease lease = (ILease)base.InitializeLifetimeService();
+ if (lease.CurrentState == LeaseState.Initial)
+ {
+ lease.InitialLeaseTime = TimeSpan.FromMinutes(30);
+ lease.SponsorshipTimeout = TimeSpan.FromMinutes(1);
+ lease.RenewOnCallTime = TimeSpan.FromMinutes(10);
+ }
+ return lease;
+ }
+
+ public ActivatorLevel Level
{
get { throw new NotSupportedException (); }
}
- public IActivator NextActivator
+ public IActivator NextActivator
{
get { throw new NotSupportedException (); }
set { throw new NotSupportedException (); }
}
- }
-}
+ }
+}
diff --git a/mcs/class/corlib/System.Runtime.Remoting.Channels/ChangeLog b/mcs/class/corlib/System.Runtime.Remoting.Channels/ChangeLog
index 20f468ffeb8..d2b105ef318 100644
--- a/mcs/class/corlib/System.Runtime.Remoting.Channels/ChangeLog
+++ b/mcs/class/corlib/System.Runtime.Remoting.Channels/ChangeLog
@@ -1,8 +1,3 @@
-2003-08-14 Lluis Sanchez Gual <lluis@ximian.com>
-
- * ChannelServices.cs: Set call context info for the incoming
- remote call, and restore the context after the call.
-
2003-07-28 Duncan Mak <duncan@ximian.com>
* TransportHeaders.cs: Added Serializable attribute.
diff --git a/mcs/class/corlib/System.Runtime.Remoting.Channels/ChannelServices.cs b/mcs/class/corlib/System.Runtime.Remoting.Channels/ChannelServices.cs
index 1f7d093d4da..85241218590 100644
--- a/mcs/class/corlib/System.Runtime.Remoting.Channels/ChannelServices.cs
+++ b/mcs/class/corlib/System.Runtime.Remoting.Channels/ChannelServices.cs
@@ -190,20 +190,7 @@ namespace System.Runtime.Remoting.Channels
if (identity == null) return new ReturnMessage (new RemotingException ("No receiver for uri " + call.Uri), (IMethodCallMessage) msg);
RemotingServices.SetMessageTargetIdentity (msg, identity);
-
- if (call.LogicalCallContext != null)
- CallContext.SetCurrentCallContext (call.LogicalCallContext);
-
- try
- {
- IMessage response = _crossContextSink.SyncProcessMessage (msg);
- response.Properties ["__CallContext"] = CallContext.CreateLogicalCallContext ();
- return response;
- }
- finally
- {
- CallContext.ResetCurrentCallContext ();
- }
+ return _crossContextSink.SyncProcessMessage (msg);
}
public static void UnregisterChannel (IChannel chnl)
@@ -215,9 +202,12 @@ namespace System.Runtime.Remoting.Channels
registeredChannels.Remove ((object) chnl);
+/*
+ FIXME: uncomment when Thread.Abort works for windows.
IChannelReceiver chnlReceiver = chnl as IChannelReceiver;
if(chnlReceiver != null)
chnlReceiver.StopListening(null);
+ */
}
internal static object [] GetCurrentChannelInfo ()
diff --git a/mcs/class/corlib/System.Runtime.Remoting.Lifetime/ChangeLog b/mcs/class/corlib/System.Runtime.Remoting.Lifetime/ChangeLog
index 5eda5611fdf..b6f049e3a60 100644
--- a/mcs/class/corlib/System.Runtime.Remoting.Lifetime/ChangeLog
+++ b/mcs/class/corlib/System.Runtime.Remoting.Lifetime/ChangeLog
@@ -1,7 +1,3 @@
-2003-08-14 Lluis Sanchez Gual <lluis@ximian.com>
-
- * ClientSponsor.cs: Implemented.
-
2003-03-03 Lluis Sanchez Gual <lluis@ideary.com>
* LeaseManager.cs: Added method for removing an object from the lease manager.
diff --git a/mcs/class/corlib/System.Runtime.Remoting.Lifetime/ClientSponsor.cs b/mcs/class/corlib/System.Runtime.Remoting.Lifetime/ClientSponsor.cs
index 0105e51c3cc..c6400477f75 100644
--- a/mcs/class/corlib/System.Runtime.Remoting.Lifetime/ClientSponsor.cs
+++ b/mcs/class/corlib/System.Runtime.Remoting.Lifetime/ClientSponsor.cs
@@ -2,13 +2,11 @@
// System.Runtime.Remoting.Lifetime.ClientSponsor.cs
//
// Author: Duncan Mak (duncan@ximian.com)
-// Lluis Sanchez Gual (lluis@ximian.com)
//
// 2002 (C) Copyright. Ximian, Inc.
//
using System;
-using System.Collections;
using System.Runtime.Remoting.Lifetime;
namespace System.Runtime.Remoting.Lifetime {
@@ -16,7 +14,6 @@ namespace System.Runtime.Remoting.Lifetime {
public class ClientSponsor : MarshalByRefObject, ISponsor
{
TimeSpan renewal_time;
- ArrayList registered_objects = new ArrayList ();
public ClientSponsor ()
{
@@ -38,47 +35,39 @@ namespace System.Runtime.Remoting.Lifetime {
}
}
+ [MonoTODO]
public void Close ()
{
- foreach (MarshalByRefObject obj in registered_objects)
- {
- ILease lease = obj.GetLifetimeService () as ILease;
- lease.Unregister (this);
- }
- registered_objects.Clear ();
}
+ [MonoTODO]
~ClientSponsor ()
{
- Close ();
+ throw new NotImplementedException ();
}
+ [MonoTODO]
public override object InitializeLifetimeService ()
{
- return base.InitializeLifetimeService ();
+ throw new NotImplementedException ();
}
+ [MonoTODO]
public bool Register (MarshalByRefObject obj)
{
- if (registered_objects.Contains (obj)) return false;
- ILease lease = obj.GetLifetimeService () as ILease;
- if (lease == null) return false;
- lease.Register (this);
- registered_objects.Add (obj);
- return true;
+ throw new NotImplementedException ();
}
+ [MonoTODO]
public TimeSpan Renewal (ILease lease)
{
- return renewal_time;
+ throw new NotImplementedException ();
}
+ [MonoTODO]
public void Unregister (MarshalByRefObject obj)
{
- if (!registered_objects.Contains (obj)) return;
- ILease lease = obj.GetLifetimeService () as ILease;
- lease.Unregister (this);
- registered_objects.Remove (obj);
+ throw new NotImplementedException ();
}
}
}
diff --git a/mcs/class/corlib/System.Runtime.Remoting.Messaging/CADMessages.cs b/mcs/class/corlib/System.Runtime.Remoting.Messaging/CADMessages.cs
index 88a2441d13f..8373fd26ffd 100755
--- a/mcs/class/corlib/System.Runtime.Remoting.Messaging/CADMessages.cs
+++ b/mcs/class/corlib/System.Runtime.Remoting.Messaging/CADMessages.cs
@@ -78,11 +78,18 @@ namespace System.Runtime.Remoting.Messaging {
// We can ignore marshalling for string and primitive types
private static bool IsPossibleToIgnoreMarshal (object obj) {
+ // until this is more tested, we disable it....
+ return false;
+
+/* if (obj is string)
+ return true;
+
Type objType = obj.GetType();
if (objType.IsPrimitive || objType == typeof(void))
return true;
return false;
+*/
}
// Checks an argument if it's possible to pass without marshalling and
diff --git a/mcs/class/corlib/System.Runtime.Remoting.Messaging/CallContext.cs b/mcs/class/corlib/System.Runtime.Remoting.Messaging/CallContext.cs
index 56c136667a5..b3b1dee70ad 100644
--- a/mcs/class/corlib/System.Runtime.Remoting.Messaging/CallContext.cs
+++ b/mcs/class/corlib/System.Runtime.Remoting.Messaging/CallContext.cs
@@ -2,18 +2,16 @@
// System.Runtime.Remoting.Messaging.CallContext.cs
//
// Author: Jaime Anguiano Olarra (jaime@gnome.org)
-// Lluis Sanchez Gual (lluis@ximian.com)
//
// (c) 2002, Jaime Anguiano Olarra
//
+// FIXME: This is just a skeleton for practical purposes.
///<summary>
///Provides several properties that come with the execution code path.
///This class is sealed.
///</summary>
using System;
-using System.Threading;
-using System.Collections;
namespace System.Runtime.Remoting.Messaging
{
@@ -22,76 +20,34 @@ namespace System.Runtime.Remoting.Messaging
public sealed class CallContext
{
// public methods
+ [MonoTODO]
public static void FreeNamedDataSlot (string name)
{
- Datastore.Remove (name);
+ throw new NotImplementedException ();
}
+ [MonoTODO]
public static object GetData (string name)
{
- return Datastore [name];
+ throw new NotImplementedException ();
}
+ [MonoTODO]
public static Header[] GetHeaders ()
{
- return (Header[]) Datastore ["__Headers"];
+ throw new NotImplementedException ();
}
+ [MonoTODO]
public static void SetData (string name, object data)
{
- Datastore [name] = data;
+ throw new NotImplementedException ();
}
+ [MonoTODO]
public static void SetHeaders (Header[] headers)
{
- Datastore ["__Headers"] = headers;
+ throw new NotImplementedException ();
}
-
- internal static LogicalCallContext CreateLogicalCallContext ()
- {
- LocalDataStoreSlot ds = Thread.GetNamedDataSlot ("__CallContext");
- Hashtable res = (Hashtable) Thread.GetData (ds);
-
- LogicalCallContext ctx = new LogicalCallContext();
- if (res == null) return ctx;
-
- foreach (DictionaryEntry entry in res)
- if (entry.Value is ILogicalThreadAffinative)
- ctx.SetData ((string)entry.Key, entry.Value);
-
- return ctx;
- }
-
- internal static void SetCurrentCallContext (LogicalCallContext ctx)
- {
- Hashtable data = ctx.Datastore;
- if (data == null) return;
-
- foreach (DictionaryEntry entry in data)
- SetData ((string)entry.Key, entry.Value);
- }
-
- internal static void ResetCurrentCallContext ()
- {
- LocalDataStoreSlot ds = Thread.GetNamedDataSlot ("__CallContext");
- Thread.SetData (ds, null);
- }
-
- private static Hashtable Datastore
- {
- get {
- LocalDataStoreSlot ds = Thread.GetNamedDataSlot ("__CallContext");
- Hashtable res = (Hashtable) Thread.GetData (ds);
- if (res == null) {
- res = new Hashtable ();
- Thread.SetData (ds, res);
- }
- return res;
- }
- }
- }
-
- public interface ILogicalThreadAffinative
- {
}
}
diff --git a/mcs/class/corlib/System.Runtime.Remoting.Messaging/ChangeLog b/mcs/class/corlib/System.Runtime.Remoting.Messaging/ChangeLog
index eba728cf89c..633a1d2e1aa 100644
--- a/mcs/class/corlib/System.Runtime.Remoting.Messaging/ChangeLog
+++ b/mcs/class/corlib/System.Runtime.Remoting.Messaging/ChangeLog
@@ -1,20 +1,3 @@
-2003-08-17 Lluis Sanchez Gual <lluis@ximian.com>
-
- * MethodCall.cs: Throw the right exception if the target object is not
- found when resolving the target method.
-
-2003-08-17 Lluis Sanchez Gual <lluis@ximian.com>
-
- * CallContext.cs: Fixed bug #47686.
-
-2003-08-14 Lluis Sanchez Gual <lluis@ximian.com>
-
- * CADMessages.cs: Enabled smuggeling of primitive type parameters (as suggested
- by Patrik).
- * CallContext.cs: Impplemented.
- * LogicalCallContext.cs: Implemented.
- * MonoMethodMessage.cs: Added setter for LogicalCallContext property.
-
2003-07-25 Lluis Sanchez Gual <lluis@ximian.com>
* ArgInfo.cs: Use Type.IsByRef to check if a parameter is a ref or
diff --git a/mcs/class/corlib/System.Runtime.Remoting.Messaging/LogicalCallContext.cs b/mcs/class/corlib/System.Runtime.Remoting.Messaging/LogicalCallContext.cs
index 686764f781c..a9e44a0ca4b 100644
--- a/mcs/class/corlib/System.Runtime.Remoting.Messaging/LogicalCallContext.cs
+++ b/mcs/class/corlib/System.Runtime.Remoting.Messaging/LogicalCallContext.cs
@@ -1,112 +1,43 @@
-//
-// System.Runtime.Remoting.Messaging.LogicalCallContext.cs
-//
-// Author:
-// Dan Lewis (dihlewis@yahoo.co.uk)
-// Lluis Sanchez Gual (lluis@ximian.com)
-//
-// 2002 (C) Copyright. Ximian, Inc.
-//
-
-using System.Collections;
-using System.Runtime.Serialization;
-
-namespace System.Runtime.Remoting.Messaging {
-
- [MonoTODO]
+//
+// System.Runtime.Remoting.Messaging.LogicalCallContext.cs
+//
+// Author:
+// Dan Lewis (dihlewis@yahoo.co.uk)
+//
+// (C) 2002
+//
+// Stubbed.
+//
+
+using System.Runtime.Serialization;
+
+namespace System.Runtime.Remoting.Messaging {
+
+ [MonoTODO]
[Serializable]
- public sealed class LogicalCallContext : ISerializable, ICloneable
- {
- Hashtable _data;
- CallContextRemotingData _remotingData = new CallContextRemotingData();
-
- internal LogicalCallContext ()
- {
- }
-
- internal LogicalCallContext (SerializationInfo info, StreamingContext context)
- {
- foreach (SerializationEntry entry in info)
- {
- if (entry.Name == "__RemotingData")
- _remotingData = (CallContextRemotingData) entry.Value;
- else
- SetData (entry.Name, entry.Value);
- }
- }
-
- public bool HasInfo
- {
- get
- {
- return (_data != null && _data.Count > 0);
- }
- }
-
- public void FreeNamedDataSlot (string name)
- {
- if (_data != null)
- _data.Remove (name);
- }
-
- public object GetData (string name)
- {
- if (_data != null) return _data [name];
- else return null;
- }
-
- public void GetObjectData (SerializationInfo info, StreamingContext context)
- {
- info.AddValue ("__RemotingData", _remotingData);
- if (_data != null)
- {
- foreach (DictionaryEntry de in _data)
- info.AddValue ((string)de.Key, de.Value);
- }
- }
-
- public void SetData (string name, object data)
- {
- if (_data == null) _data = new Hashtable ();
- _data [name] = data;
- }
-
- public object Clone ()
- {
- LogicalCallContext nc = new LogicalCallContext ();
- nc._remotingData = (CallContextRemotingData) _remotingData.Clone ();
- if (_data != null)
- {
- nc._data = new Hashtable ();
- foreach (DictionaryEntry de in _data)
- nc._data [de.Key] = de.Value;
- }
- return nc;
- }
-
- internal Hashtable Datastore
- {
- get { return _data; }
- }
- }
-
- [Serializable]
- internal class CallContextRemotingData : ICloneable
- {
- string _logicalCallID;
-
- public string LogicalCallID
- {
- get { return _logicalCallID; }
- set { _logicalCallID = value; }
- }
-
- public object Clone ()
- {
- CallContextRemotingData data = new CallContextRemotingData ();
- data._logicalCallID = _logicalCallID;
- return data;
- }
-}
-}
-
+ public sealed class LogicalCallContext : ISerializable, ICloneable {
+
+ internal LogicalCallContext () {}
+
+ public bool HasInfo {
+ get { return false; }
+ }
+
+ public void FreeNamedDataSlot (string name) {
+ }
+
+ public object GetData (string name) {
+ return null;
+ }
+
+ public void GetObjectData (SerializationInfo info, StreamingContext context) {
+ }
+
+ public void SetData (string name, object data) {
+ }
+
+ public object Clone () {
+ return null;
+ }
+ }
+}
diff --git a/mcs/class/corlib/System.Runtime.Remoting.Messaging/MethodCall.cs b/mcs/class/corlib/System.Runtime.Remoting.Messaging/MethodCall.cs
index 5ead98ecc2b..5ace8cd6573 100644
--- a/mcs/class/corlib/System.Runtime.Remoting.Messaging/MethodCall.cs
+++ b/mcs/class/corlib/System.Runtime.Remoting.Messaging/MethodCall.cs
@@ -264,7 +264,6 @@ namespace System.Runtime.Remoting.Messaging {
if (_uri != null)
{
Type type = RemotingServices.GetServerTypeForUri (_uri);
- if (type == null) throw new RemotingException ("No receiver for uri " + _uri);
if (CanCastTo (_typeName, type))
{
diff --git a/mcs/class/corlib/System.Runtime.Remoting.Messaging/MonoMethodMessage.cs b/mcs/class/corlib/System.Runtime.Remoting.Messaging/MonoMethodMessage.cs
index 1e7fa10a216..48856e53bd6 100644
--- a/mcs/class/corlib/System.Runtime.Remoting.Messaging/MonoMethodMessage.cs
+++ b/mcs/class/corlib/System.Runtime.Remoting.Messaging/MonoMethodMessage.cs
@@ -78,7 +78,6 @@ namespace System.Runtime.Remoting.Messaging {
get {
if (null == args)
return 0;
-// Lluis Sanchez Gual (lluis@ximian.com)
return args.Length;
}
@@ -100,10 +99,6 @@ namespace System.Runtime.Remoting.Messaging {
get {
return ctx;
}
-
- set {
- ctx = value;
- }
}
public MethodBase MethodBase {
diff --git a/mcs/class/corlib/System.Runtime.Remoting.Proxies/ChangeLog b/mcs/class/corlib/System.Runtime.Remoting.Proxies/ChangeLog
index 2fe3b95eead..31404bbf867 100644
--- a/mcs/class/corlib/System.Runtime.Remoting.Proxies/ChangeLog
+++ b/mcs/class/corlib/System.Runtime.Remoting.Proxies/ChangeLog
@@ -1,7 +1,3 @@
-2003-08-14 Lluis Sanchez Gual <lluis@ximian.com>
-
- * RemotingProxy.cs: On invoke, set the LogicalCallContext of the message.
-
2003-07-28 Duncan Mak <duncan@ximian.com>
* RealProxy.cs (GetProxiedType): Removed 'virtual' keyword.
diff --git a/mcs/class/corlib/System.Runtime.Remoting.Proxies/RemotingProxy.cs b/mcs/class/corlib/System.Runtime.Remoting.Proxies/RemotingProxy.cs
index d06f43320a8..f8beeba6268 100644
--- a/mcs/class/corlib/System.Runtime.Remoting.Proxies/RemotingProxy.cs
+++ b/mcs/class/corlib/System.Runtime.Remoting.Proxies/RemotingProxy.cs
@@ -48,8 +48,6 @@ namespace System.Runtime.Remoting.Proxies
{
MonoMethodMessage mMsg = (MonoMethodMessage) request;
- mMsg.LogicalCallContext = CallContext.CreateLogicalCallContext ();
-
if (mMsg.MethodBase.IsConstructor)
return ActivateRemoteObject (mMsg);
diff --git a/mcs/class/corlib/System.Runtime.Remoting/ChangeLog b/mcs/class/corlib/System.Runtime.Remoting/ChangeLog
index ce20367f3d0..7d396aa832d 100755
--- a/mcs/class/corlib/System.Runtime.Remoting/ChangeLog
+++ b/mcs/class/corlib/System.Runtime.Remoting/ChangeLog
@@ -1,9 +1,3 @@
-2003-08-14 Lluis Sanchez Gual <lluis@ximian.com>
-
- * ObjRef.cs: Implemented IsFromThisProcess().
- * RemotingServices.cs: Implemented methods GetLifetimeService and
- GetEnvoyChainForProxy. Stubbed LogRemotingStage.
-
2003-07-29 Lluis Sanchez Gual <lluis@ximian.com>
* RemotingServices.cs: GetObjectUri(): For client proxies, return
diff --git a/mcs/class/corlib/System.Runtime.Remoting/ObjRef.cs b/mcs/class/corlib/System.Runtime.Remoting/ObjRef.cs
index 19f59839eb0..ec12d5710b4 100644
--- a/mcs/class/corlib/System.Runtime.Remoting/ObjRef.cs
+++ b/mcs/class/corlib/System.Runtime.Remoting/ObjRef.cs
@@ -47,7 +47,7 @@ namespace System.Runtime.Remoting {
flags = o.flags;
if (unmarshalAsProxy) flags |= MarshalledObjectRef;
}
-
+
public ObjRef (MarshalByRefObject mbr, Type type)
{
if (mbr == null)
@@ -130,7 +130,7 @@ namespace System.Runtime.Remoting {
return false;
}
- internal bool IsReferenceToWellKnow
+ public bool IsReferenceToWellKnow
{
get { return (flags & WellKnowObjectRef) > 0; }
}
@@ -199,18 +199,11 @@ namespace System.Runtime.Remoting {
return identity.IsFromThisAppDomain;
}
+ [MonoTODO]
public bool IsFromThisProcess ()
{
- foreach (object data in channel_info.ChannelData)
- {
- if (data is CrossAppDomainData)
- {
- string refProcId = ((CrossAppDomainData)data).ProcessID;
- return (refProcId == RemotingConfiguration.ProcessId);
- }
- }
-
- return true;
+ // as yet we do not consider this optimization
+ return false;
}
internal void UpdateChannelInfo()
diff --git a/mcs/class/corlib/System.Runtime.Remoting/RemotingServices.cs b/mcs/class/corlib/System.Runtime.Remoting/RemotingServices.cs
index a180bdb4994..b3dbef05a62 100644
--- a/mcs/class/corlib/System.Runtime.Remoting/RemotingServices.cs
+++ b/mcs/class/corlib/System.Runtime.Remoting/RemotingServices.cs
@@ -258,25 +258,6 @@ namespace System.Runtime.Remoting
else return ident.CreateObjRef(null);
}
- public static object GetLifetimeService (MarshalByRefObject obj)
- {
- if (obj == null) return null;
- return obj.GetLifetimeService ();
- }
-
- public static IMessageSink GetEnvoyChainForProxy (MarshalByRefObject obj)
- {
- if (IsTransparentProxy(obj))
- return ((ClientIdentity)GetRealProxy (obj).ObjectIdentity).EnvoySink;
- else
- throw new ArgumentException ("obj must be a proxy","obj");
- }
-
- public static void LogRemotingStage (int stage)
- {
- throw new NotImplementedException ();
- }
-
[MonoTODO]
public static string GetSessionIdForMethodMessage(IMethodMessage msg)
{
diff --git a/mcs/class/corlib/System.Threading/ChangeLog b/mcs/class/corlib/System.Threading/ChangeLog
index 5be6e966b9d..8a94a0f256a 100644
--- a/mcs/class/corlib/System.Threading/ChangeLog
+++ b/mcs/class/corlib/System.Threading/ChangeLog
@@ -1,8 +1,3 @@
-2003-08-14 Lluis Sanchez Gual <lluis@ximian.com>
-
- * Thread.cs: SetData() method: use Hashtable.Contains to check
- if a dataslot has been allocated (value could be null).
-
2003-07-23 Duncan Mak <duncan@ximian.com>
* WaitHandle.cs (CheckDisposed): This method is not in the public
diff --git a/mcs/class/corlib/System.Threading/Thread.cs b/mcs/class/corlib/System.Threading/Thread.cs
index 257b199bf57..b04cc1ada65 100755
--- a/mcs/class/corlib/System.Threading/Thread.cs
+++ b/mcs/class/corlib/System.Threading/Thread.cs
@@ -174,7 +174,7 @@ namespace System.Threading
object data) {
Hashtable slothash=GetTLSSlotHash();
- if(slothash.Contains(slot)) {
+ if(slothash[slot]!=null) {
slothash.Remove(slot);
}
diff --git a/mcs/class/corlib/Test/System.Diagnostics/ChangeLog b/mcs/class/corlib/Test/System.Diagnostics/ChangeLog
index 75a3b306872..94239863b35 100644
--- a/mcs/class/corlib/Test/System.Diagnostics/ChangeLog
+++ b/mcs/class/corlib/Test/System.Diagnostics/ChangeLog
@@ -1,8 +1,3 @@
-2003-08-19 Nick Drochak <ndrochak@gol.com>
-
- * StackFrameTest.cs: Isolate test failure by making tests finer
- grained.
-
2003-07-01 Zoltan Varga <vargaz@freemail.hu>
* StackFrameTest.cs (TestGetMethod): Remove test for method name, since
diff --git a/mcs/class/corlib/Test/System.Diagnostics/StackFrameTest.cs b/mcs/class/corlib/Test/System.Diagnostics/StackFrameTest.cs
index ab612c51f36..c8a77d778f9 100644
--- a/mcs/class/corlib/Test/System.Diagnostics/StackFrameTest.cs
+++ b/mcs/class/corlib/Test/System.Diagnostics/StackFrameTest.cs
@@ -132,13 +132,10 @@ namespace MonoTests.System.Diagnostics {
/// <summary>
/// Tests whether getting file name works.
/// </summary>
- public void TestGetFileName1() {
+ public void TestGetFileName() {
AssertNull("File name (1)",
frame1.GetFileName());
- }
-
- public void TestGetFileName2() {
Assert("File name (2) " + frame2.GetFileName()
+ " ends with StackFrameTest.cs",
frame2.GetFileName().EndsWith("StackFrameTest.cs"));
diff --git a/mcs/ilasm/ChangeLog b/mcs/ilasm/ChangeLog
index a083e9ea24b..1d92701f2e6 100644
--- a/mcs/ilasm/ChangeLog
+++ b/mcs/ilasm/ChangeLog
@@ -1,10 +1,3 @@
-2003-08-14 Jackson Harper <jackson@latitudegeo.com>
-
- * Driver.cs: Report entry for each il file processed
- * Report.cs: New file - All error/warning/progress reporting will
- go through here.
- * ilasm.exe.sources: Add report to build
-
2003-08-12 Jackson Harper <jackson@latitudegeo.com>
* AssemblyInfo.cs: Bump up the vizzity-version number.
diff --git a/mcs/ilasm/Driver.cs b/mcs/ilasm/Driver.cs
index 88798fdc7d6..fdf6c535b81 100644
--- a/mcs/ilasm/Driver.cs
+++ b/mcs/ilasm/Driver.cs
@@ -39,10 +39,8 @@ namespace Mono.ILASM {
private class DriverMain {
private ArrayList il_file_list;
- private Report report;
private string output_file;
private Target target = Target.Exe;
- private string target_string = "exe";
private bool show_tokens = false;
private bool show_method_def = false;
private bool show_method_ref = false;
@@ -55,7 +53,6 @@ namespace Mono.ILASM {
{
il_file_list = new ArrayList ();
ParseArgs (args);
- report = new Report ();
}
public void Run ()
@@ -88,8 +85,6 @@ namespace Mono.ILASM {
file_path);
Environment.Exit (2);
}
- report.AssembleFile (file_path, null,
- target_string, output_file);
StreamReader reader = File.OpenText (file_path);
ILTokenizer scanner = new ILTokenizer (reader);
@@ -109,16 +104,16 @@ namespace Mono.ILASM {
}
ILParser parser = new ILParser (codegen);
- try {
- if (show_parser)
- parser.yyparse (new ScannerAdapter (scanner),
- new yydebug.yyDebugSimple ());
- else
- parser.yyparse (new ScannerAdapter (scanner), null);
- } catch {
- Console.WriteLine ("Error at: " + scanner.Reader.Location);
- throw;
- }
+ try {
+ if (show_parser)
+ parser.yyparse (new ScannerAdapter (scanner),
+ new yydebug.yyDebugSimple ());
+ else
+ parser.yyparse (new ScannerAdapter (scanner), null);
+ } catch {
+ Console.WriteLine ("Error at: " + scanner.Reader.Location);
+ throw;
+ }
}
public void ShowToken (object sender, NewTokenEventArgs args)
@@ -161,11 +156,9 @@ namespace Mono.ILASM {
break;
case "exe":
target = Target.Exe;
- target_string = "exe";
break;
case "dll":
target = Target.Dll;
- target_string = "dll";
break;
case "scan_only":
scan_only = true;
@@ -227,7 +220,7 @@ namespace Mono.ILASM {
ext_index = file_name.Length;
return String.Format ("{0}.{1}", file_name.Substring (0, ext_index),
- target_string);
+ target.ToString ().ToLower ());
}
private void Usage ()
diff --git a/mcs/ilasm/Report.cs b/mcs/ilasm/Report.cs
deleted file mode 100644
index 1f184afd4f5..00000000000
--- a/mcs/ilasm/Report.cs
+++ /dev/null
@@ -1,64 +0,0 @@
-//
-// Mono.ILASM.Report
-//
-// Author(s):
-// Jackson Harper (Jackson@LatitudeGeo.com)
-//
-// (C) 2003 Jackson Harper, All rights reserved
-//
-
-
-using System;
-using System.IO;
-
-namespace Mono.ILASM {
-
- public class Report {
-
- private int error_count;
- private int mark_count;
-
- public Report ()
- {
- error_count = 0;
- }
-
- public int ErrorCount {
- get { return error_count; }
- }
-
- public void Mark ()
- {
- mark_count = error_count;
- }
-
- public bool ErrorSinceMark ()
- {
- return (error_count > mark_count);
- }
-
- public void AssembleFile (string file, string listing,
- string target, string output)
- {
- Console.WriteLine ("Assembling '{0}' , {1}, to {2} --> '{3}'", file,
- GetListing (listing), target, output);
- }
-
- public void Error (int num, string message, Location location)
- {
- error_count++;
- Console.WriteLine ("{0} Error {1}: {2}",
- num, location, message);
- }
-
- private string GetListing (string listing)
- {
- if (listing == null)
- return "no listing file";
- return listing;
- }
-
- }
-
-}
-
diff --git a/mcs/ilasm/codegen/ChangeLog b/mcs/ilasm/codegen/ChangeLog
index d8d0ea37f0b..88cf9921ced 100644
--- a/mcs/ilasm/codegen/ChangeLog
+++ b/mcs/ilasm/codegen/ChangeLog
@@ -1,13 +1,3 @@
-2003-08-19 Jackson Harper <jackson@latitudegeo.com>
-
- * IClassRef.cs: Removed methods that have been moved into ITypeRef
- * MethodDef.cs: Make some properties public, Add method to get a
- list of parameter types. This is used to build signatures. Alow
- sentinels in signatures and in param lists. Fix some tabbing.
- * ParamDef.cs: Expose the parameters type so they can be used when
- building signatures.
- * TypeDef.cs: Add and emit overrides.
-
2003-08-10 Jackson Harper <jackson@latitudegeo.com>
* CodeGen.cs: Fix tabbing
diff --git a/mcs/ilasm/codegen/IClassRef.cs b/mcs/ilasm/codegen/IClassRef.cs
index 9321566bc91..9b639fc9917 100644
--- a/mcs/ilasm/codegen/IClassRef.cs
+++ b/mcs/ilasm/codegen/IClassRef.cs
@@ -15,8 +15,12 @@ namespace Mono.ILASM {
PEAPI.Class PeapiClass { get; }
- void MakeValueClass ();
+ new IMethodRef GetMethodRef (ITypeRef ret_type, PEAPI.CallConv call_conv,
+ string name, ITypeRef[] param);
+ new IFieldRef GetFieldRef (ITypeRef ret_type, string name);
+
+ void MakeValueClass ();
}
}
diff --git a/mcs/ilasm/codegen/MethodDef.cs b/mcs/ilasm/codegen/MethodDef.cs
index b7bc2c867f9..3a1162b00c3 100644
--- a/mcs/ilasm/codegen/MethodDef.cs
+++ b/mcs/ilasm/codegen/MethodDef.cs
@@ -28,8 +28,8 @@ namespace Mono.ILASM {
private ArrayList inst_list;
private ArrayList customattr_list;
private Hashtable label_table;
- private Hashtable labelref_table;
- private ArrayList label_list;
+ private Hashtable labelref_table;
+ private ArrayList label_list;
private PEAPI.MethodDef methoddef;
private bool entry_point;
private bool is_resolved;
@@ -38,7 +38,7 @@ namespace Mono.ILASM {
private Hashtable named_local_table;
private bool init_locals;
private int max_stack;
-
+ private Random label_random;
public MethodDef (PEAPI.MethAttr meth_attr, PEAPI.CallConv call_conv,
PEAPI.ImplAttr impl_attr, string name,
@@ -54,12 +54,12 @@ namespace Mono.ILASM {
inst_list = new ArrayList ();
customattr_list = new ArrayList ();
label_table = new Hashtable ();
- labelref_table = new Hashtable ();
- label_list = new ArrayList ();
+ labelref_table = new Hashtable ();
+ label_list = new ArrayList ();
local_list = new ArrayList ();
named_local_table = new Hashtable ();
named_param_table = new Hashtable ();
-
+ label_random = new Random ();
entry_point = false;
init_locals = false;
max_stack = -1;
@@ -78,14 +78,6 @@ namespace Mono.ILASM {
get { return signature; }
}
- public ITypeRef RetType {
- get { return ret_type; }
- }
-
- public PEAPI.CallConv CallConv {
- get { return call_conv; }
- }
-
public PEAPI.MethodDef PeapiMethodDef {
get { return methoddef; }
}
@@ -94,18 +86,6 @@ namespace Mono.ILASM {
get { return (call_conv & PEAPI.CallConv.Vararg) != 0; }
}
- public ITypeRef[] ParamTypeList () {
-
- if (param_list == null)
- return new ITypeRef[0];
- int count = 0;
- ITypeRef[] type_list = new ITypeRef[param_list.Count];
- foreach (ParamDef param in param_list) {
- type_list[count++] = param.Type;
- }
- return type_list;
- }
-
public void AddLocals (ArrayList local_list)
{
int slot_pos = this.local_list.Count;
@@ -171,10 +151,14 @@ namespace Mono.ILASM {
if (param_list != null) {
int param_count = param_list.Count;
+ if (IsVararg && param_list[param_count-1] == ParamDef.Ellipsis)
+ param_count--;
param_array = new PEAPI.Param[param_count];
int count = 0;
foreach (ParamDef paramdef in param_list) {
+ if (paramdef == ParamDef.Ellipsis)
+ break;
paramdef.Define (code_gen);
param_array[count++] = paramdef.PeapiParam;
}
@@ -203,10 +187,14 @@ namespace Mono.ILASM {
if (param_list != null) {
int param_count = param_list.Count;
+ if (IsVararg && param_list[param_count-1] == ParamDef.Ellipsis)
+ param_count--;
param_array = new PEAPI.Param[param_count];
int count = 0;
-
+
foreach (ParamDef paramdef in param_list) {
+ if (paramdef == ParamDef.Ellipsis)
+ break;
paramdef.Define (code_gen);
param_array[count++] = paramdef.PeapiParam;
}
@@ -303,34 +291,34 @@ namespace Mono.ILASM {
/// probably only create the ones that need to be
LabelInfo[] label_info = new LabelInfo[label_table.Count + label_list.Count];
label_table.Values.CopyTo (label_info, 0);
- label_list.CopyTo (label_info, label_table.Count);
+ label_list.CopyTo (label_info, label_table.Count);
int previous_pos = -1;
LabelInfo previous_label = null;
Array.Sort (label_info);
foreach (LabelInfo label in label_info) {
- if (label.UseOffset) {
- label.Define (new PEAPI.CILLabel (label.Offset));
- continue;
- }
+ if (label.UseOffset) {
+ label.Define (new PEAPI.CILLabel (label.Offset));
+ continue;
+ }
if (label.Pos == previous_pos)
label.Label = previous_label.Label;
else
label.Define (cil.NewLabel ());
-
+
previous_label = label;
previous_pos = label.Pos;
}
- // Set all the label refs
- foreach (LabelInfo label in labelref_table.Values) {
- LabelInfo def = (LabelInfo) label_table[label.Name];
- if (def == null) {
- Console.WriteLine ("Undefined Label: " + label);
- return;
- }
- label.Label = def.Label;
- }
+ // Set all the label refs
+ foreach (LabelInfo label in labelref_table.Values) {
+ LabelInfo def = (LabelInfo) label_table[label.Name];
+ if (def == null) {
+ Console.WriteLine ("Undefined Label: " + label);
+ return;
+ }
+ label.Label = def.Label;
+ }
int label_pos = 0;
int next_label_pos = (label_info.Length > 0 ? label_info[0].Pos : -1);
@@ -341,10 +329,10 @@ namespace Mono.ILASM {
cil.CodeLabel (label_info[label_pos].Label);
if (label_pos < label_info.Length) {
while (next_label_pos == i && ++label_pos < label_info.Length) {
- if (label_info[label_pos].UseOffset)
- cil.CodeLabel (label_info[label_pos].Label);
+ if (label_info[label_pos].UseOffset)
+ cil.CodeLabel (label_info[label_pos].Label);
next_label_pos = label_info[label_pos].Pos;
- }
+ }
}
if (label_pos >= label_info.Length)
next_label_pos = -1;
@@ -357,41 +345,41 @@ namespace Mono.ILASM {
public LabelInfo AddLabel (string name)
{
LabelInfo label_info = (LabelInfo) label_table[name];
- if (label_info != null)
- return label_info;
- label_info = new LabelInfo (name, inst_list.Count);
+ if (label_info != null)
+ return label_info;
+ label_info = new LabelInfo (name, inst_list.Count);
label_table.Add (name, label_info);
- return label_info;
- }
-
- public LabelInfo AddLabelRef (string name)
- {
- LabelInfo label_info = (LabelInfo) label_table[name];
- if (label_info != null)
- return label_info;
- label_info = (LabelInfo) labelref_table[name];
- if (label_info != null)
- return label_info;
- label_info = new LabelInfo (name, -1);
- labelref_table.Add (name, label_info);
- return label_info;
- }
-
- public LabelInfo AddLabel (int offset)
- {
- // We go pos + 1 so this line is not counted
- LabelInfo label_info = new LabelInfo (null, inst_list.Count+1, (uint) offset);
- label_list.Add (label_info);
- return label_info;
- }
-
- public LabelInfo AddLabel ()
- {
- int pos = inst_list.Count;
- LabelInfo label_info = new LabelInfo (null, inst_list.Count);
- label_list.Add (label_info);
- return label_info;
- }
+ return label_info;
+ }
+
+ public LabelInfo AddLabelRef (string name)
+ {
+ LabelInfo label_info = (LabelInfo) label_table[name];
+ if (label_info != null)
+ return label_info;
+ label_info = (LabelInfo) labelref_table[name];
+ if (label_info != null)
+ return label_info;
+ label_info = new LabelInfo (name, -1);
+ labelref_table.Add (name, label_info);
+ return label_info;
+ }
+
+ public LabelInfo AddLabel (int offset)
+ {
+ // We go pos + 1 so this line is not counted
+ LabelInfo label_info = new LabelInfo (null, inst_list.Count+1, (uint) offset);
+ label_list.Add (label_info);
+ return label_info;
+ }
+
+ public LabelInfo AddLabel ()
+ {
+ int pos = inst_list.Count;
+ LabelInfo label_info = new LabelInfo (null, inst_list.Count);
+ label_list.Add (label_info);
+ return label_info;
+ }
public PEAPI.CILLabel GetLabelDef (string name)
{
@@ -400,21 +388,21 @@ namespace Mono.ILASM {
return label_info.Label;
}
- public PEAPI.CILLabel GetLabelDef (int pos)
- {
- foreach (LabelInfo li in label_list) {
- if (li.Pos == pos)
- return li.Label;
- }
- return null;
- }
+ public PEAPI.CILLabel GetLabelDef (int pos)
+ {
+ foreach (LabelInfo li in label_list) {
+ if (li.Pos == pos)
+ return li.Label;
+ }
+ return null;
+ }
private void CreateSignature ()
{
- if (IsVararg)
- signature = CreateVarargSignature (name, param_list);
- else
- signature = CreateSignature (name, param_list);
+ if (IsVararg)
+ signature = CreateVarargSignature (name, param_list);
+ else
+ signature = CreateSignature (name, param_list);
}
public static string CreateSignature (string name, IList param_list)
@@ -438,14 +426,14 @@ namespace Mono.ILASM {
return builder.ToString ();
}
- public static string CreateVarargSignature (string name, IList param_list)
+ public static string CreateVarargSignature (string name, IList param_list)
{
StringBuilder builder = new StringBuilder ();
builder.Append (name);
builder.Append ('(');
- bool first = true;
+ bool first = true;
if (param_list != null) {
foreach (ParamDef paramdef in param_list) {
if (!first)
@@ -454,12 +442,12 @@ namespace Mono.ILASM {
first = false;
}
}
- ParamDef last = (ParamDef) param_list[param_list.Count - 1];
- if (!last.IsSentinel ()) {
- if (!first)
- builder.Append (',');
- builder.Append ("...");
- }
+ ParamDef last = (ParamDef) param_list[param_list.Count - 1];
+ if (!last.IsSentinel ()) {
+ if (!first)
+ builder.Append (',');
+ builder.Append ("...");
+ }
builder.Append (')');
return builder.ToString ();
@@ -479,8 +467,8 @@ namespace Mono.ILASM {
builder.Append (',');
builder.Append (param.FullName);
first = false;
- if (param is SentinelTypeRef)
- break;
+ if (param is SentinelTypeRef)
+ break;
}
}
builder.Append (')');
diff --git a/mcs/ilasm/codegen/ParamDef.cs b/mcs/ilasm/codegen/ParamDef.cs
index 9c597f525a0..0cd9d607fab 100644
--- a/mcs/ilasm/codegen/ParamDef.cs
+++ b/mcs/ilasm/codegen/ParamDef.cs
@@ -34,10 +34,6 @@ namespace Mono.ILASM {
is_defined = false;
}
- public ITypeRef Type {
- get { return typeref; }
- }
-
public string TypeName {
get { return typeref.FullName; }
}
@@ -50,10 +46,10 @@ namespace Mono.ILASM {
get { return peapi_param; }
}
- public bool IsSentinel ()
- {
- return (typeref is SentinelTypeRef);
- }
+ public bool IsSentinel ()
+ {
+ return (typeref is SentinelTypeRef);
+ }
public void Define (CodeGen code_gen)
{
diff --git a/mcs/ilasm/codegen/TypeDef.cs b/mcs/ilasm/codegen/TypeDef.cs
index c8791bc399a..bf94e092e3b 100644
--- a/mcs/ilasm/codegen/TypeDef.cs
+++ b/mcs/ilasm/codegen/TypeDef.cs
@@ -30,7 +30,6 @@ namespace Mono.ILASM {
private ArrayList event_list;
private ArrayList property_list;
private ArrayList typar_list;
- private ArrayList override_list;
private Hashtable constraint_table;
private TypeDef outer;
@@ -40,8 +39,8 @@ namespace Mono.ILASM {
private int size;
private int pack;
- private bool is_value_class;
- private bool is_enum_class;
+ private bool is_value_class;
+ private bool is_enum_class;
public TypeDef (PEAPI.TypeAttr attr, string name_space, string name,
IClassRef parent, ArrayList impl_list, Location location)
@@ -61,8 +60,8 @@ namespace Mono.ILASM {
is_defined = false;
is_intransit = false;
- is_value_class = false;
- is_value_class = false;
+ is_value_class = false;
+ is_value_class = false;
}
public string Name {
@@ -102,24 +101,15 @@ namespace Mono.ILASM {
get { return current_property; }
}
+ public void MakeValueClass ()
+ {
+ is_value_class = true;
+ }
- public void AddOverride (MethodDef decl, ITypeRef parent, string name)
- {
- if (override_list == null)
- override_list = new ArrayList ();
- override_list.Add (new DictionaryEntry (decl,
- new DictionaryEntry (parent, name)));
- }
-
- public void MakeValueClass ()
- {
- is_value_class = true;
- }
-
- public void MakeEnumClass ()
- {
- is_enum_class = true;
- }
+ public void MakeEnumClass ()
+ {
+ is_enum_class = true;
+ }
public void SetSize (int size)
{
@@ -228,14 +218,14 @@ namespace Mono.ILASM {
classdef = outer.PeapiType.AddNestedClass (attr,
name_space, name, parent.PeapiClass);
} else {
- if (is_value_class) {
- // Should probably confirm that the parent is System.ValueType
- classdef = code_gen.PEFile.AddValueClass (attr,
- name_space, name);
- } else {
- classdef = code_gen.PEFile.AddClass (attr,
- name_space, name, parent.PeapiClass);
- }
+ if (is_value_class) {
+ // Should probably confirm that the parent is System.ValueType
+ classdef = code_gen.PEFile.AddValueClass (attr,
+ name_space, name);
+ } else {
+ classdef = code_gen.PEFile.AddClass (attr,
+ name_space, name, parent.PeapiClass);
+ }
}
} else {
if (outer != null) {
@@ -244,15 +234,14 @@ namespace Mono.ILASM {
classdef = outer.PeapiType.AddNestedClass (attr,
name_space, name);
} else {
- if (is_value_class) {
- classdef = code_gen.PEFile.AddValueClass (attr,
- name_space, name);
- } else {
- classdef = code_gen.PEFile.AddClass (attr,
- name_space, name);
- }
+ if (is_value_class) {
+ classdef = code_gen.PEFile.AddValueClass (attr,
+ name_space, name);
+ } else {
+ classdef = code_gen.PEFile.AddClass (attr,
+ name_space, name);
+ }
}
- classdef.SpecialNoSuper ();
}
if (size != -1)
@@ -304,21 +293,6 @@ namespace Mono.ILASM {
foreach (CustomAttr customattr in customattr_list)
customattr.AddTo (code_gen, classdef);
}
-
- if (override_list != null) {
- foreach (DictionaryEntry entry in override_list) {
- MethodDef decl = (MethodDef) entry.Key;
- DictionaryEntry body = (DictionaryEntry) entry.Value;
- ITypeRef parent_type = (ITypeRef) body.Key;
- parent_type.Resolve (code_gen);
- string over_name = (string) body.Value;
- IMethodRef over_meth = parent_type.GetMethodRef (decl.RetType,
- decl.CallConv, over_name, decl.ParamTypeList ());
- over_meth.Resolve (code_gen);
- classdef.AddMethodOverride (over_meth.PeapiMethod,
- decl.PeapiMethodDef);
- }
- }
}
public PEAPI.MethodDef ResolveMethod (string signature, CodeGen code_gen)
diff --git a/mcs/ilasm/ilasm.exe.sources b/mcs/ilasm/ilasm.exe.sources
index b93b7dbde71..12f255c9af0 100644
--- a/mcs/ilasm/ilasm.exe.sources
+++ b/mcs/ilasm/ilasm.exe.sources
@@ -1,5 +1,4 @@
Driver.cs
-Report.cs
AssemblyInfo.cs
codegen/CodeGen.cs
codegen/ExternTable.cs
diff --git a/mcs/ilasm/parser/ChangeLog b/mcs/ilasm/parser/ChangeLog
index 9e623f39e1f..497944c6ad1 100644
--- a/mcs/ilasm/parser/ChangeLog
+++ b/mcs/ilasm/parser/ChangeLog
@@ -1,7 +1,3 @@
-2003-08-19 Jackson Harper <jackson@latitudegeo.com>
-
- * ILParser.jay: Add override methods.
-
2003-08-10 Jackson Harper <jackson@latitudegeo.com>
* ILParser.jay: Create an empty array list for empty type
diff --git a/mcs/ilasm/parser/ILParser.jay b/mcs/ilasm/parser/ILParser.jay
index 337ffd06098..a1492a8a4d4 100644
--- a/mcs/ilasm/parser/ILParser.jay
+++ b/mcs/ilasm/parser/ILParser.jay
@@ -1568,11 +1568,6 @@ method_decl : D_EMITBYTE int32
| D_EXPORT OPEN_BRACKET int32 CLOSE_BRACKET K_AS id
| D_VTENTRY int32 COLON int32
| D_OVERRIDE type_spec DOUBLE_COLON method_name
- {
- codegen.CurrentTypeDef.AddOverride (codegen.CurrentMethodDef,
- (ITypeRef) $2, (string) $4);
-
- }
| scope_block
| D_PARAM OPEN_BRACKET int32 CLOSE_BRACKET init_opt
| id COLON
diff --git a/mono/arch/alpha/.cvsignore b/mono/arch/alpha/.cvsignore
new file mode 100644
index 00000000000..6358454922b
--- /dev/null
+++ b/mono/arch/alpha/.cvsignore
@@ -0,0 +1,4 @@
+Makefile.in
+Makefile
+.deps
+.cvsignore
diff --git a/mono/arch/s390/.cvsignore b/mono/arch/s390/.cvsignore
new file mode 100644
index 00000000000..6358454922b
--- /dev/null
+++ b/mono/arch/s390/.cvsignore
@@ -0,0 +1,4 @@
+Makefile.in
+Makefile
+.deps
+.cvsignore
diff --git a/mono/arch/sparc/sparc-codegen.h b/mono/arch/sparc/sparc-codegen.h
index d756cf61464..04a23c35822 100644
--- a/mono/arch/sparc/sparc-codegen.h
+++ b/mono/arch/sparc/sparc-codegen.h
@@ -385,15 +385,6 @@ typedef struct {
#define sparc_fop(ins,r1,op,r2,dest) sparc_encode_format3c((ins),2,(op),(r1),52,(r2),(dest))
#define sparc_fcmp(ins,r1,op,r2) sparc_encode_format3c((ins),2,(op),(r1),53,(r2),0)
-/* fadd for a single has an op code of 65, double 66, quad 67 */
-#define sparc_fadds(ins, r1, op, r2, dest) sparc_fop( ins, r1, 65, r2, dest )
-#define sparc_faddd(ins, r1, op, r2, dest) sparc_fop( ins, r1, 66, r2, dest )
-#define sparc_faddq(ins, r1, op, r2, dest) sparc_fop( ins, r1, 67, r2, dest )
-
-#define sparc_fsubs(ins, r1, op, r2, dest) sparc_fop( ins, r1, 69, r2, dest )
-#define sparc_fsubd(ins, r1, op, r2, dest) sparc_fop( ins, r1, 70, r2, dest )
-#define sparc_fsubq(ins, r1, op, r2, dest) sparc_fop( ins, r1, 71, r2, dest )
-
/* logical */
#define sparc_and(ins,setcc,r1,r2,dest) sparc_encode_format3a((ins),2,0,(r1),(r2),(setcc)|1,(dest))
#define sparc_and_imm(ins,setcc,r1,imm,dest) sparc_encode_format3b((ins),2,(r1),(imm),(setcc)|1,(dest))
@@ -460,6 +451,7 @@ typedef struct {
/* synthetic instructions */
#define sparc_cmp(ins,r1,r2) sparc_sub((ins),sparc_cc,(r1),(r2),sparc_g0)
#define sparc_cmp_imm(ins,r1,imm) sparc_sub_imm((ins),sparc_cc,(r1),(imm),sparc_g0)
+
#define sparc_jmp(ins,base,disp) sparc_jmpl((ins),(base),(disp),sparc_g0)
#define sparc_jmp_imm(ins,base,disp) sparc_jmpl_imm((ins),(base),(disp),sparc_g0)
#define sparc_call(ins,base,disp) sparc_jmpl((ins),(base),(disp),sparc_o7)
diff --git a/mono/interpreter/ChangeLog b/mono/interpreter/ChangeLog
index b4964d6238e..b0b656aa07e 100644
--- a/mono/interpreter/ChangeLog
+++ b/mono/interpreter/ChangeLog
@@ -1,21 +1,3 @@
-2003-08-18 Zoltan Varga <vargaz@freemail.hu>
-
- * interp.c: Get rid of duplicate definition of CHECK_MUL_OVERFLOW.
- * interp.h interp.c: Get rid of VAL_VALUETA, use VAL_MP instead. Fix
- the INITOBJ opcode which was the only user of VALUETA.
-
-2003-08-16 Zoltan Varga <vargaz@freemail.hu>
-
- * interp.c (ves_exec_method): Implemented mul.ovf correctly for int32
- and int64. Implement the conv.ovf opcodes for all argument types.
-
-2003-08-15 Zoltan Varga <vargaz@freemail.hu>
-
- * interp.c (ves_exec_method): Handle non-valuetypes in CEE_STOBJ.
- Fixes #46781.
- (ves_exec_method): Added support for the synchronized flag to the
- interpreter. Also fixed the CALLI opcode, and made exception handling
- work though the managed-unmanaged barrier.
Fri Jul 25 19:06:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
diff --git a/mono/interpreter/interp.c b/mono/interpreter/interp.c
index 1a48052d486..1f2f81e57db 100644
--- a/mono/interpreter/interp.c
+++ b/mono/interpreter/interp.c
@@ -258,7 +258,7 @@ stackval_from_data (MonoType *type, stackval *result, char *data, gboolean pinvo
result->type = VAL_OBJ;
break;
default:
- result->type = VAL_MP;
+ result->type = VAL_VALUETA;
break;
}
result->data.p = *(gpointer*)data;
@@ -559,7 +559,7 @@ ves_array_element_address (MonoInvocation *frame)
esize = mono_array_element_size (ac);
ea = mono_array_addr_with_size (ao, esize, pos);
- frame->retval->type = VAL_MP;
+ frame->retval->type = VAL_TP;
frame->retval->data.p = ea;
}
@@ -1105,25 +1105,19 @@ verify_method (MonoMethod *m)
/* Resolves to TRUE if the operands would overflow */
#define CHECK_MUL_OVERFLOW(a,b) \
((gint32)(a) == 0) || ((gint32)(b) == 0) ? 0 : \
- (((gint32)(a) > 0) && ((gint32)(b) == -1)) ? FALSE : \
- (((gint32)(a) < 0) && ((gint32)(b) == -1)) ? (a == - MYGINT32_MAX) : \
- (((gint32)(a) > 0) && ((gint32)(b) > 0)) ? (gint32)(a) > ((MYGINT32_MAX) / (gint32)(b)) : \
- (((gint32)(a) > 0) && ((gint32)(b) < 0)) ? (gint32)(a) > ((MYGINT32_MIN) / (gint32)(b)) : \
- (((gint32)(a) < 0) && ((gint32)(b) > 0)) ? (gint32)(a) < ((MYGINT32_MIN) / (gint32)(b)) : \
- (gint32)(a) < ((MYGINT32_MAX) / (gint32)(b))
+ (((gint32)(a) > 0) && ((gint32)(b) > 0)) || (((gint32)(a) < 0) && ((gint32)(b) < 0)) ? \
+ (gint32)(b) > ((MYGINT32_MAX) / (gint32)(a)) : \
+ (gint32)(b) < ((MYGINT32_MIN) / (gint32)(a))
#define CHECK_MUL_OVERFLOW_UN(a,b) \
((guint32)(a) == 0) || ((guint32)(b) == 0) ? 0 : \
(guint32)(b) > ((MYGUINT32_MAX) / (guint32)(a))
-
+
#define CHECK_MUL_OVERFLOW64(a,b) \
((gint64)(a) == 0) || ((gint64)(b) == 0) ? 0 : \
- (((gint64)(a) > 0) && ((gint64)(b) == -1)) ? FALSE : \
- (((gint64)(a) < 0) && ((gint64)(b) == -1)) ? (a == - MYGINT64_MAX) : \
- (((gint64)(a) > 0) && ((gint64)(b) > 0)) ? (gint64)(a) > ((MYGINT64_MAX) / (gint64)(b)) : \
- (((gint64)(a) > 0) && ((gint64)(b) < 0)) ? (gint64)(a) > ((MYGINT64_MIN) / (gint64)(b)) : \
- (((gint64)(a) < 0) && ((gint64)(b) > 0)) ? (gint64)(a) < ((MYGINT64_MIN) / (gint64)(b)) : \
- (gint64)(a) < ((MYGINT64_MAX) / (gint64)(b))
+ (((gint64)(a) > 0) && ((gint64)(b) > 0)) || (((gint64)(a) < 0) && ((gint64)(b) < 0)) ? \
+ (gint64)(b) > ((MYGINT64_MAX) / (gint64)(a)) : \
+ (gint64)(b) < ((MYGINT64_MIN) / (gint64)(a))
#define CHECK_MUL_OVERFLOW64_UN(a,b) \
((guint64)(a) == 0) || ((guint64)(b) == 0) ? 0 : \
@@ -1482,7 +1476,10 @@ ves_exec_method (MonoInvocation *frame)
sp->data.vt.klass = c;
sp->data.vt.vt = ARG_POS (*ip);
- sp->type = VAL_MP;
+ if (c->valuetype)
+ sp->type = VAL_VALUETA;
+ else
+ sp->type = VAL_TP;
++sp;
++ip;
@@ -1512,7 +1509,10 @@ ves_exec_method (MonoInvocation *frame)
sp->data.vt.klass = c;
sp->data.p = LOCAL_POS (*ip);
- sp->type = VAL_MP;
+ if (c->valuetype)
+ sp->type = VAL_VALUETA;
+ else
+ sp->type = VAL_TP;
++sp;
++ip;
@@ -1607,23 +1607,7 @@ ves_exec_method (MonoInvocation *frame)
--sp;
vt_free (sp);
BREAK;
- CASE (CEE_JMP) {
- guint32 token;
-
- frame->ip = ip;
-
- ++ip;
- token = read32 (ip);
- ip += 4;
-
- child_frame.method = mono_get_method (image, token, NULL);
- if (!child_frame.method)
- THROW_EX (mono_get_exception_missing_method (), ip -5);
-
- ves_abort ();
-
- BREAK;
- }
+ CASE (CEE_JMP) ves_abort(); BREAK;
CASE (CEE_CALLVIRT) /* Fall through */
CASE (CEE_CALLI) /* Fall through */
CASE (CEE_CALL) {
@@ -1652,13 +1636,10 @@ ves_exec_method (MonoInvocation *frame)
if (frame->method->wrapper_type != MONO_WRAPPER_NONE) {
csignature = (MonoMethodSignature *)mono_method_get_wrapper_data (frame->method, token);
child_frame.method = NULL;
+ } else if ((ji = mono_jit_info_table_find (mono_root_domain, code))) {
+ child_frame.method = ji->method;
} else {
- csignature = mono_metadata_parse_signature (image, token);
- if ((ji = mono_jit_info_table_find (mono_root_domain, code))) {
- child_frame.method = ji->method;
- } else {
- g_assert_not_reached ();
- }
+ g_assert_not_reached ();
}
g_assert (code);
} else {
@@ -1676,10 +1657,6 @@ ves_exec_method (MonoInvocation *frame)
}
}
- if (frame->method->wrapper_type == MONO_WRAPPER_NONE)
- if (child_frame.method && child_frame.method->iflags & METHOD_IMPL_ATTRIBUTE_SYNCHRONIZED)
- child_frame.method = mono_marshal_get_synchronized_wrapper (child_frame.method);
-
g_assert (csignature->call_convention == MONO_CALL_DEFAULT);
/* decrement by the actual number of args */
if (csignature->param_count) {
@@ -1693,7 +1670,7 @@ ves_exec_method (MonoInvocation *frame)
--sp;
/*
* It may also be a TP from LD(S)FLDA
- * g_assert (sp->type == VAL_OBJ || sp->type == VAL_MP);
+ * g_assert (sp->type == VAL_OBJ || sp->type == VAL_VALUETA);
*/
if (sp->type == VAL_OBJ && child_frame.method &&
child_frame.method->klass->valuetype) /* unbox it */
@@ -1716,10 +1693,6 @@ ves_exec_method (MonoInvocation *frame)
if (!child_frame.method) {
g_assert (code);
ves_pinvoke_method (&child_frame, csignature, (MonoFunc) code, FALSE);
- if (child_frame.ex) {
- frame->ex = child_frame.ex;
- goto handle_exception;
- }
} else if (csignature->hasthis && sp->type == VAL_OBJ &&
((MonoObject *)sp->data.p)->vtable->klass == mono_defaults.transparent_proxy_class) {
g_assert (child_frame.method);
@@ -2861,7 +2834,7 @@ array_constructed:
}
if (load_addr) {
- sp [-1].type = VAL_MP;
+ sp [-1].type = VAL_TP;
sp [-1].data.p = addr;
sp [-1].data.vt.klass = mono_class_from_mono_type (field->type);
} else {
@@ -2945,7 +2918,7 @@ array_constructed:
addr = mono_threads_get_static_data (GPOINTER_TO_UINT (addr));
if (load_addr) {
- sp->type = VAL_MP;
+ sp->type = VAL_TP;
sp->data.p = addr;
sp->data.vt.klass = mono_class_from_mono_type (field->type);
} else {
@@ -2995,15 +2968,7 @@ array_constructed:
vtklass = mono_class_get (image, read32 (ip));
ip += 4;
sp -= 2;
-
- /*
- * LAMESPEC: According to the spec, the stack should contain a
- * pointer to a value type. In reality, it can contain anything.
- */
- if (sp [1].type == VAL_VALUET)
- memcpy (sp [0].data.p, sp [1].data.vt.vt, mono_class_value_size (vtklass, NULL));
- else
- memcpy (sp [0].data.p, &sp [1].data, mono_class_value_size (vtklass, NULL));
+ memcpy (sp [0].data.p, sp [1].data.vt.vt, mono_class_value_size (vtklass, NULL));
BREAK;
}
#if SIZEOF_VOID_P == 8
@@ -3104,7 +3069,7 @@ array_constructed:
case CEE_CONV_OVF_I_UN: /* Fall through */
#endif
case CEE_CONV_OVF_I4_UN:
- if (value > MYGUINT32_MAX)
+ if (value > 2147483647)
THROW_EX (mono_get_exception_overflow (), ip);
sp [-1].data.i = value;
sp [-1].type = VAL_I32;
@@ -3399,87 +3364,68 @@ array_constructed:
CASE (CEE_UNUSED15)
CASE (CEE_UNUSED16)
CASE (CEE_UNUSED17) ves_abort(); BREAK;
-
-#if SIZEOF_VOID_P == 4
- CASE (CEE_CONV_OVF_I)
- CASE (CEE_CONV_OVF_U)
-#endif
CASE (CEE_CONV_OVF_I1)
- CASE (CEE_CONV_OVF_I2)
- CASE (CEE_CONV_OVF_I4)
- CASE (CEE_CONV_OVF_U1)
- CASE (CEE_CONV_OVF_U2)
- CASE (CEE_CONV_OVF_U4) {
- gint64 value;
- switch (sp [-1].type) {
- case VAL_DOUBLE:
- value = (gint64)sp [-1].data.f;
- break;
- case VAL_I64:
- value = (gint64)sp [-1].data.l;
- break;
- case VAL_VALUET:
- ves_abort();
- case VAL_I32:
- value = (gint64)sp [-1].data.i;
- break;
- default:
- value = (gint64)sp [-1].data.nati;
- break;
- }
- switch (*ip) {
- case CEE_CONV_OVF_I1:
- if (value < -128 || value > 127)
- THROW_EX (mono_get_exception_overflow (), ip);
- sp [-1].data.i = value;
- sp [-1].type = VAL_I32;
- break;
- case CEE_CONV_OVF_I2:
- if (value < -32768 || value > 32767)
+ if (sp [-1].type == VAL_I32) {
+ if (sp [-1].data.i < 128 || sp [-1].data.i > 127)
THROW_EX (mono_get_exception_overflow (), ip);
- sp [-1].data.i = value;
- sp [-1].type = VAL_I32;
- break;
-#if SIZEOF_VOID_P == 4
- case CEE_CONV_OVF_I: /* Fall through */
-#endif
- case CEE_CONV_OVF_I4:
- if (value < MYGINT32_MIN || value > MYGINT32_MAX)
+ sp [-1].data.i = (gint8)sp [-1].data.i;
+ } else if (sp [-1].type == VAL_I64) {
+ if (sp [-1].data.l < 128 || sp [-1].data.l > 127)
THROW_EX (mono_get_exception_overflow (), ip);
- sp [-1].data.i = value;
- sp [-1].type = VAL_I32;
- break;
- case CEE_CONV_OVF_U1:
- if (value < 0 || value > 255)
+ sp [-1].data.i = (gint8)sp [-1].data.l;
+ } else {
+ ves_abort();
+ }
+ ++ip;
+ BREAK;
+ CASE (CEE_CONV_OVF_U1)
+ if (sp [-1].type == VAL_I32) {
+ if (sp [-1].data.i < 0 || sp [-1].data.i > 255)
THROW_EX (mono_get_exception_overflow (), ip);
- sp [-1].data.i = value;
- sp [-1].type = VAL_I32;
- break;
- case CEE_CONV_OVF_U2:
- if (value < 0 || value > 65535)
+ sp [-1].data.i = (gint8)sp [-1].data.i;
+ } else if (sp [-1].type == VAL_I64) {
+ if (sp [-1].data.l < 0 || sp [-1].data.l > 255)
THROW_EX (mono_get_exception_overflow (), ip);
- sp [-1].data.i = value;
+ sp [-1].data.i = (gint8)sp [-1].data.l;
+ } else {
+ ves_abort();
+ }
+ ++ip;
+ BREAK;
+ CASE (CEE_CONV_OVF_I2)
+ CASE (CEE_CONV_OVF_U2)
+ ++ip;
+ /* FIXME: handle other cases */
+ if (sp [-1].type == VAL_I32) {
+ /* defined as NOP */
+ } else {
+ ves_abort();
+ }
+ BREAK;
+ CASE (CEE_CONV_OVF_I4)
+ /* FIXME: handle other cases */
+ if (sp [-1].type == VAL_I32) {
+ /* defined as NOP */
+ } else if(sp [-1].type == VAL_I64) {
+ sp [-1].data.i = (gint32)sp [-1].data.l;
sp [-1].type = VAL_I32;
- break;
-#if SIZEOF_VOID_P == 4
- case CEE_CONV_OVF_U: /* Fall through */
-#endif
- case CEE_CONV_OVF_U4:
- if (value < 0 || value > MYGUINT32_MAX)
- THROW_EX (mono_get_exception_overflow (), ip);
- sp [-1].data.i = value;
+ } else {
+ ves_abort();
+ }
+ ++ip;
+ BREAK;
+ CASE (CEE_CONV_OVF_U4)
+ /* FIXME: handle other cases */
+ if (sp [-1].type == VAL_I32) {
+ /* defined as NOP */
+ } else if(sp [-1].type == VAL_I64) {
+ sp [-1].data.i = (guint32)sp [-1].data.l;
sp [-1].type = VAL_I32;
- break;
- default:
- g_assert_not_reached ();
+ } else {
+ ves_abort();
}
++ip;
BREAK;
- }
-
-#if SIZEOF_VOID_P == 8
- CASE (CEE_CONV_OVF_I)
-#endif
CASE (CEE_CONV_OVF_I8)
/* FIXME: handle other cases */
if (sp [-1].type == VAL_I32) {
@@ -3492,10 +3438,6 @@ array_constructed:
}
++ip;
BREAK;
-
-#if SIZEOF_VOID_P == 8
- CASE (CEE_CONV_OVF_U)
-#endif
CASE (CEE_CONV_OVF_U8)
/* FIXME: handle other cases */
if (sp [-1].type == VAL_I32) {
@@ -3544,6 +3486,29 @@ array_constructed:
++sp;
BREAK;
}
+ CASE (CEE_CONV_OVF_I)
+ ++ip;
+ --sp;
+ /* FIXME: check overflow. */
+ switch (sp->type) {
+ case VAL_I32:
+ sp->data.p = (gpointer)(mono_i) sp->data.i;
+ break;
+ case VAL_I64:
+ sp->data.p = (gpointer)(mono_i) sp->data.l;
+ break;
+ case VAL_NATI:
+ break;
+ case VAL_DOUBLE:
+ sp->data.p = (gpointer)(mono_i) sp->data.f;
+ break;
+ default:
+ ves_abort ();
+ }
+ sp->type = VAL_NATI;
+ ++sp;
+ BREAK;
+ CASE (CEE_CONV_OVF_U) ves_abort(); BREAK;
CASE (CEE_ADD_OVF)
--sp;
/* FIXME: check overflow */
@@ -3587,6 +3552,7 @@ array_constructed:
CASE (CEE_MUL_OVF)
++ip;
--sp;
+ /* FIXME: check overflow */
if (sp->type == VAL_I32) {
if (CHECK_MUL_OVERFLOW (sp [-1].data.i, GET_NATI (sp [0])))
THROW_EX (mono_get_exception_overflow (), ip);
@@ -3782,7 +3748,7 @@ array_constructed:
case CEE_MONO_VTADDR: {
++ip;
- sp->type = VAL_MP;
+ sp->type = VAL_VALUETA;
/* do nothing? */
break;
}
@@ -4014,15 +3980,6 @@ array_constructed:
m = get_virtual_method (domain, m, sp);
}
-
- /*
- * This prevents infinite cycles since the wrapper contains
- * an ldftn too.
- */
- if (frame->method->wrapper_type != MONO_WRAPPER_SYNCHRONIZED)
- if (m && m->iflags & METHOD_IMPL_ATTRIBUTE_SYNCHRONIZED)
- m = mono_marshal_get_synchronized_wrapper (m);
-
sp->type = VAL_NATI;
sp->data.p = mono_create_method_pointer (m);
sp->data.vt.klass = NULL;
@@ -4053,7 +4010,10 @@ array_constructed:
sp->data.vt.klass = c;
sp->data.vt.vt = ARG_POS (anum);
- sp->type = VAL_MP;
+ if (c->valuetype)
+ sp->type = VAL_VALUETA;
+ else
+ sp->type = VAL_TP;
++sp;
break;
@@ -4091,7 +4051,10 @@ array_constructed:
sp->data.vt.vt = LOCAL_POS (loc_pos);
sp->data.vt.klass = c;
- sp->type = VAL_MP;
+ if (c->valuetype)
+ sp->type = VAL_VALUETA;
+ else
+ sp->type = VAL_TP;
++sp;
break;
@@ -4112,7 +4075,7 @@ array_constructed:
THROW_EX (mono_get_exception_execution_engine (NULL), ip - 1);
++ip;
sp->data.p = alloca (sp->data.i);
- sp->type = VAL_MP;
+ sp->type = VAL_TP;
sp++;
break;
case CEE_UNUSED57: ves_abort(); break;
@@ -4131,17 +4094,16 @@ array_constructed:
break;
case CEE_INITOBJ: {
guint32 token;
- MonoClass *class;
-
++ip;
token = read32 (ip);
ip += 4;
-
- class = mono_class_get (image, token);
-
+ /*
+ * we ignore the value of token (I think we can as unspecified
+ * behavior described in Partition II, 3.5).
+ */
--sp;
- g_assert (sp->type == VAL_TP || sp->type == VAL_MP);
- memset (sp->data.vt.vt, 0, mono_class_value_size (class, NULL));
+ g_assert (sp->type == VAL_VALUETA || sp->type == VAL_TP);
+ memset (sp->data.vt.vt, 0, mono_class_value_size (sp->data.vt.klass, NULL));
break;
}
case CEE_CONSTRAINED_: {
@@ -4261,7 +4223,6 @@ array_constructed:
if (tracing)
g_print ("* Found handler at '%s'\n", inv->method->name);
#endif
-
/*
* It seems that if the catch handler is found in the same method,
* it gets executed before the finally handler.
@@ -4378,15 +4339,8 @@ die_on_ex:
++sp;
goto main_loop;
}
- if (!frame->parent) {
- /* Pass the exception though the managed barrier if possible */
- MonoInvocation *parent = TlsGetValue (frame_thread_id);
- if (parent) {
- parent->ex = frame->ex;
- longjmp (*(jmp_buf*)parent->locals, 1);
- }
+ if (!frame->parent)
goto die_on_ex;
- }
DEBUG_LEAVE ();
return;
}
diff --git a/mono/interpreter/interp.h b/mono/interpreter/interp.h
index 4fa68268d8d..90bbbbfc185 100644
--- a/mono/interpreter/interp.h
+++ b/mono/interpreter/interp.h
@@ -14,6 +14,7 @@ enum {
VAL_MP = 1 + VAL_POINTER,
VAL_TP = 2 + VAL_POINTER,
VAL_OBJ = 3 + VAL_POINTER,
+ VAL_VALUETA = 8
};
#if SIZEOF_VOID_P == 4
@@ -57,7 +58,6 @@ struct _MonoInvocation {
char *args;
stackval *stack_args; /* parent */
stackval *stack;
- stackval *sp; /* For GC stack marking */
/* exception info */
int invoke_trap;
const unsigned char *ip;
diff --git a/mono/metadata/.cvsignore b/mono/metadata/.cvsignore
index 18f33722269..75d912a3efe 100644
--- a/mono/metadata/.cvsignore
+++ b/mono/metadata/.cvsignore
@@ -1,7 +1,6 @@
Makefile
Makefile.in
pedump
-monosn
.libs
.deps
*.lo
diff --git a/mono/metadata/ChangeLog b/mono/metadata/ChangeLog
index c189030f2ad..5107280e8ba 100644
--- a/mono/metadata/ChangeLog
+++ b/mono/metadata/ChangeLog
@@ -1,35 +1,4 @@
-Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
-
- * loader.h: portability fix by Bernie Solomon
- * <bernard@ugsolutions.com>.
-
-2003-08-16 Zoltan Varga <vargaz@freemail.hu>
-
- * reflection.h reflection.c (mono_param_get_objects): Changed this to
- return a MonoArray. This simplifies the code and also ensures that
- the cache allways contains an object reference as a value.
-
- * icall.c (ves_icall_get_parameter_info): Simplified using the new
- function.
-
-2003-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
- fixes a problem with byte ordering when getting the address family for
- a socket.
-
-2003-08-15 Zoltan Varga <vargaz@freemail.hu>
-
- * .cvsignore: Added monosn.
-
- * reflection.h reflection.c loader.c: Added support for parameter
- marshalling to dynamically created types. Fixes #47295.
-
-Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
-
- * rand.c: remove useless warnings.
-
Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
* class.c: implemented ldtoken for methods and fieldrefs.
diff --git a/mono/metadata/NOTES b/mono/metadata/NOTES
new file mode 100644
index 00000000000..4edf1cd699c
--- /dev/null
+++ b/mono/metadata/NOTES
@@ -0,0 +1,113 @@
+
+1. Thread safety of metadata structures
+----------------------------------------
+
+1.1 Synchronization of read-only data
+-------------------------------------
+
+Read-only data is data which is not modified after creation, like the
+actual binary metadata in the metadata tables.
+
+There are three kinds of threads with regards to read-only data:
+- readers
+- the creator of the data
+- the destroyer of the data
+
+Most threads are readers.
+
+- synchronization between readers is not neccesary
+- synchronization between the writers is done using locks.
+- synchronization between the readers and the creator is done by not exposing
+ the data to readers before it is fully constructed.
+- synchronization between the readers and the destroyer: TBD.
+
+1.2 Deadlock prevention plan
+----------------------------
+
+Hold locks for the shortest time possible. Avoid calling functions inside
+locks which might obtain global locks (i.e. locks known outside this module).
+
+1.3 Locks
+----------
+
+1.3.1 Simple locks
+------------------
+
+ There are a lot of global data structures which can be protected by a 'simple' lock. Simple means:
+ - the lock protects only this data structure or it only protects the data structures in a given C module.
+ An example would be the appdomains list in domain.c
+ - the lock is only held for a short amount of time, and no other lock is acquired inside this simple lock. Thus there is
+ no possibility of deadlock.
+
+1.3.2 The class loader lock
+---------------------------
+
+This locks is held by the class loading routines in class.c and loader.c. It
+protects the various caches inside MonoImage which are used by these modules.
+
+1.3.3 The domain lock
+---------------------
+
+Each appdomain has a lock which protects the per-domain data structures.
+
+1.3.4 The locking hierarchy
+---------------------------
+
+It is useful to model locks by a locking hierarchy, which is a relation between locks, which is reflexive, transitive,
+and antisymmetric, in other words, a lattice. If a thread wants to acquire a lock B, while already holding A, it can only
+do it if A < B. If all threads work this way, then no deadlocks can occur.
+
+Our locking hierarchy so far looks like this:
+ <DOMAIN LOCK>
+ \
+ <CLASS LOADER LOCK>
+ \ \
+ <SIMPLE LOCK 1> <SIMPLE LOCK 2>
+
+1.4 Notes
+----------
+
+Some common scenarios:
+- if a function needs to access a data structure, then it should lock it itself, and do not count on its caller locking it.
+ So for example, the image->class_cache hash table would be locked by mono_class_get().
+
+- there are lots of places where a runtime data structure is created and stored in a cache. In these places, care must be
+ taken to avoid multiple threads creating the same runtime structure, for example, two threads might call mono_class_get ()
+ with the same class name. There are two choices here:
+
+ <enter mutex>
+ <check that item is created>
+ if (created) {
+ <leave mutex>
+ return item
+ }
+ <create item>
+ <store it in cache>
+ <leave mutex>
+
+ This is the easiest solution, but it requires holding the lock for the whole time which might create a scalability problem, and could also lead to deadlock.
+
+ <enter mutex>
+ <check that item is created>
+ <leave mutex>
+ if (created) {
+ return item
+ }
+ <create item>
+ <enter mutex>
+ <check that item is created>
+ if (created) {
+ /* Another thread already created and stored the same item */
+ <free our item>
+ <leave mutex>
+ return orig item
+ }
+ else {
+ <store item in cache>
+ <leave mutex>
+ return item
+ }
+
+ This solution does not present scalability problems, but the created item might be hard to destroy (like a MonoClass).
+
+- lazy initialization of hashtables etc. is not thread safe
diff --git a/mono/metadata/icall.c b/mono/metadata/icall.c
index a6b51c8acbd..81ab070ffcd 100644
--- a/mono/metadata/icall.c
+++ b/mono/metadata/icall.c
@@ -1073,10 +1073,22 @@ static MonoArray*
ves_icall_get_parameter_info (MonoMethod *method)
{
MonoDomain *domain = mono_domain_get ();
+ MonoArray *res;
+ static MonoClass *System_Reflection_ParameterInfo;
+ MonoReflectionParameter** args;
+ int i;
MONO_ARCH_SAVE_REGS;
- return mono_param_get_objects (domain, method);
+ args = mono_param_get_objects (domain, method);
+ if (!System_Reflection_ParameterInfo)
+ System_Reflection_ParameterInfo = mono_class_from_name (
+ mono_defaults.corlib, "System.Reflection", "ParameterInfo");
+ res = mono_array_new (domain, System_Reflection_ParameterInfo, method->signature->param_count);
+ for (i = 0; i < method->signature->param_count; ++i) {
+ mono_array_set (res, gpointer, i, args [i]);
+ }
+ return res;
}
static MonoReflectionType*
diff --git a/mono/metadata/loader.c b/mono/metadata/loader.c
index e6b69fad3c3..5fd49838a0b 100644
--- a/mono/metadata/loader.c
+++ b/mono/metadata/loader.c
@@ -761,20 +761,6 @@ mono_method_get_marshal_info (MonoMethod *method, MonoMarshalSpec **mspecs)
for (i = 0; i < method->signature->param_count + 1; ++i)
mspecs [i] = NULL;
- if (method->klass->image->assembly->dynamic) {
- MonoMarshalSpec **dyn_specs = mono_g_hash_table_lookup (
- ((MonoDynamicAssembly*)method->klass->image->assembly->dynamic)->param_marshalling,
- method);
- if (dyn_specs) {
- for (i = 0; i < method->signature->param_count + 1; ++i)
- if (dyn_specs [i]) {
- mspecs [i] = g_new0 (MonoMarshalSpec, 1);
- memcpy (mspecs [i], dyn_specs [i], sizeof (MonoMarshalSpec));
- }
- }
- return;
- }
-
mono_class_init (klass);
methodt = &klass->image->tables [MONO_TABLE_METHOD];
diff --git a/mono/metadata/loader.h b/mono/metadata/loader.h
index 68bf684c275..5b69cc2a964 100644
--- a/mono/metadata/loader.h
+++ b/mono/metadata/loader.h
@@ -35,7 +35,7 @@ typedef struct {
/* this is used by the inlining algorithm */
unsigned int inline_info:1;
unsigned int uses_this:1;
- unsigned int wrapper_type:4;
+ MonoWrapperType wrapper_type:4;
unsigned int string_ctor:1;
unsigned int save_lmf:1;
gint16 inline_count;
diff --git a/mono/metadata/rand.c b/mono/metadata/rand.c
index 40de9289390..0e5348a161e 100644
--- a/mono/metadata/rand.c
+++ b/mono/metadata/rand.c
@@ -105,13 +105,18 @@ ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetNonZe
/* This needs to change when I do the Win32 support... */
#else
+#ifndef _MSC_VER
+#warning "No Entropy Source Found"
+#endif
void ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes(MonoObject *self, MonoArray *arry)
{
+ g_warning("0K problem. We have no entropy. Badness will occur.");
mono_raise_exception(mono_get_exception_not_implemented());
}
void ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetNonZeroBytes(MonoObject *self, MonoArray *arry)
{
+ g_warning("0K problem. We have no entropy. Badness will occur.");
mono_raise_exception(mono_get_exception_not_implemented());
}
diff --git a/mono/metadata/reflection.c b/mono/metadata/reflection.c
index f7c074139a6..52160815529 100644
--- a/mono/metadata/reflection.c
+++ b/mono/metadata/reflection.c
@@ -2952,7 +2952,6 @@ mono_image_basic_init (MonoReflectionAssemblyBuilder *assemblyb)
assembly->token_fixups = mono_g_hash_table_new (g_direct_hash, g_direct_equal);
assembly->method_to_table_idx = mono_g_hash_table_new (g_direct_hash, g_direct_equal);
assembly->field_to_table_idx = mono_g_hash_table_new (g_direct_hash, g_direct_equal);
- assembly->param_marshalling = mono_g_hash_table_new (g_direct_hash, g_direct_equal);
assembly->handleref = g_hash_table_new (g_direct_hash, g_direct_equal);
assembly->tokens = mono_g_hash_table_new (g_direct_hash, g_direct_equal);
assembly->typeref = g_hash_table_new ((GHashFunc)mono_metadata_type_hash, (GCompareFunc)mono_metadata_type_equal);
@@ -3731,43 +3730,41 @@ mono_event_get_object (MonoDomain *domain, MonoClass *klass, MonoEvent *event)
* Return an System.Reflection.ParameterInfo array object representing the parameters
* in the method @method.
*/
-MonoArray*
+MonoReflectionParameter**
mono_param_get_objects (MonoDomain *domain, MonoMethod *method)
{
- static MonoClass *System_Reflection_ParameterInfo;
- MonoArray *res = NULL;
- MonoReflectionMethod *member = NULL;
- MonoReflectionParameter *param = NULL;
+ MonoReflectionParameter **res;
+ MonoReflectionMethod *member;
+ MonoClass *oklass;
char **names;
int i;
- if (!System_Reflection_ParameterInfo)
- System_Reflection_ParameterInfo = mono_class_from_name (
- mono_defaults.corlib, "System.Reflection", "ParameterInfo");
-
if (!method->signature->param_count)
- return mono_array_new (domain, System_Reflection_ParameterInfo, 0);
+ return NULL;
/* Note: the cache is based on the address of the signature into the method
* since we already cache MethodInfos with the method as keys.
*/
- CHECK_OBJECT (MonoArray*, &(method->signature), NULL);
+ CHECK_OBJECT (MonoReflectionParameter**, &(method->signature), NULL);
member = mono_method_get_object (domain, method, NULL);
names = g_new (char *, method->signature->param_count);
mono_method_get_param_names (method, (const char **) names);
-
- res = mono_array_new (domain, System_Reflection_ParameterInfo, method->signature->param_count);
+
+ oklass = mono_class_from_name (mono_defaults.corlib, "System.Reflection", "ParameterInfo");
+#if HAVE_BOEHM_GC
+ res = GC_MALLOC (sizeof (MonoReflectionParameter*) * method->signature->param_count);
+#else
+ res = g_new0 (MonoReflectionParameter*, method->signature->param_count);
+#endif
for (i = 0; i < method->signature->param_count; ++i) {
- param = (MonoReflectionParameter *)mono_object_new (domain,
- System_Reflection_ParameterInfo);
- param->ClassImpl = mono_type_get_object (domain, method->signature->params [i]);
- param->DefaultValueImpl = NULL; /* FIXME */
- param->MemberImpl = (MonoObject*)member;
- param->NameImpl = mono_string_new (domain, names [i]);
- param->PositionImpl = i;
- param->AttrsImpl = method->signature->params [i]->attrs;
- mono_array_set (res, gpointer, i, param);
+ res [i] = (MonoReflectionParameter *)mono_object_new (domain, oklass);
+ res [i]->ClassImpl = mono_type_get_object (domain, method->signature->params [i]);
+ res [i]->DefaultValueImpl = NULL; /* FIXME */
+ res [i]->MemberImpl = (MonoObject*)member;
+ res [i]->NameImpl = mono_string_new (domain, names [i]);
+ res [i]->PositionImpl = i;
+ res [i]->AttrsImpl = method->signature->params [i]->attrs;
}
g_free (names);
CACHE_OBJECT (&(method->signature), res, NULL);
@@ -5307,43 +5304,6 @@ mono_reflection_create_internal_class (MonoReflectionTypeBuilder *tb)
}
}
-static MonoMarshalSpec*
-mono_marshal_spec_from_builder (MonoAssembly *assembly,
- MonoReflectionMarshal *minfo)
-{
- MonoMarshalSpec *res;
-
- res = g_new0 (MonoMarshalSpec, 1);
- res->native = minfo->type;
-
- switch (minfo->type) {
- case MONO_NATIVE_LPARRAY:
- res->data.array_data.elem_type = minfo->eltype;
- res->data.array_data.param_num = 0; /* Not yet */
- res->data.array_data.num_elem = minfo->count;
- break;
-
- case MONO_NATIVE_BYVALTSTR:
- case MONO_NATIVE_BYVALARRAY:
- res->data.array_data.num_elem = minfo->count;
- break;
-
- case MONO_NATIVE_CUSTOM:
- if (minfo->marshaltyperef)
- res->data.custom_data.custom_name =
- type_get_qualified_name (minfo->marshaltyperef->type,
- assembly);
- if (minfo->mcookie)
- res->data.custom_data.cookie = mono_string_to_utf8 (minfo->mcookie);
- break;
-
- default:
- break;
- }
-
- return res;
-}
-
static MonoMethod*
reflection_methodbuilder_to_mono_method (MonoClass *klass,
ReflectionMethodBuilder *rmb,
@@ -5351,8 +5311,6 @@ reflection_methodbuilder_to_mono_method (MonoClass *klass,
{
MonoMethod *m;
MonoMethodNormal *pm;
- MonoMarshalSpec **specs;
- int i;
if ((rmb->attrs & METHOD_ATTRIBUTE_PINVOKE_IMPL) ||
(rmb->iattrs & METHOD_IMPL_ATTRIBUTE_INTERNAL_CALL))
@@ -5439,25 +5397,6 @@ reflection_methodbuilder_to_mono_method (MonoClass *klass,
pm->header = header;
}
- /* Parameter marshalling */
- specs = NULL;
- if (rmb->pinfo)
- for (i = 0; i < mono_array_length (rmb->pinfo); ++i) {
- MonoReflectionParamBuilder *pb;
- if ((pb = mono_array_get (rmb->pinfo, MonoReflectionParamBuilder*, i))) {
- if (pb->marshal_info) {
- if (specs == NULL)
- specs = g_new0 (MonoMarshalSpec*, sig->param_count + 1);
- specs [pb->position] =
- mono_marshal_spec_from_builder (klass->image->assembly, pb->marshal_info);
- }
- }
- }
- if (specs != NULL)
- mono_g_hash_table_insert (
- ((MonoDynamicAssembly*)klass->image->assembly->dynamic)->param_marshalling,
- m, specs);
-
return m;
}
diff --git a/mono/metadata/reflection.h b/mono/metadata/reflection.h
index fd0b481e000..43bff2f681c 100644
--- a/mono/metadata/reflection.h
+++ b/mono/metadata/reflection.h
@@ -270,7 +270,6 @@ typedef struct {
MonoGHashTable *token_fixups;
MonoGHashTable *method_to_table_idx;
MonoGHashTable *field_to_table_idx;
- MonoGHashTable *param_marshalling;
gboolean run;
gboolean save;
char *strong_name;
@@ -487,7 +486,7 @@ MonoReflectionField* mono_field_get_object (MonoDomain *domain, MonoClass
MonoReflectionProperty* mono_property_get_object (MonoDomain *domain, MonoClass *klass, MonoProperty *property);
MonoReflectionEvent* mono_event_get_object (MonoDomain *domain, MonoClass *klass, MonoEvent *event);
/* note: this one is slightly different: we keep the whole array of params in the cache */
-MonoArray* mono_param_get_objects (MonoDomain *domain, MonoMethod *method);
+MonoReflectionParameter** mono_param_get_objects (MonoDomain *domain, MonoMethod *method);
MonoArray* mono_reflection_get_custom_attrs (MonoObject *obj);
MonoArray* mono_reflection_get_custom_attrs_blob (MonoObject *ctor, MonoArray *ctorArgs, MonoArray *properties, MonoArray *porpValues, MonoArray *fields, MonoArray* fieldValues);
diff --git a/mono/metadata/socket-io.c b/mono/metadata/socket-io.c
index 2735ad8bb63..fee8059af88 100644
--- a/mono/metadata/socket-io.c
+++ b/mono/metadata/socket-io.c
@@ -893,7 +893,7 @@ static struct sockaddr *create_sockaddr_from_object(MonoObject *saddr_obj,
mono_raise_exception (mono_exception_from_name(mono_defaults.corlib, "System", "SystemException"));
}
- family = convert_family (mono_array_get (data, guint8, 0) + (mono_array_get (data, guint8, 1) << 8));
+ family = convert_family (mono_array_get (data, guint16, 0));
if(family==AF_INET) {
struct sockaddr_in *sa=g_new0(struct sockaddr_in, 1);
guint16 port=(mono_array_get(data, guint8, 2) << 8) +
diff --git a/mono/mini/Makefile.am b/mono/mini/Makefile.am
index 6999ec7ab13..34f3e7e5614 100644
--- a/mono/mini/Makefile.am
+++ b/mono/mini/Makefile.am
@@ -195,7 +195,6 @@ documents=mini-doc.txt mini-porting.txt
BUILT_SOURCES= inssel.c inssel.h cpu-pentium.h cpu-g4.h cpu-sparc.h
CLEANFILES= $(BUILT_SOURCES)
EXTRA_DIST = $(common_BURGSRC) $(documents) inssel-x86.brg inssel-ppc.brg \
- $(x86_sources) $(ppc_sources) $(sparc_sources) \
jit-icalls.c cprop.c inssel-sparc.brg \
cpu-pentium.md cpu-g4.md ldscript cpu-sparc.md
diff --git a/mono/profiler/.cvsignore b/mono/profiler/.cvsignore
new file mode 100644
index 00000000000..3ff24e7a6bb
--- /dev/null
+++ b/mono/profiler/.cvsignore
@@ -0,0 +1,7 @@
+Makefile.in
+Makefile
+.deps
+.libs
+mono-cov.lo
+libmono-profiler-cov.la
+.cvsignore
diff --git a/mono/tests/Makefile.am b/mono/tests/Makefile.am
index 4341d28c0b3..61d4c449a59 100644
--- a/mono/tests/Makefile.am
+++ b/mono/tests/Makefile.am
@@ -168,8 +168,7 @@ TEST_CS_SRC= \
threadpool.cs \
threadpool1.cs \
base-definition.cs \
- bug-27420.cs \
- bug-47295.cs
+ bug-27420.cs
# These only compile with MS CSC
TEST_CSC_SRC= \
@@ -254,7 +253,7 @@ testjit: $(TESTSI_CS) $(TESTSI_IL) $(TESTBS) libtest.la
echo "$${passed} test(s) passed. $${failed} test(s) failed."; \
if [ $$failed > 0 ]; then echo -e "\nFailed tests:\n"; for i in $${failed_tests}; do echo $${i}; done; fi;
-testinterp: $(TESTSI_CS) libtest.la
+testinterp: $(TESTSI_CS) $(TESTSI_IL) libtest.la
@failed=0; \
passed=0; \
failed_tests="";\
diff --git a/mono/tests/checked.cs b/mono/tests/checked.cs
index 87c3f2ab23b..659ed5f834c 100755
--- a/mono/tests/checked.cs
+++ b/mono/tests/checked.cs
@@ -93,96 +93,8 @@ namespace test {
if (ui != 100000)
return -6;
-
- // Check mul.ovf
- checked {
- int l;
- int m;
-
- int[][] cases = new int [][] {
- new int [] {0, 0, 0},
- new int [] {-5, 0, 0},
- new int [] {3, -5, -15},
- new int [] {3, 5, 15},
- new int [] {-3, -5, 15},
- new int [] {-3, 5, -15},
- new int [] {-1, 32767, -32767},
- new int [] {32767, -1, -32767}};
-
-
- for (int j = 0; j < cases.Length; ++j)
- if (cases [j][0] * cases [j][1] != cases [j][2])
- return -7 - j;
- }
-
- checked {
- int j;
- int k;
-
- j = k = 0;
- if (j * k != 0)
- return -7;
-
- j = -5;
- k = 0;
- if (j * k != 0)
- return -8;
-
- j = 0;
- k = -5;
- if (j * k != 0)
- return -9;
-
- j = 3;
- k = -5;
- if (j * k != -15)
- return -10;
-
- j = 3;
- k = 5;
- if (j * k != 15)
- return -11;
-
- j = -3;
- k = -5;
- if (j * k != 15)
- return -12;
-
- j = -3;
- k = 5;
- if (j * k != -15)
- return -13;
-
- j = -1;
- k = 32767;
- if (j * k != -32767)
- return -14;
-
- j = 32767;
- k = -1;
- if (j * k != -32767)
- return -15;
- }
-
- checked {
- long l;
- long m;
-
- long[][] cases = new long [][] {
- new long [] {0, 0, 0},
- new long [] {-5, 0, 0},
- new long [] {3, -5, -15},
- new long [] {3, 5, 15},
- new long [] {-3, -5, 15},
- new long [] {-3, 5, -15},
- new long [] {-1, 2147483647, -2147483647},
- new long [] {2147483647, -1, -2147483647}};
-
- for (int j = 0; j < cases.Length; ++j)
- if (cases [j][0] * cases [j][1] != cases [j][2])
- return -15 - j;
- }
-
+
+
Console.WriteLine("test-ok");
return 0;
diff --git a/samples/.cvsignore b/samples/.cvsignore
new file mode 100644
index 00000000000..0cf0c5381c3
--- /dev/null
+++ b/samples/.cvsignore
@@ -0,0 +1,3 @@
+Makefile.in
+Makefile
+.cvsignore
diff --git a/scripts/wsdl.in b/scripts/wsdl.in
new file mode 100644
index 00000000000..b8294982ed7
--- /dev/null
+++ b/scripts/wsdl.in
@@ -0,0 +1,2 @@
+#!/bin/sh
+@bindir@/@mono_interp@ @bindir@/wsdl.exe "$@"
diff --git a/web/bugs b/web/bugs
new file mode 100644
index 00000000000..bfb06a1883e
--- /dev/null
+++ b/web/bugs
@@ -0,0 +1,69 @@
+* Bug reporting
+
+ To report bugs you need to create a <a
+ href="http://bugzilla.ximian.com/createaccount.cgi">Bugzilla
+ Account</a>.
+
+ Here are some convenient shortcuts to browse or add bug reports.
+
+ <ul>
+ * <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FClass+Libraries&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&newqueryname=&form_name=query&order=bugs.priority%2C%20bugs.bug_id">[Query]</> <a href="http://bugzilla.ximian.com/enter_bug.cgi?product=Mono%2FClass%20Libraries">[Add]</a> Class Libraries
+
+ * <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FAssembler&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">[Query]</a> <a href="http://bugzilla.ximian.com/enter_bug.cgi?product=Mono%2FAssembler">[Add]</a> IL Assembler.
+
+ * <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FMCS&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">[Query]</a> <a href="http://bugzilla.ximian.com/enter_bug.cgi?product=Mono%2FMCS">[Add]</a> C# Compiler.
+
+ * <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FRuntime&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">[Query]</a> <a href="http://bugzilla.ximian.com/enter_bug.cgi?product=Mono%2FRuntime">[Add]</a> Runtime
+
+ * <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FDoctools&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">[Query]</a> <a href="http://bugzilla.ximian.com/enter_bug.cgi?product=Mono%2FDoctools">[Add]</a> Documentation system.
+
+ * <a href="http://bugzilla.ximian.com/buglist.cgi?product=gtk%23&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">[Query]</a> <a href="http://bugzilla.ximian.com/enter_bug.cgi?product=gtk%23">[Add]</a> Gtk#
+
+ * <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FDebugger&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">[Query]</a> <a href="http://bugzilla.ximian.com/enter_bug.cgi?product=Mono%2FDebugger">[Add]</a> Debugger.
+
+ * <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FClass+Libraries&product=Mono%2FMCS&product=Mono%2FRuntime&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&order=%27Importance%27&form_name=query">[Query]</a> All core components.
+ </ul>
+
+<a name="goodbugreport"/>
+** How to make good bug reports
+
+ <ol>
+ * Submit a test case, the smaller it is, the better
+
+ * Use <a href="http://bugzilla.ximian.com">
+ http://bugzilla.ximian.com</a> to report the bug.
+
+ <p>In <b>addition</b> to bugzilla, posting to the list is
+ fine if the bug merits larger exposure or design
+ discussions to solve; posting to the list twice or more
+ is just a way to annoy people and make them waste time,
+ specially when you start a new thread about it.
+
+ * If the test involves libraries or assemblies that are
+ not part of mono, add info about where to download all
+ the dependencies, and how to compile/install them.
+
+ * If compiling the test case requires more than:
+ <pre> mcs test.cs </pre>
+ provide the <b>full command line</b> you used to compile
+ the test.
+
+ * If running the test requires more than:
+ <pre> mono test.exe </pre>
+ provide the <b>full command line</b> needed to replicate
+ the bug.
+
+ * Provide info about the version of the software you're
+ using (both mono and the operating system or relevant
+ libraries).
+
+ * Provide the output you expect the test case to produce.
+
+ * Provide the actual output <b>you</b> get from the test case.
+ </ol>
+
+ A good bug report complies with at least 6 items from the list.
+ If your bug report complies with 3 or less items, it is very
+ poor and it means it will take much more time to fix (when it's
+ not ignored).
+
diff --git a/web/download b/web/download
index 4c14608c516..26f6380b3fb 100644
--- a/web/download
+++ b/web/download
@@ -12,98 +12,7 @@
href="http://www.go-mono.org/mono-beginning.html">Resources/Beginning
section</a>, the <a
href="http://www.go-mono.org/faq.html">FAQ</a>.
- <table>
- <tbody>
- <tr bgcolor="#DDDDDD">
- <td>
- <b>Release 0.26</b><br>
- <a href="archive/mono-0.26.html">Release notes</a><br>
- Aug 14, 2003
- </td>
- <td>
- <table cellspacing="1" cellpadding="3">
- <tr bgcolor="#BBBBBB">
- <td>
- <b>Source Code</b>
- </td>
- <td>
- <ul>
- <li><a href="archive/mcs-0.26.tar.gz">Mono Class Libraries and C# Compiler.</a>
- <li><a href="archive/mono-0.26.tar.gz">Mono Runtime</a>
- <li><a href="archive/xsp-0.5.tar.gz">XSP web server (0.5)</a>
- <li><a href="archive/mod_mono-0.4.tar.gz">Apache Mono module (mod_mono)</a>
- <li><a href="archive/monodoc-0.6.tar.gz">MonoDoc 0.6</a>
- </ul>
- </td>
- </tr>
- <tr bgcolor="#BBBBBB">
- <td>
- <b>Source RPMs</b><br>
- (No RPMS for XSP).
- </td>
- <td>
- <ul>
- <li><a href="archive/redhat-90-i386/mono-0.26-1.ximian.6.1.src.rpm">mono-0.26-1.src.rpm (RH9)</a>
- <li><a href="archive/redhat-90-i386/mono-0.26-1.ximian.5.1.src.rpm">mono-0.26-1.src.rpm (RH8)</a>
- </ul>
- </td>
- </tr>
- <tr>
- <td></td>
- </tr>
- <tr>
- <td bgcolor="#999999">
- <img src="images/redhat-36.gif"><b>Red Hat 9.0/x86</b>
- <ul>
- <li><a href="archive/redhat-90-i386/mono-0.26-1.ximian.6.1.i386.rpm">mono-0.26-1.ximian.6.1.i386.rpm</a>
- <li><a href="archive/redhat-90-i386/mono-devel-0.26-1.ximian.6.1.i386.rpm">mono-devel-0.26-1.ximian.6.1.i386.rpm</a>
- <li><a href="archive/redhat-90-i386/mono-debuginfo-0.26-1.ximian.6.1.i386.rpm">mono-debuginfo-0.26-1.i386.rpm</a>
- <br>
- <li><a href="archive/redhat-90-i386/libpixregion-0.1.0-1.ximian.6.1.i386.rpm">libpixregion-0.1.0-1.ximian.6.1.i386.rpm</a>
- <li><a href="archive/redhat-90-i386/libpixregion-debuginfo-0.1.0-1.ximian.6.1.i386.rpm">libpixregion-debuginfo-0.1.0-1.ximian.6.1.i386.rpm</a>
- <li><a href="archive/redhat-90-i386/libic-0.1.0-1.ximian.6.1.i386.rpm">libic-0.1.0-1.ximian.6.1.i386.rpm</a>
- <li><a href="archive/redhat-90-i386/libic-debuginfo-0.1.0-1.ximian.6.1.i386.rpm">libic-debuginfo-0.1.0-1.ximian.6.1.i386.rpm</a>
- <li><a href="archive/redhat-90-i386/xc-0.1.0-1.ximian.6.1.i386.rpm">xc-0.1.0-1.ximian.6.1.i386.rpm</a>
- <li><a href="archive/redhat-90-i386/xc-debuginfo-0.1.0-1.ximian.6.1.i386.rpm">xc-debuginfo-0.1.0-1.ximian.6.1.i386.rpm</a>
- <li><a href="archive/redhat-90-i386/xr-0.1.0-1.ximian.6.1.i386.rpm">xr-0.1.0-1.ximian.6.1.i386.rpm</a>
- <li><a href="archive/redhat-90-i386/xr-debuginfo-0.1.0-1.ximian.6.1.i386.rpm">xr-debuginfo-0.1.0-1.ximian.6.1.i386.rpm</a>
- <br>
- <li><a href="archive/redhat-90-i386/monodoc-0.6-1.ximian.6.1.i386.rpm">monodoc-0.6-1.ximian.6.1.i386.rpm</a> (To be used only with CVS gtk-sharp)
- <li><a href="archive/redhat-90-i386/monodoc-debuginfo-0.5-1.ximian.6.1.i386.rpm">monodoc-debuginfo-0.5-1.ximian.6.1.i386.rpm</a>
- <li><a href="archive/mono-wine-20030318-1.ximian.6.2.i386.rpm">mono-wine-20030318-1.ximian.6.2.i386.rpm</a>
- <li><a href="archive/mono-wine-debuginfo-20030318-1.ximian.6.2.i386.rpm">mono-wine-debuginfo-20030318-1.ximian.6.2.i386.rpm</a>
- </ul>
- </td>
- <td bgcolor="#999999">
- <img src="images/redhat-36.gif"><b>Red Hat 8.0/x86</b>
- <ul>
- <li><a href="archive/redhat-80-i386/mono-0.26-1.ximian.5.1.i386.rpm">mono-0.26-1.ximian.5.1.i386.rpm</a>
- <li><a href="archive/redhat-80-i386/mono-devel-0.26-1.ximian.5.1.i386.rpm">mono-devel-0.26-1.ximian.5.1.i386.rpm</a>
- <br>
- <li><a href="archive/redhat-80-i386/monodoc-0.5-1.ximian.5.1.i386.rpm">monodoc-0.5-1.ximian.5.1.i386.rpm</a> (To be used only with CVS gtk-sharp)
- <li><a href="archive/mono-wine-20030318-1.ximian.5.2.i386.rpm">mono-wine-20030318-1.ximian.5.2.i386.rpm</a>
- </ul>
- </td>
- </tr>
- <tr>
- <td bgcolor="#999999">
- <img src="images/debian-36.gif"><b>Debian</b>
- <ul>
- <li><a href="http://www.debianplanet.com/mono/">Debian Packages here.</a>
- </ul>
- </td>
- <td bgcolor="#999999">
- <img src="images/mandrake-36.gif"><b>Mandrake 9.1/x86</b>
- <ul>
- <li><a href="archive/mandrake-91-i586/mono-0.26-1.ximian.6.1.i586.rpm">mono-0.26-1.ximian.6.1.i586.rpm</a>
- <li><a href="archive/mandrake-91-i586/mono-devel-0.26-1.ximian.6.1.i586.rpm">mono-devel-0.26-1.ximian.6.1.i586.rpm</a>
-<!-- <li><a href="archive/mandrake-91-i586/monodoc-0.5-1.ximian.6.1.i586.rpm">monodoc-0.5-1.ximian.6.1.i586.rpm</a> -->
- </ul>
- </td>
- </tr>
- </table>
- </td>
<table>
<tbody>
<tr bgcolor="#DDDDDD">
@@ -1271,4 +1180,4 @@ make install
Notice that following the above procedure does not require you
to manually install the software in the `mcs' directory, as
- the relevant files will be copied by the `mono' makefiles. \ No newline at end of file
+ the relevant files will be copied by the `mono' makefiles.
diff --git a/web/index b/web/index
index 4f27aaa1c6a..7138e25e740 100644
--- a/web/index
+++ b/web/index
@@ -151,21 +151,6 @@
</tr>
</table>
-@item Aug 14th, 2003: Mono 0.26 has been released
-
- A new version of Mono is available, the new features include:
- <a href="http://www.cairographics.org/">Cairo support</a>, <a
- href="http://remoting-corba.sf.net">Remoting.Corba</a>
- support, as well as a managed XSLT implementation.
-
- Existing features have been improved vastly: better
- Windows.Forms, runtime, faster compiler, web services, better
- compliance to the spec and more.
-
- Check out the <a
- href="http://www.go-mono.com/archive/mono-0.26.html">Release
- notes</a> for details.
-
@item Aug 9th, 2003: Python for .NET Preview 2 available; Mono Documentation site up.
Brian Lloyd has <a
diff --git a/web/mysql b/web/mysql
index 7b0a4d5811b..56c5f112950 100755
--- a/web/mysql
+++ b/web/mysql
@@ -43,7 +43,7 @@
in the Microsoft .NET Environment</a> is an article
by Mr. Venu who is a MySQL AB developer.</li>
- <p>Testing for Mono's Mono.Data.MySql and ByteFX's ByteFX.Data.MySqlClient is below.
+ <p>Testing for Mono's Mono.Data.MySql and ByteFX's ByteFX.Data.MySQLClient is below.
** Current Status
@@ -51,7 +51,7 @@
<ul>
- <li>ByteFX.Data.MySqlClient
+ <li>ByteFX.Data.MySQLClient
<ul>
<li>Build and Runs on Microsoft .NET and Mono</li>
<li>Works with SQL# (command-line and GTK# GUI versions)</li>
@@ -109,7 +109,7 @@
The current plan for the MySQL data providers:
<ul>
- <li>ByteFX.Data.MySqlClient
+ <li>ByteFX.Data.MySQLClient
<ul>
<li>Testing and fixes</li>
<li>Implement missing features</li>
@@ -163,7 +163,7 @@
<pre>
using System;
using System.Data;
- using ByteFX.Data.MySqlClient;
+ using ByteFX.Data.MySQLClient;
public class Test
{
@@ -175,7 +175,7 @@
"User ID=myuserid;" +
"Password=mypassword;";
IDbConnection dbcon;
- dbcon = new MySqlConnection(connectionString);
+ dbcon = new MySQLConnection(connectionString);
dbcon.Open();
IDbCommand dbcmd = dbcon.CreateCommand();
// requires a table to be created named employee
diff --git a/web/pending-classes.in b/web/pending-classes.in
deleted file mode 100644
index 1cdb5a4cb36..00000000000
--- a/web/pending-classes.in
+++ /dev/null
@@ -1,246 +0,0 @@
-System.Object
-System.Exception
-System.ValueType
-System.Delegate
-System.MulticastDelegate
-System.Enum
-System.Activator
-System.ArgIterator
-System.__ComObject
-System.TypedReference
-System.Security.AllowPartiallyTrustedCallersAttribute
-System.Runtime.Serialization.Formatter
-System.Runtime.Serialization.FormatterConverter
-System.Runtime.Serialization.FormatterServices
-System.Runtime.Serialization.ObjectIDGenerator
-System.Runtime.Serialization.ObjectManager
-System.Reflection.ModuleResolveEventHandler
-System.Reflection.Pointer
-System.Globalization.CompareInfo
-System.Globalization.HebrewCalendar
-System.Globalization.HijriCalendar
-System.Globalization.JapaneseCalendar
-System.Globalization.KoreanCalendar
-System.Globalization.SortKey
-System.Globalization.StringInfo
-System.Globalization.TaiwanCalendar
-System.Globalization.TextElementEnumerator
-System.Globalization.TextInfo
-System.Globalization.ThaiBuddhistCalendar
-System.IO.IsolatedStorage.IsolatedStorageFile
-System.Reflection.Emit.MethodRental
-System.Runtime.CompilerServices.AccessedThroughPropertyAttribute
-System.Runtime.CompilerServices.CallConvCdecl
-System.Runtime.CompilerServices.CallConvStdcall
-System.Runtime.CompilerServices.CallConvThiscall
-System.Runtime.CompilerServices.CallConvFastcall
-System.Runtime.CompilerServices.CustomConstantAttribute
-System.Runtime.CompilerServices.DateTimeConstantAttribute
-System.Runtime.CompilerServices.DiscardableAttribute
-System.Runtime.CompilerServices.DecimalConstantAttribute
-System.Runtime.CompilerServices.CompilationRelaxationsAttribute
-System.Runtime.CompilerServices.CompilerGlobalScopeAttribute
-System.Runtime.CompilerServices.IDispatchConstantAttribute
-System.Runtime.CompilerServices.IsVolatile
-System.Runtime.CompilerServices.IUnknownConstantAttribute
-System.Runtime.CompilerServices.RequiredAttributeAttribute
-System.Runtime.InteropServices.ArrayWithOffset
-System.Runtime.InteropServices.DispIdAttribute
-System.Runtime.InteropServices.ClassInterfaceType
-System.Runtime.InteropServices.ClassInterfaceAttribute
-System.Runtime.InteropServices.ComVisibleAttribute
-System.Runtime.InteropServices.LCIDConversionAttribute
-System.Runtime.InteropServices.ComRegisterFunctionAttribute
-System.Runtime.InteropServices.ComUnregisterFunctionAttribute
-System.Runtime.InteropServices.ProgIdAttribute
-System.Runtime.InteropServices.ImportedFromTypeLibAttribute
-System.Runtime.InteropServices.IDispatchImplType
-System.Runtime.InteropServices.IDispatchImplAttribute
-System.Runtime.InteropServices.ComSourceInterfacesAttribute
-System.Runtime.InteropServices.ComConversionLossAttribute
-System.Runtime.InteropServices.TypeLibTypeFlags
-System.Runtime.InteropServices.TypeLibFuncFlags
-System.Runtime.InteropServices.TypeLibVarFlags
-System.Runtime.InteropServices.TypeLibTypeAttribute
-System.Runtime.InteropServices.TypeLibFuncAttribute
-System.Runtime.InteropServices.TypeLibVarAttribute
-System.Runtime.InteropServices.ComImportAttribute
-System.Runtime.InteropServices.PreserveSigAttribute
-System.Runtime.InteropServices.ComAliasNameAttribute
-System.Runtime.InteropServices.AutomationProxyAttribute
-System.Runtime.InteropServices.PrimaryInteropAssemblyAttribute
-System.Runtime.InteropServices.CoClassAttribute
-System.Runtime.InteropServices.ComEventInterfaceAttribute
-System.Runtime.InteropServices.COMException
-System.Runtime.InteropServices.ComMemberType
-System.Runtime.InteropServices.CurrencyWrapper
-System.Runtime.InteropServices.DispatchWrapper
-System.Runtime.InteropServices.ErrorWrapper
-System.Runtime.InteropServices.ExtensibleClassFactory
-System.Runtime.InteropServices.HandleRef
-System.Runtime.InteropServices.InvalidComObjectException
-System.Runtime.InteropServices.InvalidOleVariantTypeException
-System.Runtime.InteropServices.TypeLibImporterFlags
-System.Runtime.InteropServices.ExporterEventKind
-System.Runtime.InteropServices.ITypeLibExporterNotifySink
-System.Runtime.InteropServices.ITypeLibConverter
-System.Runtime.InteropServices.MarshalDirectiveException
-System.Runtime.InteropServices.ObjectCreationDelegate
-System.Runtime.InteropServices.RuntimeEnvironment
-System.Runtime.InteropServices.RegistrationServices
-System.Runtime.InteropServices.SafeArrayRankMismatchException
-System.Runtime.InteropServices.SafeArrayTypeMismatchException
-System.Runtime.InteropServices.SEHException
-System.Runtime.InteropServices.TypeLibConverter
-System.Runtime.InteropServices.BIND_OPTS
-System.Runtime.InteropServices.UCOMIBindCtx
-System.Runtime.InteropServices.UCOMIConnectionPointContainer
-System.Runtime.InteropServices.UCOMIConnectionPoint
-System.Runtime.InteropServices.UCOMIEnumMoniker
-System.Runtime.InteropServices.CONNECTDATA
-System.Runtime.InteropServices.UCOMIEnumConnections
-System.Runtime.InteropServices.UCOMIEnumConnectionPoints
-System.Runtime.InteropServices.UCOMIEnumString
-System.Runtime.InteropServices.UCOMIEnumVARIANT
-System.Runtime.InteropServices.FILETIME
-System.Runtime.InteropServices.UCOMIMoniker
-System.Runtime.InteropServices.UCOMIPersistFile
-System.Runtime.InteropServices.UCOMIRunningObjectTable
-System.Runtime.InteropServices.STATSTG
-System.Runtime.InteropServices.UCOMIStream
-System.Runtime.InteropServices.DESCKIND
-System.Runtime.InteropServices.BINDPTR
-System.Runtime.InteropServices.UCOMITypeComp
-System.Runtime.InteropServices.TYPEKIND
-System.Runtime.InteropServices.TYPEFLAGS
-System.Runtime.InteropServices.IMPLTYPEFLAGS
-System.Runtime.InteropServices.TYPEATTR
-System.Runtime.InteropServices.FUNCDESC
-System.Runtime.InteropServices.IDLFLAG
-System.Runtime.InteropServices.IDLDESC
-System.Runtime.InteropServices.PARAMFLAG
-System.Runtime.InteropServices.PARAMDESC
-System.Runtime.InteropServices.TYPEDESC
-System.Runtime.InteropServices.ELEMDESC
-System.Runtime.InteropServices.VARDESC
-System.Runtime.InteropServices.DISPPARAMS
-System.Runtime.InteropServices.EXCEPINFO
-System.Runtime.InteropServices.FUNCKIND
-System.Runtime.InteropServices.INVOKEKIND
-System.Runtime.InteropServices.CALLCONV
-System.Runtime.InteropServices.FUNCFLAGS
-System.Runtime.InteropServices.VARFLAGS
-System.Runtime.InteropServices.UCOMITypeInfo
-System.Runtime.InteropServices.SYSKIND
-System.Runtime.InteropServices.LIBFLAGS
-System.Runtime.InteropServices.TYPELIBATTR
-System.Runtime.InteropServices.UCOMITypeLib
-System.Runtime.InteropServices.UnknownWrapper
-System.Runtime.Remoting.IObjectHandle
-System.Runtime.Remoting.IRemotingTypeInfo
-System.Runtime.Remoting.IChannelInfo
-System.Runtime.Remoting.IEnvoyInfo
-System.Runtime.Remoting.RemotingConfiguration
-System.Runtime.Remoting.TypeEntry
-System.Runtime.Remoting.ActivatedClientTypeEntry
-System.Runtime.Remoting.ActivatedServiceTypeEntry
-System.Runtime.Remoting.WellKnownClientTypeEntry
-System.Runtime.Remoting.WellKnownServiceTypeEntry
-System.Runtime.Remoting.RemotingException
-System.Runtime.Remoting.ServerException
-System.Runtime.Remoting.RemotingTimeoutException
-System.Runtime.Remoting.RemotingServices
-System.Runtime.Remoting.InternalRemotingServices
-System.Runtime.Remoting.SoapServices
-System.Runtime.Remoting.Activation.UrlAttribute
-System.Runtime.Remoting.Messaging.IMessageSink
-System.Runtime.Remoting.Messaging.AsyncResult
-System.Runtime.Remoting.Messaging.CallContext
-System.Runtime.Remoting.Messaging.ILogicalThreadAffinative
-System.Runtime.Remoting.Messaging.InternalMessageWrapper
-System.Runtime.Remoting.Messaging.IMethodCallMessage
-System.Runtime.Remoting.Messaging.MethodCallMessageWrapper
-System.Runtime.Remoting.Messaging.HeaderHandler
-System.Runtime.Remoting.Messaging.IMessageCtrl
-System.Runtime.Remoting.Messaging.IRemotingFormatter
-System.Runtime.Remoting.Messaging.ReturnMessage
-System.Runtime.Remoting.Messaging.MethodCall
-System.Runtime.Remoting.Messaging.ConstructionCall
-System.Runtime.Remoting.Messaging.MethodResponse
-System.Runtime.Remoting.Messaging.ConstructionResponse
-System.Runtime.Remoting.Messaging.MethodReturnMessageWrapper
-System.Runtime.Remoting.Messaging.OneWayAttribute
-System.Runtime.Remoting.Messaging.MessageSurrogateFilter
-System.Runtime.Remoting.Messaging.RemotingSurrogateSelector
-System.Runtime.Remoting.Contexts.CrossContextDelegate
-System.Runtime.Remoting.Contexts.ContextProperty
-System.Runtime.Remoting.Contexts.IContextPropertyActivator
-System.Runtime.Remoting.Contexts.IContributeClientContextSink
-System.Runtime.Remoting.Contexts.IContributeDynamicSink
-System.Runtime.Remoting.Contexts.IContributeEnvoySink
-System.Runtime.Remoting.Contexts.IContributeObjectSink
-System.Runtime.Remoting.Contexts.IContributeServerContextSink
-System.Runtime.Serialization.Formatters.InternalRM
-System.Runtime.Serialization.Formatters.InternalST
-System.Runtime.Serialization.Formatters.SoapMessage
-System.Runtime.Serialization.Formatters.SoapFault
-System.Runtime.Serialization.Formatters.ServerFault
-System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-System.Security.Cryptography.CryptoConfig
-System.Security.Cryptography.KeyedHashAlgorithm
-System.Security.Cryptography.HMACSHA1
-System.Security.Cryptography.MACTripleDES
-System.Security.Cryptography.MaskGenerationMethod
-System.Security.Cryptography.PasswordDeriveBytes
-System.Security.Cryptography.PKCS1MaskGenerationMethod
-System.Security.Cryptography.RC2
-System.Security.Cryptography.RC2CryptoServiceProvider
-System.Security.Cryptography.RSACryptoServiceProvider
-System.Security.Cryptography.RSAOAEPKeyExchangeDeformatter
-System.Security.Cryptography.RSAOAEPKeyExchangeFormatter
-System.Security.Cryptography.RSAPKCS1KeyExchangeDeformatter
-System.Security.Cryptography.RSAPKCS1KeyExchangeFormatter
-System.Security.Cryptography.RSAPKCS1SignatureDeformatter
-System.Security.Cryptography.RSAPKCS1SignatureFormatter
-System.Security.Cryptography.SHA1Managed
-System.Security.Cryptography.TripleDES
-System.Security.Cryptography.TripleDESCryptoServiceProvider
-System.Security.Permissions.EnvironmentPermission
-System.Security.Permissions.FileDialogPermission
-System.Security.Permissions.IsolatedStorageFilePermission
-System.Security.Permissions.PrincipalPermissionAttribute
-System.Security.Permissions.SecurityPermissionAttribute
-System.Security.Permissions.PublisherIdentityPermissionAttribute
-System.Security.Permissions.PublisherIdentityPermission
-System.Security.Permissions.ReflectionPermission
-System.Security.Permissions.RegistryPermission
-System.Security.Permissions.PrincipalPermission
-System.Security.Permissions.SiteIdentityPermission
-System.Security.Permissions.StrongNameIdentityPermission
-System.Security.Permissions.StrongNamePublicKeyBlob
-System.Security.Permissions.UIPermission
-System.Security.Permissions.UrlIdentityPermission
-System.Security.Permissions.ZoneIdentityPermission
-System.Security.Policy.ApplicationDirectory
-System.Security.Policy.ApplicationDirectoryMembershipCondition
-System.Security.Policy.FirstMatchCodeGroup
-System.Security.Policy.Hash
-System.Security.Policy.HashMembershipCondition
-System.Security.Policy.NetCodeGroup
-System.Security.Policy.PermissionRequestEvidence
-System.Security.Policy.Publisher
-System.Security.Policy.PublisherMembershipCondition
-System.Security.Policy.Site
-System.Security.Policy.SiteMembershipCondition
-System.Security.Policy.StrongName
-System.Security.Policy.StrongNameMembershipCondition
-System.Security.Policy.UnionCodeGroup
-System.Security.Policy.Url
-System.Security.Policy.UrlMembershipCondition
-System.Security.Policy.Zone
-System.Security.Policy.ZoneMembershipCondition
-System.Security.Principal.WindowsIdentity
-System.Security.Principal.WindowsImpersonationContext
-System.Security.Principal.WindowsPrincipal
-System.Threading.CompressedStack
-
diff --git a/web/web/makefile b/web/web/makefile
index ed5b87ac8a5..90fe990fec1 100644
--- a/web/web/makefile
+++ b/web/web/makefile
@@ -64,6 +64,20 @@ OBJECTS= \
deploy/testing.html \
deploy/tools.html \
deploy/winforms.html \
+ deploy/class-status.html \
+ deploy/class-status-corlib.html \
+ deploy/class-status-System.html \
+ deploy/class-status-System.Xml.html \
+ deploy/class-status-System.Drawing.html \
+ deploy/class-status-System.Data.html \
+ deploy/class-status-System.Web.html \
+ deploy/class-status-System.Web.Services.html \
+ deploy/class-status-Microsoft.VisualBasic.html \
+ deploy/class-status-System.EnterpriseServices.html \
+ deploy/class-status-System.Runtime.Serialization.Formatters.Soap.html \
+ deploy/class-status-System.Security.html \
+ deploy/class-status-System.Windows.Forms.html \
+ deploy/class-status-Cscompmgd.html \
deploy/class-library.html \
deploy/classlib-doc.html
@@ -77,7 +91,7 @@ NON_HTML_SOURCES= \
../mono-build.sh \
../mono-build-w32.sh
-all: $(OBJECT) deploy/index.rss ../team
+all: $(OBJECTS) deploy/index.rss ../team
perl process.pl commands template.html.in deploy
-mkdir deploy/team
cp team/*png deploy/team
diff --git a/web/web/team.xml b/web/web/team.xml
index 7444d88f082..ccc9d97a16d 100644
--- a/web/web/team.xml
+++ b/web/web/team.xml
@@ -1453,7 +1453,7 @@
<e-mail>peter@newton.cx</e-mail>
- <image>peterw.png</image>
+ <image>none.png</image>
<location>Cambridge, MA</location>
diff --git a/web/web/template.html.in b/web/web/template.html.in
index 5c25278530d..2aab918a0a5 100644
--- a/web/web/template.html.in
+++ b/web/web/template.html.in
@@ -38,25 +38,11 @@
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
- <td><img src="images/pixel.gif" alt=""></td><!-- left border
- -->
- <td colspan="4">
- <table>
- <tr>
- <td>
- <a href="http://www.go-mono.com"><img
- src="images/mono-new.gif" alt="mono-logo" border="0"></a>
- </td>
- <td>
- <a class="navi0" href="download.html">Downloads</a> |
- <a class="navi0" href="screenshots.html">Screenshots</a> |
- <a class="navi0" href="http://mono.ximian.com:8080">API Docs</a>
- </td>
- </tr>
- </table>
- </td>
- <td><img src="images/pixel.gif" alt=""></td><!-- right border
- -->
+ <td><img src="images/pixel.gif" alt=""></td><!-- left border -->
+ <td colspan="4">
+ <a href="http://www.go-mono.com"><img src="images/mono-new.gif"
+ alt="mono-logo" border="0"></a></td>
+ <td><img src="images/pixel.gif" alt=""></td><!-- right border -->
</tr>
<tr>
<td><img src="images/pixel.gif" width="1" height="1" alt=""></td>