Merge pull request #3042 from lambdageek/dev/monoerror-upgrade_remote_class
authorAleksey Kliger (λgeek) <akliger@gmail.com>
Wed, 25 May 2016 14:12:25 +0000 (10:12 -0400)
committerAleksey Kliger (λgeek) <akliger@gmail.com>
Wed, 25 May 2016 14:12:25 +0000 (10:12 -0400)
[remoting] Pass MonoError to mono_upgrade_remote_class

42 files changed:
build-libs.bat [new file with mode: 0644]
build-libs.sh [new file with mode: 0755]
configure.ac
mcs/class/Commons.Xml.Relaxng/Commons.Xml.Relaxng-net_4_x.csproj
mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite-net_4_x.csproj
mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap-net_4_x.csproj
mcs/class/System.ComponentModel.Composition.4.5/System.ComponentModel.Composition-net_4_x.csproj
mcs/class/System.Data.Services.Client/System.Data.Services.Client-net_4_x.csproj
mcs/class/System.Json.Microsoft/System.Json.Microsoft-net_4_x.csproj
mcs/class/System.Net.Http.Formatting/System.Net.Http.Formatting-net_4_x.csproj
mcs/class/System.Net.Http/CFNetworkHandler.cs
mcs/class/System.Net.Http/System.Net.Http/HttpClientHandler.cs
mcs/class/System.Net.Http/Test/System.Net.Http/HttpClientTest.cs
mcs/class/System.Reactive.Core/System.Reactive.Core-net_4_x.csproj
mcs/class/System.Reactive.Linq/System.Reactive.Linq-net_4_x.csproj
mcs/class/System.Reactive.PlatformServices/System.Reactive.PlatformServices-net_4_x.csproj
mcs/class/System.Reactive.Providers/System.Reactive.Providers-net_4_x.csproj
mcs/class/System.Reactive.Windows.Threading/System.Reactive.Windows.Threading-net_4_x.csproj
mcs/class/System.Web.Http/System.Web.Http-net_4_x.csproj
mcs/class/System.Web.Mvc3/System.Web.Mvc3-net_4_x.csproj
mcs/class/System.Web.Razor/System.Web.Razor-net_4_x.csproj
mcs/class/System.Web.WebPages.Deployment/System.Web.WebPages.Deployment-net_4_x.csproj
mcs/class/System.Web.WebPages.Razor/System.Web.WebPages.Razor-net_4_x.csproj
mcs/class/System.Web.WebPages/System.Web.WebPages-net_4_x.csproj
mcs/class/System.Web/System.Web-net_4_x.csproj
mcs/class/System.Web/System.Web-plainweb-net_4_x.csproj
mcs/class/System.Windows.Forms/System.Windows.Forms-net_4_x.csproj
mcs/class/WindowsBase/System.IO.Packaging/ZipPackage.cs
mcs/nunit24/ClientUtilities/util/nunit.util-net_4_x.csproj
mono/metadata/threads.c
mono/mini/Makefile.am.in
mono/mini/cfgdump.c
mono/mini/method-to-ir.c
mono/mini/mini-amd64-gsharedvt.c
mono/mini/mini-amd64.h
mono/mini/mini-generic-sharing.c
mono/mini/mini-llvm.c
mono/mini/tramp-amd64.c
mono/tests/libtest.c
msvc/scripts/Commons.Xml.Relaxng.pre [new file with mode: 0644]
msvc/scripts/genproj.cs
msvc/scripts/prepare.cs

diff --git a/build-libs.bat b/build-libs.bat
new file mode 100644 (file)
index 0000000..df0d978
--- /dev/null
@@ -0,0 +1,4 @@
+@echo off
+cd mcs\jay
+vcbuild jay.vcxproj
+msbuild net_4_x.sln
diff --git a/build-libs.sh b/build-libs.sh
new file mode 100755 (executable)
index 0000000..17b2e16
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+(cd mcs/jay; make)
+msbuild net_4_x.sln
index 59107bef5755e06e5703d90ef0992c1b5ed6011f..cff61275963b3e8a01df250650ea8cd0d47666b5 100644 (file)
@@ -2906,6 +2906,7 @@ case "$host" in
                TARGET=ARM64
                arch_target=arm64
                boehm_supported=false
+               AOT_SUPPORTED="yes"
                ;;
        s390x-*-linux*)
                TARGET=S390X;
index 3b0863d250127098bde4ac814aaa9a8cd7a80ff0..77b7e2ba8a3d69c0b41cec92c595300d6fcbdbfd 100644 (file)
   -->\r
   <PropertyGroup>\r
     <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+$(ProjectDir)\..\..\jay\jay -ct &lt; $(ProjectDir)\..\..\jay\skeleton.cs $(ProjectDir)\Commons.Xml.Relaxng.Rnc\RncParser.jay > $(ProjectDir)\Commons.Xml.Relaxng.Rnc\RncParser.cs
 
     </PreBuildEvent>\r
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
+$(ProjectDir)\..\..\jay\jay.exe -ct &lt; $(ProjectDir)\..\..\jay\skeleton.cs $(ProjectDir)\Commons.Xml.Relaxng.Rnc\RncParser.jay > $(ProjectDir)\Commons.Xml.Relaxng.Rnc\RncParser.cs
 \r
     </PreBuildEvent>\r
 \r
index 9b5e7d736ab0d0040f4eb5d5c4d6240129125861..a5ea5e1483dbe2fb90905b1cb95fb81e5a734511 100644 (file)
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="resources/SR.resources">\r
+    <EmbeddedResource Include="resources/SR.resx">\r
       <LogicalName>SR.resources</LogicalName>\r
     </EmbeddedResource>\r
     <EmbeddedResource Include="resources/SQLiteCommand.bmp">\r
index 096323d61e7327d62a23dc12797b0fa167827c47..a5ddfedcf19c40211cfe5c9edb631690504058d8 100644 (file)
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="Novell.Directory.Ldap.Utilclass/ResultCodeMessages.resources">\r
+    <EmbeddedResource Include="Novell.Directory.Ldap.Utilclass/ResultCodeMessages.resx">\r
       <LogicalName>ResultCodeMessages.resources</LogicalName>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
index 8ae3cfccffd8ad7aaf56793aa8528ee6490a716b..bf63d7a400bde6bc2651cb8dc4ff8658b6eb2286 100644 (file)
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="Microsoft.Internal.Strings.resources">\r
+    <EmbeddedResource Include="Microsoft.Internal.Strings.resx">\r
       <LogicalName>Microsoft.Internal.Strings.resources</LogicalName>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
index 3d0f0ea86a53a47c4c7d96a1713b86e9287e80ec..840cebb9105a47ec08497e4471468339da6da5fc 100644 (file)
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="Client/System.Data.Services.Client.resources">\r
+    <EmbeddedResource Include="Client/System.Data.Services.Client.resx">\r
       <LogicalName>System.Data.Services.Client.resources</LogicalName>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
index 08caf0b68652349aeb8d60b0db49784dc7b68f54..9ae3c0813a12f97e79406e2ed6bfc9fac61f9e46 100644 (file)
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="System.Json.Properties.Resources.resources">\r
+    <EmbeddedResource Include="System.Json.Properties.Resources.resx">\r
       <LogicalName>System.Json.Properties.Resources.resources</LogicalName>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
index 78ccedb9aa29d1c884734ae8049d5f1e9cabdeaf..b3e1c9cb5089420cc2662b97ee028b2ab3ed679e 100644 (file)
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="System.Net.Http.Properties.CommonWebApiResources.resources">\r
+    <EmbeddedResource Include="System.Net.Http.Properties.CommonWebApiResources.resx">\r
       <LogicalName>System.Net.Http.Properties.CommonWebApiResources.resources</LogicalName>\r
     </EmbeddedResource>\r
-    <EmbeddedResource Include="System.Net.Http.Properties.Resources.resources">\r
+    <EmbeddedResource Include="System.Net.Http.Properties.Resources.resx">\r
       <LogicalName>System.Net.Http.Properties.Resources.resources</LogicalName>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
index 5723acb0b1cce0f3d80837d87010b6e2f01769a3..2b9a54d7fdc0000eddd99e1658c42c983ed26a63 100644 (file)
@@ -61,7 +61,9 @@ namespace System.Net.Http
                        public void Close ()
                        {
                                CancellationTokenRegistration.Dispose ();
-                               ContentStream.Close ();
+                                if (ContentStream != null) {
+                                    ContentStream.Close ();
+                                }
                        }
                }
 
index 37833bc67086e6b96cbf74f99025feb188174496..94ad2ffb2742945f1914a1a127bd8542367a395e 100644 (file)
@@ -245,8 +245,6 @@ namespace System.Net.Http
                                wr.KeepAlive = request.Headers.ConnectionClose != true;
                        }
 
-                       wr.ServicePoint.Expect100Continue = request.Headers.ExpectContinue == true;
-
                        if (allowAutoRedirect) {
                                wr.AllowAutoRedirect = true;
                                wr.MaximumAutomaticRedirections = maxAutomaticRedirections;
@@ -270,8 +268,13 @@ namespace System.Net.Http
 
                        if (useProxy) {
                                wr.Proxy = proxy;
+                       } else {
+                               // Disables default WebRequest.DefaultWebProxy value
+                               wr.Proxy = null;
                        }
 
+                       wr.ServicePoint.Expect100Continue = request.Headers.ExpectContinue == true;
+
                        // Add request headers
                        var headers = wr.Headers;
                        foreach (var header in request.Headers) {
index 4d9265a6ac76f8e3640e82e2e75e1fa6189b8ee6..aa678a036e6d2f8219e3d89a55695dba90dfdffa 100644 (file)
@@ -150,6 +150,29 @@ namespace MonoTests.System.Net.Http
                        }
                }
 
+               class ThrowOnlyProxy : IWebProxy
+               {
+                       public ICredentials Credentials {
+                               get {
+                                       throw new NotImplementedException ();
+                               }
+
+                               set {
+                                       throw new NotImplementedException ();
+                               }
+                       }
+
+                       public Uri GetProxy (Uri destination)
+                       {
+                               throw new NotImplementedException ();
+                       }
+
+                       public bool IsBypassed (Uri host)
+                       {
+                               throw new NotImplementedException ();
+                       }
+               }
+
                const int WaitTimeout = 5000;
 
                string TestHost, LocalServer;
@@ -297,6 +320,25 @@ namespace MonoTests.System.Net.Http
                        }
                }
 
+               [Test]
+               public void Proxy_Disabled ()
+               {
+                       var pp = WebRequest.DefaultWebProxy;
+
+                       try {
+                               WebRequest.DefaultWebProxy = new ThrowOnlyProxy ();
+
+                               var request = new HttpClientHandler {
+                                       UseProxy = false
+                               };
+
+                               var client = new HttpClient (request);
+                               Assert.IsTrue (client.GetAsync ("http://google.com").Wait (5000), "needs internet access");
+                       } finally {
+                               WebRequest.DefaultWebProxy = pp;
+                       }
+               }
+
                [Test]
                public void Send ()
                {
index ebdde2de08b82c530025f7b770d7ede01177ca19..270278e73392ad1f38bfd4fa75159efae35a8d1d 100644 (file)
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="Strings_Core.resources">\r
+    <EmbeddedResource Include="Strings_Core.resx">\r
       <LogicalName>System.Reactive.Strings_Core.resources</LogicalName>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
index b4ea1eed3cf1eab2db7f5f145e41d05b6f0eb0d5..b13bf98e82b35447d38d666213053dbb57414104 100644 (file)
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="Strings_Linq.resources">\r
+    <EmbeddedResource Include="Strings_Linq.resx">\r
       <LogicalName>System.Reactive.Strings_Linq.resources</LogicalName>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
index 64ed969e3c7745224246000839aeca28f51f2bc2..5e1435c3dfbff4b1e16f32bb99b9f0157bc1a608 100644 (file)
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="Strings_PlatformServices.resources">\r
+    <EmbeddedResource Include="Strings_PlatformServices.resx">\r
       <LogicalName>System.Reactive.Strings_PlatformServices.resources</LogicalName>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
index 6edf8555781cc195fdd1ab8bf2e2f1813225ad2d..2dee913e1134e6ecadf4a426ea7487fbad370342 100644 (file)
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="Strings_Providers.resources">\r
+    <EmbeddedResource Include="Strings_Providers.resx">\r
       <LogicalName>System.Reactive.Strings_Providers.resources</LogicalName>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
index 8f7843093771312d715ee553f2a07fa6704523ee..d8eb8de10da4d91c597f913770b3c4f8b3872ae5 100644 (file)
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="Strings_WindowsThreading.resources">\r
+    <EmbeddedResource Include="Strings_WindowsThreading.resx">\r
       <LogicalName>System.Reactive.Strings_WindowsThreading.resources</LogicalName>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
index 31e60bb0b175dccb9e57e732bc7f044cb7871da6..4cfba6d759e295079f4a192c1bf8976c6ae30158 100644 (file)
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="System.Web.Http.Properties.CommonWebApiResources.resources">\r
+    <EmbeddedResource Include="System.Web.Http.Properties.CommonWebApiResources.resx">\r
       <LogicalName>System.Web.Http.Properties.CommonWebApiResources.resources</LogicalName>\r
     </EmbeddedResource>\r
-    <EmbeddedResource Include="System.Web.Http.Properties.SRResources.resources">\r
+    <EmbeddedResource Include="System.Web.Http.Properties.SRResources.resx">\r
       <LogicalName>System.Web.Http.Properties.SRResources.resources</LogicalName>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
index 73d5328f89889d7098f5c1cd053d01167dcd82b7..3bed8a7d326fb33e7d2c5e2f9ae98d038076022b 100644 (file)
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="Mvc/Resources/MvcResources.resources">\r
+    <EmbeddedResource Include="Mvc/Resources/MvcResources.resx">\r
       <LogicalName>System.Web.Mvc.Resources.MvcResources.resources</LogicalName>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
index fd459922df14da9f76e268815a902093cb905d1f..23422a60b2c4e9ebdda370a42faaaede7642d33a 100644 (file)
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="System.Web.Razor.Resources.RazorResources.resources">\r
+    <EmbeddedResource Include="System.Web.Razor.Resources.RazorResources.resx">\r
       <LogicalName>System.Web.Razor.Resources.RazorResources.resources</LogicalName>\r
     </EmbeddedResource>\r
-    <EmbeddedResource Include="System.Web.Razor.Common.CommonResources.resources">\r
+    <EmbeddedResource Include="System.Web.Razor.Common.CommonResources.resx">\r
       <LogicalName>System.Web.Razor.Common.CommonResources.resources</LogicalName>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
index 16282251ad42b04695d57660ea952730d9d13a46..0aba08155ed3148ea38f47f329a5a9845b5f7022 100644 (file)
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="System.Web.WebPages.Deployment.Common.CommonResources.resources">\r
+    <EmbeddedResource Include="System.Web.WebPages.Deployment.Common.CommonResources.resx">\r
       <LogicalName>System.Web.WebPages.Deployment.Common.CommonResources.resources</LogicalName>\r
     </EmbeddedResource>\r
-    <EmbeddedResource Include="System.Web.WebPages.Deployment.Resources.ConfigurationResources.resources">\r
+    <EmbeddedResource Include="System.Web.WebPages.Deployment.Resources.ConfigurationResources.resx">\r
       <LogicalName>System.Web.WebPages.Deployment.Resources.ConfigurationResources.resources</LogicalName>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
index 6df147742b1dcbf6d98c3574feafbeae524a9a2e..72b548bd2189a2aac937b533cdb5e7a77eeef71d 100644 (file)
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="System.Web.WebPages.Razor.Resources.RazorWebResources.resources">\r
+    <EmbeddedResource Include="System.Web.WebPages.Razor.Resources.RazorWebResources.resx">\r
       <LogicalName>System.Web.WebPages.Razor.Resources.RazorWebResources.resources</LogicalName>\r
     </EmbeddedResource>\r
-    <EmbeddedResource Include="System.Web.WebPages.Razor.Common.CommonResources.resources">\r
+    <EmbeddedResource Include="System.Web.WebPages.Razor.Common.CommonResources.resx">\r
       <LogicalName>System.Web.WebPages.Razor.Common.CommonResources.resources</LogicalName>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
index 6bb28d4513fa8413a8b17c41a96ac9d6d3669ea5..05b00144488613f0ce51aeb6258c64411a8db6f4 100644 (file)
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="System.Web.WebPages.Resources.WebPageResources.resources">\r
+    <EmbeddedResource Include="System.Web.WebPages.Resources.WebPageResources.resx">\r
       <LogicalName>System.Web.WebPages.Resources.WebPageResources.resources</LogicalName>\r
     </EmbeddedResource>\r
-    <EmbeddedResource Include="System.Web.WebPages.Common.CommonResources.resources">\r
+    <EmbeddedResource Include="System.Web.WebPages.Common.CommonResources.resx">\r
       <LogicalName>System.Web.WebPages.Common.CommonResources.resources</LogicalName>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
index 1c4ef9bb5bf6c4f34a26ed2a04943558763ef7a7..0b2f0ba3ea7c1e9e12091f34646cabbf94273f31 100644 (file)
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="resources/TranslationResources.resources">\r
+    <EmbeddedResource Include="resources/TranslationResources.resx">\r
       <LogicalName>TranslationResources.resources</LogicalName>\r
     </EmbeddedResource>\r
     <EmbeddedResource Include="resources/WebUIValidation.js">\r
index 52bfd6d852c655d1b4546896475619cf393ef8bf..6d65c01cc378bbd0ec0b79b4a8a8311e76988f83 100644 (file)
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="resources/TranslationResources.resources">\r
+    <EmbeddedResource Include="resources/TranslationResources.resx">\r
       <LogicalName>TranslationResources.resources</LogicalName>\r
     </EmbeddedResource>\r
     <EmbeddedResource Include="resources/WebUIValidation.js">\r
index c3ca632b42c9c75b5022255e99e282910c6748bb..9e5f97d26276b74d20c3c77c217f01d1faf33e09 100644 (file)
     <EmbeddedResource Include="resources/DnDMove.cur">\r
       <LogicalName>System.Windows.Forms.DnDMove.cur</LogicalName>\r
     </EmbeddedResource>\r
-    <EmbeddedResource Include="resources/keyboards.resources">\r
+    <EmbeddedResource Include="resources/keyboards.resx">\r
       <LogicalName>keyboards.resources</LogicalName>\r
     </EmbeddedResource>\r
     <EmbeddedResource Include="resources/16_computer.png">\r
index 435e1d5ab7cfe656c637725b4d4c9739d3f5dfa3..783350b09344a6943326be5ae5eafa28a5e589b3 100644 (file)
@@ -95,8 +95,10 @@ namespace System.IO.Packaging {
                {
                        // Ensure that all the data has been read out of the package
                        // stream already. Otherwise we'll lose data when we recreate the zip
-                       foreach (ZipPackagePart part in Parts.Values)
-                               part.GetStream ().Dispose ();
+                       foreach (ZipPackagePart part in Parts.Values) {
+                               if (part.Package != null)
+                                       part.GetStream ().Dispose ();
+                       }
                        
                        // Empty the package stream
                        PackageStream.Position = 0;
@@ -107,6 +109,9 @@ namespace System.IO.Packaging {
 
                                // Write all the part streams
                                foreach (ZipPackagePart part in Parts.Values) {
+                                       if (part.Package == null)
+                                               continue;
+
                                        Stream partStream = part.GetStream ();
                                        partStream.Seek (0, SeekOrigin.Begin);
                                        
index 92c8f57f6f221950a8892cad3244819fc2aa6369..c56737e4394a42767e16c8815bec8e03e304a2ca 100644 (file)
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="Transform.resources">\r
+    <EmbeddedResource Include="Transform.resx">\r
       <LogicalName>NUnit.Util.Transform.resources</LogicalName>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
index 50ac9158aae755b6e03de139dc42989f42aa5e38..c245f524eae9b6745d639d4dbc59d17b93df2b48 100644 (file)
@@ -597,7 +597,7 @@ new_thread_with_internal (MonoDomain *domain, MonoInternalThread *internal)
 }
 
 static MonoInternalThread*
-create_internal_thread ()
+create_internal_thread (void)
 {
        MonoError error;
        MonoInternalThread *thread;
@@ -4403,17 +4403,6 @@ mono_alloc_special_static_data_free (GHashTable *special_static_fields)
        mono_threads_unlock ();
 }
 
-static void
-mono_special_static_data_free_slot (guint32 offset, guint32 size)
-{
-       /* Only ever called for ThreadLocal instances */
-       g_assert (ACCESS_SPECIAL_STATIC_OFFSET (offset, type) == SPECIAL_STATIC_OFFSET_TYPE_THREAD);
-
-       mono_threads_lock ();
-       do_free_special_slot (offset, size);
-       mono_threads_unlock ();
-}
-
 #ifdef HOST_WIN32
 static void CALLBACK dummy_apc (ULONG_PTR param)
 {
index 7099579a80c67359b63b32a82a427629cd9b82f4..a2fe45610180ce45a684bc2640412d090339bda5 100755 (executable)
@@ -49,7 +49,7 @@ MINI_RUNTIME = MONO_PATH=$(CLASS) $(RUNTIME_EXECUTABLE)
 RUNTIME_AOTCHECK = MONO_PATH="$(CLASS)$(PLATFORM_PATH_SEPARATOR)." $(RUNTIME_EXECUTABLE)
 
 CSC = $(mcs_topdir)/class/lib/build/mcs.exe
-MCS = CSC_SDK_PATH_DISABLED= $(MINI_RUNTIME) $(CSC) -unsafe -nowarn:0162 -nologo -noconfig -r:$(CLASS)/mscorlib.dll -r:$(CLASS)/System.dll
+MCS = CSC_SDK_PATH_DISABLED= $(MINI_RUNTIME) $(CSC) -unsafe -nowarn:0162 -nologo -noconfig -r:$(CLASS)/mscorlib.dll -r:$(CLASS)/System.dll -r:$(CLASS)/System.Core.dll
 ILASM = $(MINI_RUNTIME) $(CLASS)/ilasm.exe
 
 AM_CFLAGS = \
index 7b9cfd320ab60e682c2356632b61a48507850c7a..fb4f06fb9bed0356940ade628058ec623d250af1 100644 (file)
@@ -401,9 +401,9 @@ instruction_hash (MonoInst *insn)
        res ^= insn->sreg1  << 0x10;
        res ^= insn->sreg2  << 0x14;
        res ^= insn->sreg3  << 0x18;
-       res ^= (guint) insn->next;
-       res ^= (guint) insn->prev;
-       res ^= (guint) insn;
+       res ^= (gsize) insn->next;
+       res ^= (gsize) insn->prev;
+       res ^= (gsize) insn;
        return res;
 }
 
index 4017d42b6df005c735e688aea0d9193dff4dcb1e..b7bb7790fac84a7154b274e145c43cdb53d9c68d 100644 (file)
@@ -4527,6 +4527,9 @@ handle_castclass (MonoCompile *cfg, MonoClass *klass, MonoInst *src, guint8 *ip,
        int context_used;
        MonoInst *klass_inst = NULL, *res;
 
+       if (src->opcode == OP_PCONST && src->inst_p0 == 0)
+               return src;
+
        context_used = mini_class_check_context_used (cfg, klass);
 
        if (!context_used && mini_class_has_reference_variant_generic_argument (cfg, klass, context_used)) {
@@ -4558,7 +4561,7 @@ handle_castclass (MonoCompile *cfg, MonoClass *klass, MonoInst *src, guint8 *ip,
        if (context_used) {
                MonoInst *args [3];
 
-               if(mini_class_has_reference_variant_generic_argument (cfg, klass, context_used) || is_complex_isinst (klass)) {
+               if (mini_class_has_reference_variant_generic_argument (cfg, klass, context_used) || is_complex_isinst (klass)) {
                        MonoInst *cache_ins;
 
                        cache_ins = emit_get_rgctx_klass (cfg, context_used, klass, MONO_RGCTX_INFO_CAST_CACHE);
index dffa9370f27024990fe7e52ab6a01d3128ca4498..2930a31e58526064279b25364aa023b29e8e6acb 100644 (file)
@@ -441,7 +441,10 @@ mono_arch_get_gsharedvt_call_info (gpointer addr, MonoMethodSignature *normal_si
                                case MONO_TYPE_I8:
                                        info->ret_marshal = GSHAREDVT_RET_I8;
                                        break;
-
+                               case MONO_TYPE_GENERICINST:
+                                       g_assert (!mono_type_generic_inst_is_valuetype (ret));
+                                       info->ret_marshal = GSHAREDVT_RET_I8;
+                                       break;
                                default:
                                        g_error ("Gsharedvt can't handle dst type [%d]", (int)sig->ret->type);
                                }
index 33c815d75762d6a97121fb703e0660b844fa6c2d..753c091a3b7963720f010b2f1797b7f6255fa95c 100644 (file)
@@ -402,6 +402,7 @@ typedef struct {
 #define MONO_ARCH_HAVE_SDB_TRAMPOLINES 1
 #define MONO_ARCH_HAVE_PATCH_CODE_NEW 1
 #define MONO_ARCH_HAVE_OP_GENERIC_CLASS_INIT 1
+#define MONO_ARCH_HAVE_GENERAL_RGCTX_LAZY_FETCH_TRAMPOLINE 1
 
 #if defined(TARGET_OSX) || defined(__linux__)
 #define MONO_ARCH_HAVE_UNWIND_BACKTRACE 1
index e778f7561ff100d127adfcd475e76a941fda020b..564c0de7d03b271a30f1663277095a4afb6fa0c5 100644 (file)
@@ -1440,7 +1440,7 @@ mini_get_gsharedvt_wrapper (gboolean gsharedvt_in, gpointer addr, MonoMethodSign
                else
                        wrapper = mini_get_gsharedvt_out_sig_wrapper (normal_sig);
                res = mono_compile_method_checked (wrapper, &error);
-               mono_error_raise_exception (&error); /* FIXME don't raise here */
+               mono_error_assert_ok (&error);
                return res;
        }
 
index b7f5ec5a3ebf31a1932c6dc1ebdc45cb2cb10914..8f33bb655a977867a859c49f0f616e8c627083e6 100644 (file)
@@ -3201,8 +3201,12 @@ process_call (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef *builder_ref,
                                        target =
                                                mono_create_jit_trampoline (mono_domain_get (),
                                                                                                        call->method, &error);
-                                       if (!mono_error_ok (&error))
-                                               mono_error_raise_exception (&error); /* FIXME: Don't raise here */
+                                       if (!is_ok (&error)) {
+                                               set_failure (ctx, mono_error_get_message (&error));
+                                               mono_error_cleanup (&error);
+                                               return;
+                                       }
+
                                        tramp_var = LLVMAddGlobal (ctx->lmodule, LLVMPointerType (llvm_sig, 0), name);
                                        LLVMSetInitializer (tramp_var, LLVMConstIntToPtr (LLVMConstInt (LLVMInt64Type (), (guint64)(size_t)target, FALSE), LLVMPointerType (llvm_sig, 0)));
                                        LLVMSetLinkage (tramp_var, LLVMExternalLinkage);
@@ -3212,15 +3216,17 @@ process_call (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef *builder_ref,
 #else
                                target =
                                        mono_create_jit_trampoline (mono_domain_get (),
-                                                                                               call->method, &error);
-                               if (!mono_error_ok (&error))
-                                       mono_error_raise_exception (&error); /* FIXME: Don't raise here */
+                                                                   call->method, &error);
+                               if (!is_ok (&error)) {
+                                       g_free (name);
+                                       set_failure (ctx, mono_error_get_message (&error));
+                                       mono_error_cleanup (&error);
+                                       return;
+                               }
 
                                callee = LLVMAddFunction (ctx->lmodule, name, llvm_sig);
                                g_free (name);
 
-                               if (!mono_error_ok (&error))
-                                       mono_error_raise_exception (&error); /* FIXME: Don't raise here */
                                LLVMAddGlobalMapping (ctx->module->ee, callee, target);
 #endif
                        }
index a8df3065dd80910322b0f6f21a7732acc94c043d..d9737fb8c52e948339da1868b78630a3a2005c34 100644 (file)
@@ -709,6 +709,41 @@ mono_arch_create_rgctx_lazy_fetch_trampoline (guint32 slot, MonoTrampInfo **info
        return buf;
 }
 
+gpointer
+mono_arch_create_general_rgctx_lazy_fetch_trampoline (MonoTrampInfo **info, gboolean aot)
+{
+       guint8 *code, *buf;
+       int tramp_size;
+       MonoJumpInfo *ji = NULL;
+       GSList *unwind_ops;
+
+       g_assert (aot);
+       tramp_size = 64;
+
+       code = buf = (guint8 *)mono_global_codeman_reserve (tramp_size);
+
+       unwind_ops = mono_arch_get_cie_program ();
+
+       // FIXME: Currently, we always go to the slow path.
+       /* This receives a <slot, trampoline> in the rgctx arg reg. */
+       /* Load trampoline addr */
+       amd64_mov_reg_membase (code, AMD64_R11, MONO_ARCH_RGCTX_REG, 8, 8);
+       /* move the rgctx pointer to the VTABLE register */
+       amd64_mov_reg_reg (code, MONO_ARCH_VTABLE_REG, AMD64_ARG_REG1, sizeof(gpointer));
+       /* Jump to the trampoline */
+       amd64_jump_reg (code, AMD64_R11);
+
+       mono_arch_flush_icache (buf, code - buf);
+       mono_profiler_code_buffer_new (buf, code - buf, MONO_PROFILER_CODE_BUFFER_GENERICS_TRAMPOLINE, NULL);
+
+       g_assert (code - buf <= tramp_size);
+
+       if (info)
+               *info = mono_tramp_info_create ("rgctx_fetch_trampoline_general", buf, code - buf, ji, unwind_ops);
+
+       return buf;
+}
+
 void
 mono_arch_invalidate_method (MonoJitInfo *ji, void *func, gpointer func_arg)
 {
index dbd2e9ad1cc108d8ee2ebbb383738f9b84999af4..650e7716e583d8af4318a59a900c7ad8b742780c 100644 (file)
@@ -1339,6 +1339,8 @@ mono_test_return_empty_struct (int a)
 {
        EmptyStruct s;
 
+       memset (&s, 0, sizeof (s));
+
        g_assert (a == 42);
 
        return s;
diff --git a/msvc/scripts/Commons.Xml.Relaxng.pre b/msvc/scripts/Commons.Xml.Relaxng.pre
new file mode 100644 (file)
index 0000000..55520b7
--- /dev/null
@@ -0,0 +1 @@
+$(ProjectDir)\..\..\jay\jay.exe -ct &lt; $(ProjectDir)\..\..\jay\skeleton.cs $(ProjectDir)\Commons.Xml.Relaxng.Rnc\RncParser.jay > $(ProjectDir)\Commons.Xml.Relaxng.Rnc\RncParser.cs
index 49a862a2110c3ee0a441372ab86760fd3c59a19c..ccaa3b3149c9059691926e96e6a17433c2ee84b8 100644 (file)
@@ -811,7 +811,8 @@ class MsbuildGenerator {
                        foreach (var dk in embedded_resources) {
                                var source = dk.Key;
                                if (source.EndsWith (".resources"))
-                                       source.Replace (".resources", ".resx");
+                                       source = source.Replace (".resources", ".resx");
+                               Console.WriteLine ("Got {0} -> {1}", dk.Key, source);
                                resources.AppendFormat ("    <EmbeddedResource Include=\"{0}\">" + NewLine, source);
                                resources.AppendFormat ("      <LogicalName>{0}</LogicalName>" + NewLine, dk.Value);
                                resources.AppendFormat ("    </EmbeddedResource>" + NewLine);
index 1d220e23fac778114dc662ab284b6103385f7bbe..fba952f0701f56e37bebc921a4bd5de1510f0c88 100644 (file)
@@ -28,12 +28,6 @@ class Prepare {
                }
 
                switch (args [1]){
-               case "xml":
-                       Filter (bdir + "/class/System.XML/System.Xml.XPath/Parser.jay",
-                               bdir + "/class/System.XML/Mono.Xml.Xsl/PatternParser.jay",
-                               (i, o) => o.Write (i.ReadToEnd ().Replace ("%start Expr", "%start Pattern")));
-                       break;
-
                case "core":
                        Filter (bdir + "/build/common/Consts.cs.in",
                                bdir + "/build/common/Consts.cs",