Merge pull request #3066 from alexanderkyte/pedump_sgen
authorAlexander Köplinger <alex.koeplinger@outlook.com>
Thu, 2 Jun 2016 20:00:38 +0000 (22:00 +0200)
committerAlexander Köplinger <alex.koeplinger@outlook.com>
Thu, 2 Jun 2016 20:00:38 +0000 (22:00 +0200)
[runtime] Replace pedump boehm dependency with sgen dependency

563 files changed:
README.md
build-libs.bat
build-libs.sh
configure.ac
external/ikvm
libgc/win32_threads.c
man/mono.1
mcs/build/tests.make
mcs/class/Accessibility/Accessibility-net_4_x.csproj
mcs/class/Commons.Xml.Relaxng/Commons.Xml.Relaxng-net_4_x.csproj
mcs/class/Cscompmgd/Cscompmgd-net_4_x.csproj
mcs/class/CustomMarshalers/CustomMarshalers-net_4_x.csproj
mcs/class/Facades/Microsoft.Win32.Primitives/Facades_Microsoft.Win32.Primitives-net_4_x.csproj
mcs/class/Facades/Microsoft.Win32.Registry.AccessControl/Facades_Microsoft.Win32.Registry.AccessControl-net_4_x.csproj
mcs/class/Facades/Microsoft.Win32.Registry/Facades_Microsoft.Win32.Registry-net_4_x.csproj
mcs/class/Facades/System.AppContext/Facades_System.AppContext-net_4_x.csproj
mcs/class/Facades/System.Collections.Concurrent/Facades_System.Collections.Concurrent-net_4_x.csproj
mcs/class/Facades/System.Collections.NonGeneric/Facades_System.Collections.NonGeneric-net_4_x.csproj
mcs/class/Facades/System.Collections.Specialized/Facades_System.Collections.Specialized-net_4_x.csproj
mcs/class/Facades/System.Collections/Facades_System.Collections-net_4_x.csproj
mcs/class/Facades/System.ComponentModel.Annotations/Facades_System.ComponentModel.Annotations-net_4_x.csproj
mcs/class/Facades/System.ComponentModel.EventBasedAsync/Facades_System.ComponentModel.EventBasedAsync-net_4_x.csproj
mcs/class/Facades/System.ComponentModel.Primitives/Facades_System.ComponentModel.Primitives-net_4_x.csproj
mcs/class/Facades/System.ComponentModel.TypeConverter/Facades_System.ComponentModel.TypeConverter-net_4_x.csproj
mcs/class/Facades/System.ComponentModel/Facades_System.ComponentModel-net_4_x.csproj
mcs/class/Facades/System.Console/Facades_System.Console-net_4_x.csproj
mcs/class/Facades/System.Data.Common/Facades_System.Data.Common-net_4_x.csproj
mcs/class/Facades/System.Data.SqlClient/Facades_System.Data.SqlClient-net_4_x.csproj
mcs/class/Facades/System.Diagnostics.Contracts/Facades_System.Diagnostics.Contracts-net_4_x.csproj
mcs/class/Facades/System.Diagnostics.Debug/Facades_System.Diagnostics.Debug-net_4_x.csproj
mcs/class/Facades/System.Diagnostics.FileVersionInfo/Facades_System.Diagnostics.FileVersionInfo-net_4_x.csproj
mcs/class/Facades/System.Diagnostics.PerformanceCounter/Facades_System.Diagnostics.PerformanceCounter-net_4_x.csproj
mcs/class/Facades/System.Diagnostics.Process/Facades_System.Diagnostics.Process-net_4_x.csproj
mcs/class/Facades/System.Diagnostics.StackTrace/Facades_System.Diagnostics.StackTrace-net_4_x.csproj
mcs/class/Facades/System.Diagnostics.TextWriterTraceListener/Facades_System.Diagnostics.TextWriterTraceListener-net_4_x.csproj
mcs/class/Facades/System.Diagnostics.Tools/Facades_System.Diagnostics.Tools-net_4_x.csproj
mcs/class/Facades/System.Diagnostics.TraceEvent/Facades_System.Diagnostics.TraceEvent-net_4_x.csproj
mcs/class/Facades/System.Diagnostics.TraceSource/Facades_System.Diagnostics.TraceSource-net_4_x.csproj
mcs/class/Facades/System.Diagnostics.Tracing/Facades_System.Diagnostics.Tracing-net_4_x.csproj
mcs/class/Facades/System.Diagnostics.Tracing/TypeForwarders.cs
mcs/class/Facades/System.Dynamic.Runtime/Facades_System.Dynamic.Runtime-net_4_x.csproj
mcs/class/Facades/System.Globalization.Calendars/Facades_System.Globalization.Calendars-net_4_x.csproj
mcs/class/Facades/System.Globalization.Extensions/Facades_System.Globalization.Extensions-net_4_x.csproj
mcs/class/Facades/System.Globalization/Facades_System.Globalization-net_4_x.csproj
mcs/class/Facades/System.IO.Compression.ZipFile/Facades_System.IO.Compression.ZipFile-net_4_x.csproj
mcs/class/Facades/System.IO.FileSystem.AccessControl/Facades_System.IO.FileSystem.AccessControl-net_4_x.csproj
mcs/class/Facades/System.IO.FileSystem.DriveInfo/Facades_System.IO.FileSystem.DriveInfo-net_4_x.csproj
mcs/class/Facades/System.IO.FileSystem.Primitives/Facades_System.IO.FileSystem.Primitives-net_4_x.csproj
mcs/class/Facades/System.IO.FileSystem.Watcher/Facades_System.IO.FileSystem.Watcher-net_4_x.csproj
mcs/class/Facades/System.IO.FileSystem/Facades_System.IO.FileSystem-net_4_x.csproj
mcs/class/Facades/System.IO.IsolatedStorage/Facades_System.IO.IsolatedStorage-net_4_x.csproj
mcs/class/Facades/System.IO.MemoryMappedFiles/Facades_System.IO.MemoryMappedFiles-net_4_x.csproj
mcs/class/Facades/System.IO.Pipes/Facades_System.IO.Pipes-net_4_x.csproj
mcs/class/Facades/System.IO.UnmanagedMemoryStream/Facades_System.IO.UnmanagedMemoryStream-net_4_x.csproj
mcs/class/Facades/System.IO/Facades_System.IO-net_4_x.csproj
mcs/class/Facades/System.Linq.Expressions/Facades_System.Linq.Expressions-net_4_x.csproj
mcs/class/Facades/System.Linq.Parallel/Facades_System.Linq.Parallel-net_4_x.csproj
mcs/class/Facades/System.Linq.Queryable/Facades_System.Linq.Queryable-net_4_x.csproj
mcs/class/Facades/System.Linq/Facades_System.Linq-net_4_x.csproj
mcs/class/Facades/System.Net.AuthenticationManager/Facades_System.Net.AuthenticationManager-net_4_x.csproj
mcs/class/Facades/System.Net.Cache/Facades_System.Net.Cache-net_4_x.csproj
mcs/class/Facades/System.Net.Http.WebRequestHandler/Facades_System.Net.Http.WebRequestHandler-net_4_x.csproj
mcs/class/Facades/System.Net.HttpListener/Facades_System.Net.HttpListener-net_4_x.csproj
mcs/class/Facades/System.Net.Mail/Facades_System.Net.Mail-net_4_x.csproj
mcs/class/Facades/System.Net.NameResolution/Facades_System.Net.NameResolution-net_4_x.csproj
mcs/class/Facades/System.Net.NetworkInformation/Facades_System.Net.NetworkInformation-net_4_x.csproj
mcs/class/Facades/System.Net.Primitives/Facades_System.Net.Primitives-net_4_x.csproj
mcs/class/Facades/System.Net.Requests/Facades_System.Net.Requests-net_4_x.csproj
mcs/class/Facades/System.Net.Security/Facades_System.Net.Security-net_4_x.csproj
mcs/class/Facades/System.Net.ServicePoint/Facades_System.Net.ServicePoint-net_4_x.csproj
mcs/class/Facades/System.Net.Sockets/Facades_System.Net.Sockets-net_4_x.csproj
mcs/class/Facades/System.Net.Utilities/Facades_System.Net.Utilities-net_4_x.csproj
mcs/class/Facades/System.Net.WebHeaderCollection/Facades_System.Net.WebHeaderCollection-net_4_x.csproj
mcs/class/Facades/System.Net.WebSockets.Client/Facades_System.Net.WebSockets.Client-net_4_x.csproj
mcs/class/Facades/System.Net.WebSockets/Facades_System.Net.WebSockets-net_4_x.csproj
mcs/class/Facades/System.ObjectModel/Facades_System.ObjectModel-net_4_x.csproj
mcs/class/Facades/System.Private.CoreLib.InteropServices/Facades_System.Private.CoreLib.InteropServices-net_4_x.csproj
mcs/class/Facades/System.Private.CoreLib.Threading/Facades_System.Private.CoreLib.Threading-net_4_x.csproj
mcs/class/Facades/System.Reflection.Emit.ILGeneration/Facades_System.Reflection.Emit.ILGeneration-net_4_x.csproj
mcs/class/Facades/System.Reflection.Emit.Lightweight/Facades_System.Reflection.Emit.Lightweight-net_4_x.csproj
mcs/class/Facades/System.Reflection.Emit/Facades_System.Reflection.Emit-net_4_x.csproj
mcs/class/Facades/System.Reflection.Extensions/Facades_System.Reflection.Extensions-net_4_x.csproj
mcs/class/Facades/System.Reflection.Primitives/Facades_System.Reflection.Primitives-net_4_x.csproj
mcs/class/Facades/System.Reflection.TypeExtensions/Facades_System.Reflection.TypeExtensions-net_4_x.csproj
mcs/class/Facades/System.Reflection/Facades_System.Reflection-net_4_x.csproj
mcs/class/Facades/System.Resources.ReaderWriter/Facades_System.Resources.ReaderWriter-net_4_x.csproj
mcs/class/Facades/System.Resources.ResourceManager/Facades_System.Resources.ResourceManager-net_4_x.csproj
mcs/class/Facades/System.Runtime.CompilerServices.VisualC/Facades_System.Runtime.CompilerServices.VisualC-net_4_x.csproj
mcs/class/Facades/System.Runtime.Extensions/Facades_System.Runtime.Extensions-net_4_x.csproj
mcs/class/Facades/System.Runtime.Handles/Facades_System.Runtime.Handles-net_4_x.csproj
mcs/class/Facades/System.Runtime.InteropServices.WindowsRuntime/Facades_System.Runtime.InteropServices.WindowsRuntime-net_4_x.csproj
mcs/class/Facades/System.Runtime.InteropServices/Facades_System.Runtime.InteropServices-net_4_x.csproj
mcs/class/Facades/System.Runtime.Numerics/Facades_System.Runtime.Numerics-net_4_x.csproj
mcs/class/Facades/System.Runtime.Serialization.Json/Facades_System.Runtime.Serialization.Json-net_4_x.csproj
mcs/class/Facades/System.Runtime.Serialization.Primitives/Facades_System.Runtime.Serialization.Primitives-net_4_x.csproj
mcs/class/Facades/System.Runtime.Serialization.Xml/Facades_System.Runtime.Serialization.Xml-net_4_x.csproj
mcs/class/Facades/System.Runtime/Facades_System.Runtime-net_4_x.csproj
mcs/class/Facades/System.Security.AccessControl/Facades_System.Security.AccessControl-net_4_x.csproj
mcs/class/Facades/System.Security.Claims/Facades_System.Security.Claims-net_4_x.csproj
mcs/class/Facades/System.Security.Cryptography.DeriveBytes/Facades_System.Security.Cryptography.DeriveBytes-net_4_x.csproj
mcs/class/Facades/System.Security.Cryptography.Encoding/Facades_System.Security.Cryptography.Encoding-net_4_x.csproj
mcs/class/Facades/System.Security.Cryptography.Encryption.Aes/Facades_System.Security.Cryptography.Encryption.Aes-net_4_x.csproj
mcs/class/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman/Facades_System.Security.Cryptography.Encryption.ECDiffieHellman-net_4_x.csproj
mcs/class/Facades/System.Security.Cryptography.Encryption.ECDsa/Facades_System.Security.Cryptography.Encryption.ECDsa-net_4_x.csproj
mcs/class/Facades/System.Security.Cryptography.Encryption/Facades_System.Security.Cryptography.Encryption-net_4_x.csproj
mcs/class/Facades/System.Security.Cryptography.Hashing.Algorithms/Facades_System.Security.Cryptography.Hashing.Algorithms-net_4_x.csproj
mcs/class/Facades/System.Security.Cryptography.Hashing/Facades_System.Security.Cryptography.Hashing-net_4_x.csproj
mcs/class/Facades/System.Security.Cryptography.ProtectedData/Facades_System.Security.Cryptography.ProtectedData-net_4_x.csproj
mcs/class/Facades/System.Security.Cryptography.RSA/Facades_System.Security.Cryptography.RSA-net_4_x.csproj
mcs/class/Facades/System.Security.Cryptography.RandomNumberGenerator/Facades_System.Security.Cryptography.RandomNumberGenerator-net_4_x.csproj
mcs/class/Facades/System.Security.Cryptography.X509Certificates/Facades_System.Security.Cryptography.X509Certificates-net_4_x.csproj
mcs/class/Facades/System.Security.Principal.Windows/Facades_System.Security.Principal.Windows-net_4_x.csproj
mcs/class/Facades/System.Security.Principal/Facades_System.Security.Principal-net_4_x.csproj
mcs/class/Facades/System.Security.SecureString/Facades_System.Security.SecureString-net_4_x.csproj
mcs/class/Facades/System.ServiceModel.Duplex/Facades_System.ServiceModel.Duplex-net_4_x.csproj
mcs/class/Facades/System.ServiceModel.Http/Facades_System.ServiceModel.Http-net_4_x.csproj
mcs/class/Facades/System.ServiceModel.NetTcp/Facades_System.ServiceModel.NetTcp-net_4_x.csproj
mcs/class/Facades/System.ServiceModel.Primitives/Facades_System.ServiceModel.Primitives-net_4_x.csproj
mcs/class/Facades/System.ServiceModel.Security/Facades_System.ServiceModel.Security-net_4_x.csproj
mcs/class/Facades/System.ServiceProcess.ServiceController/Facades_System.ServiceProcess.ServiceController-net_4_x.csproj
mcs/class/Facades/System.Text.Encoding.Extensions/Facades_System.Text.Encoding.Extensions-net_4_x.csproj
mcs/class/Facades/System.Text.Encoding/Facades_System.Text.Encoding-net_4_x.csproj
mcs/class/Facades/System.Text.RegularExpressions/Facades_System.Text.RegularExpressions-net_4_x.csproj
mcs/class/Facades/System.Threading.AccessControl/Facades_System.Threading.AccessControl-net_4_x.csproj
mcs/class/Facades/System.Threading.Overlapped/Facades_System.Threading.Overlapped-net_4_x.csproj
mcs/class/Facades/System.Threading.Tasks.Parallel/Facades_System.Threading.Tasks.Parallel-net_4_x.csproj
mcs/class/Facades/System.Threading.Tasks/Facades_System.Threading.Tasks-net_4_x.csproj
mcs/class/Facades/System.Threading.Thread/Facades_System.Threading.Thread-net_4_x.csproj
mcs/class/Facades/System.Threading.ThreadPool/Facades_System.Threading.ThreadPool-net_4_x.csproj
mcs/class/Facades/System.Threading.Timer/Facades_System.Threading.Timer-net_4_x.csproj
mcs/class/Facades/System.Threading/Facades_System.Threading-net_4_x.csproj
mcs/class/Facades/System.Xml.ReaderWriter/Facades_System.Xml.ReaderWriter-net_4_x.csproj
mcs/class/Facades/System.Xml.XDocument/Facades_System.Xml.XDocument-net_4_x.csproj
mcs/class/Facades/System.Xml.XPath.XDocument/Facades_System.Xml.XPath.XDocument-net_4_x.csproj
mcs/class/Facades/System.Xml.XPath/Facades_System.Xml.XPath-net_4_x.csproj
mcs/class/Facades/System.Xml.XmlDocument/Facades_System.Xml.XmlDocument-net_4_x.csproj
mcs/class/Facades/System.Xml.XmlSerializer/Facades_System.Xml.XmlSerializer-net_4_x.csproj
mcs/class/Facades/System.Xml.Xsl.Primitives/Facades_System.Xml.Xsl.Primitives-net_4_x.csproj
mcs/class/I18N/CJK/I18N.CJK-net_4_x.csproj
mcs/class/I18N/Common/I18N-net_4_x.csproj
mcs/class/I18N/MidEast/I18N.MidEast-net_4_x.csproj
mcs/class/I18N/Other/I18N.Other-net_4_x.csproj
mcs/class/I18N/Rare/I18N.Rare-net_4_x.csproj
mcs/class/I18N/West/I18N.West-net_4_x.csproj
mcs/class/IBM.Data.DB2/IBM.Data.DB2-net_4_x.csproj
mcs/class/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib-net_4_x.csproj
mcs/class/Microsoft.Build.Engine/Microsoft.Build.Engine-net_4_x.csproj
mcs/class/Microsoft.Build.Framework/Microsoft.Build.Framework-net_4_x.csproj
mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks-net_4_x.csproj
mcs/class/Microsoft.Build.Utilities/Microsoft.Build.Utilities-net_4_x.csproj
mcs/class/Microsoft.Build/Microsoft.Build-net_4_x.csproj
mcs/class/Microsoft.CSharp/Microsoft.CSharp-net_4_x.csproj
mcs/class/Microsoft.VisualC/Microsoft.VisualC-net_4_x.csproj
mcs/class/Microsoft.Web.Infrastructure/Microsoft.Web.Infrastructure-net_4_x.csproj
mcs/class/Mono.C5/Mono.C5-net_4_x.csproj
mcs/class/Mono.CSharp/Mono.CSharp-net_4_x.csproj
mcs/class/Mono.Cairo/Mono.Cairo-net_4_x.csproj
mcs/class/Mono.Cecil.Mdb/Mono.Cecil.Mdb-net_4_x.csproj
mcs/class/Mono.Cecil/Mono.Cecil-net_4_x.csproj
mcs/class/Mono.CodeContracts/Mono.CodeContracts-net_4_x.csproj
mcs/class/Mono.CompilerServices.SymbolWriter/Mono.CompilerServices.SymbolWriter-net_4_x.csproj
mcs/class/Mono.Data.Sqlite/Makefile
mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite-net_4_x.csproj
mcs/class/Mono.Data.Sqlite/Test/SqliteDataReaderTest.cs
mcs/class/Mono.Data.Sqlite/Test/SqliteParameterUnitTests.cs
mcs/class/Mono.Data.Sqlite/monodroid_Mono.Data.Sqlite_test.dll.exclude.sources [new file with mode: 0644]
mcs/class/Mono.Data.Sqlite/monodroid_Mono.Data.Sqlite_test.dll.new-exclude.sources [new file with mode: 0644]
mcs/class/Mono.Data.Sqlite/monodroid_Mono.Data.Sqlite_test.dll.sources [new file with mode: 0644]
mcs/class/Mono.Data.Sqlite/resources/SR.resx
mcs/class/Mono.Data.Tds/Mono.Data.Tds-net_4_x.csproj
mcs/class/Mono.Debugger.Soft/Mono.Debugger.Soft-net_4_x.csproj
mcs/class/Mono.Debugger.Soft/Test/dtest.cs
mcs/class/Mono.Http/Mono.Http-net_4_x.csproj
mcs/class/Mono.Management/Mono.Management-net_4_x.csproj
mcs/class/Mono.Messaging.RabbitMQ/Mono.Messaging.RabbitMQ-net_4_x.csproj
mcs/class/Mono.Messaging/Mono.Messaging-net_4_x.csproj
mcs/class/Mono.Options/Mono.Options-net_4_x.csproj
mcs/class/Mono.Parallel/Mono.Parallel-net_4_x.csproj
mcs/class/Mono.Posix/Mono.Posix-net_4_x.csproj
mcs/class/Mono.Posix/Test/Mono.Unix/UnixEncodingTest.cs
mcs/class/Mono.Posix/monodroid_Mono.Posix_test.dll.exclude.sources [new file with mode: 0644]
mcs/class/Mono.Posix/monodroid_Mono.Posix_test.dll.new-exclude.sources [new file with mode: 0644]
mcs/class/Mono.Posix/monodroid_Mono.Posix_test.dll.sources [new file with mode: 0644]
mcs/class/Mono.Security.Providers.DotNet/Mono.Security.Providers.DotNet-net_4_x.csproj
mcs/class/Mono.Security.Providers.NewSystemSource/Mono.Security.Providers.NewSystemSource-net_4_x.csproj
mcs/class/Mono.Security.Providers.NewTls/Mono.Security.Providers.NewTls-net_4_x.csproj
mcs/class/Mono.Security.Providers.OldTls/Mono.Security.Providers.OldTls-net_4_x.csproj
mcs/class/Mono.Security.Win32/Mono.Security.Win32-net_4_x.csproj
mcs/class/Mono.Security/Mono.Security-net_4_x.csproj
mcs/class/Mono.Security/monodroid_Mono.Security_test.dll.build-failure-exclude.sources [new file with mode: 0644]
mcs/class/Mono.Security/monodroid_Mono.Security_test.dll.exclude.sources [new file with mode: 0644]
mcs/class/Mono.Security/monodroid_Mono.Security_test.dll.new-exclude.sources [new file with mode: 0644]
mcs/class/Mono.Security/monodroid_Mono.Security_test.dll.sources [new file with mode: 0644]
mcs/class/Mono.Simd/Mono.Simd-net_4_x.csproj
mcs/class/Mono.Tasklets/Mono.Tasklets-net_4_x.csproj
mcs/class/Mono.WebBrowser/Mono.WebBrowser-net_4_x.csproj
mcs/class/Mono.XBuild.Tasks/Mono.XBuild.Tasks-net_4_x.csproj
mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap-net_4_x.csproj
mcs/class/PEAPI/PEAPI-net_4_x.csproj
mcs/class/RabbitMQ.Client/src/apigen/Apigen.cs
mcs/class/RabbitMQ.Client/src/apigen/RabbitMQ.Client.Apigen-net_4_x.csproj
mcs/class/RabbitMQ.Client/src/client/RabbitMQ.Client-net_4_x.csproj
mcs/class/SMDiagnostics/SMDiagnostics-net_4_x.csproj
mcs/class/System.ComponentModel.Composition.4.5/System.ComponentModel.Composition-net_4_x.csproj
mcs/class/System.ComponentModel.DataAnnotations/System.ComponentModel.DataAnnotations-net_4_x.csproj
mcs/class/System.ComponentModel.DataAnnotations/monodroid_System.ComponentModel.DataAnnotations_test.dll.exclude.sources [new file with mode: 0644]
mcs/class/System.ComponentModel.DataAnnotations/monodroid_System.ComponentModel.DataAnnotations_test.dll.new-exclude.sources [new file with mode: 0644]
mcs/class/System.ComponentModel.DataAnnotations/monodroid_System.ComponentModel.DataAnnotations_test.dll.sources [new file with mode: 0644]
mcs/class/System.Configuration.Install/System.Configuration.Install-net_4_x.csproj
mcs/class/System.Configuration/System.Configuration-net_4_x.csproj
mcs/class/System.Core/System.Core-net_4_x.csproj
mcs/class/System.Core/System.Core-plaincore-net_4_x.csproj
mcs/class/System.Core/mobile_static_System.Core_test.dll.exclude.sources [new file with mode: 0644]
mcs/class/System.Core/mobile_static_System.Core_test.dll.excludes [deleted file]
mcs/class/System.Core/monodroid_System.Core_test.dll.exclude.sources [new file with mode: 0644]
mcs/class/System.Core/monodroid_System.Core_test.dll.new-exclude.sources [new file with mode: 0644]
mcs/class/System.Core/monodroid_System.Core_test.dll.sources [new file with mode: 0644]
mcs/class/System.Data.DataSetExtensions/System.Data.DataSetExtensions-net_4_x.csproj
mcs/class/System.Data.Entity/System.Data.Entity-net_4_x.csproj
mcs/class/System.Data.Linq/System.Data.Linq-net_4_x.csproj
mcs/class/System.Data.OracleClient/System.Data.OracleClient-net_4_x.csproj
mcs/class/System.Data.Services.Client/System.Data.Services.Client-net_4_x.csproj
mcs/class/System.Data.Services/System.Data.Services-net_4_x.csproj
mcs/class/System.Data/System.Data-net_4_x.csproj
mcs/class/System.Data/mobile_static_System.Data_test.dll.exclude.sources [new file with mode: 0644]
mcs/class/System.Data/mobile_static_System.Data_test.dll.excludes [deleted file]
mcs/class/System.Deployment/System.Deployment-net_4_x.csproj
mcs/class/System.Design/System.Design-net_4_x.csproj
mcs/class/System.Design/System.Design-plaindesign-net_4_x.csproj
mcs/class/System.DirectoryServices.Protocols/System.DirectoryServices.Protocols-net_4_x.csproj
mcs/class/System.DirectoryServices/System.DirectoryServices-net_4_x.csproj
mcs/class/System.Drawing.Design/System.Drawing.Design-net_4_x.csproj
mcs/class/System.Drawing/System.Drawing-net_4_x.csproj
mcs/class/System.Dynamic/System.Dynamic-net_4_x.csproj
mcs/class/System.EnterpriseServices/System.EnterpriseServices-net_4_x.csproj
mcs/class/System.IO.Compression.FileSystem/System.IO.Compression.FileSystem-net_4_x.csproj
mcs/class/System.IO.Compression.FileSystem/Test/System.IO.Compression.FileSystem/ZipTest.cs
mcs/class/System.IO.Compression.FileSystem/ZipFileExtensions.cs
mcs/class/System.IO.Compression/SharpCompress/Archive/Zip/ZipWritableArchiveEntry.cs
mcs/class/System.IO.Compression/System.IO.Compression-net_4_x.csproj
mcs/class/System.IO.Compression/Test/System.IO.Compression/ZipTest.cs
mcs/class/System.IdentityModel.Selectors/System.IdentityModel.Selectors-net_4_x.csproj
mcs/class/System.IdentityModel/System.IdentityModel-net_4_x.csproj
mcs/class/System.Json.Microsoft/Makefile
mcs/class/System.Json.Microsoft/System.Json.Microsoft-net_4_x.csproj
mcs/class/System.Json/System.Json-net_4_x.csproj
mcs/class/System.Management/System.Management-net_4_x.csproj
mcs/class/System.Messaging/System.Messaging-net_4_x.csproj
mcs/class/System.Net.Http.Formatting/System.Net.Http.Formatting-net_4_x.csproj
mcs/class/System.Net.Http.WebRequest/System.Net.Http.WebRequest-net_4_x.csproj
mcs/class/System.Net.Http/System.Net.Http-net_4_x.csproj
mcs/class/System.Net/System.Net-net_4_x.csproj
mcs/class/System.Numerics.Vectors/System.Numerics.Vectors-net_4_x.csproj
mcs/class/System.Numerics/System.Numerics-net_4_x.csproj
mcs/class/System.Reactive.Core/System.Reactive.Core-net_4_x.csproj
mcs/class/System.Reactive.Debugger/System.Reactive.Debugger-net_4_x.csproj
mcs/class/System.Reactive.Experimental/System.Reactive.Experimental-net_4_x.csproj
mcs/class/System.Reactive.Interfaces/System.Reactive.Interfaces-net_4_x.csproj
mcs/class/System.Reactive.Linq/System.Reactive.Linq-net_4_x.csproj
mcs/class/System.Reactive.Observable.Aliases/System.Reactive.Observable.Aliases-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.Runtime.Remoting/System.Reactive.Runtime.Remoting-net_4_x.csproj
mcs/class/System.Reactive.Windows.Forms/System.Reactive.Windows.Forms-net_4_x.csproj
mcs/class/System.Reactive.Windows.Threading/System.Reactive.Windows.Threading-net_4_x.csproj
mcs/class/System.Runtime.Caching/System.Runtime.Caching-net_4_x.csproj
mcs/class/System.Runtime.DurableInstancing/System.Runtime.DurableInstancing-net_4_x.csproj
mcs/class/System.Runtime.Remoting/System.Runtime.Remoting-net_4_x.csproj
mcs/class/System.Runtime.Serialization.Formatters.Soap/System.Runtime.Serialization.Formatters.Soap-net_4_x.csproj
mcs/class/System.Runtime.Serialization/System.Runtime.Serialization-net_4_x.csproj
mcs/class/System.Security/System.Security-net_4_x.csproj
mcs/class/System.ServiceModel.Activation/System.ServiceModel.Activation-net_4_x.csproj
mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery-net_4_x.csproj
mcs/class/System.ServiceModel.Internals/System.ServiceModel.Internals-net_4_x.csproj
mcs/class/System.ServiceModel.Routing/System.ServiceModel.Routing-net_4_x.csproj
mcs/class/System.ServiceModel.Web/System.ServiceModel.Web-net_4_x.csproj
mcs/class/System.ServiceModel/System.ServiceModel-net_4_x.csproj
mcs/class/System.ServiceModel/System.ServiceModel-plainservice-net_4_x.csproj
mcs/class/System.ServiceProcess/System.ServiceProcess-net_4_x.csproj
mcs/class/System.Threading.Tasks.Dataflow/System.Threading.Tasks.Dataflow-net_4_x.csproj
mcs/class/System.Transactions/System.Transactions-net_4_x.csproj
mcs/class/System.Transactions/System.Transactions.dll.sources
mcs/class/System.Transactions/System.Transactions/TransactionScope.cs
mcs/class/System.Transactions/System.Transactions/TransactionScopeAsyncFlowOption.cs [new file with mode: 0644]
mcs/class/System.Web.Abstractions/System.Web.Abstractions-net_4_x.csproj
mcs/class/System.Web.ApplicationServices/System.Web.ApplicationServices-net_4_x.csproj
mcs/class/System.Web.DynamicData/System.Web.DynamicData-net_4_x.csproj
mcs/class/System.Web.Extensions.Design/System.Web.Extensions.Design-net_4_x.csproj
mcs/class/System.Web.Extensions/System.Web.Extensions-net_4_x.csproj
mcs/class/System.Web.Http.SelfHost/System.Web.Http.SelfHost-net_4_x.csproj
mcs/class/System.Web.Http.WebHost/System.Web.Http.WebHost-net_4_x.csproj
mcs/class/System.Web.Http/System.Web.Http-net_4_x.csproj
mcs/class/System.Web.Mobile/System.Web.Mobile-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.RegularExpressions/System.Web.RegularExpressions-net_4_x.csproj
mcs/class/System.Web.Routing/System.Web.Routing-net_4_x.csproj
mcs/class/System.Web.Services/System.Web.Services-net_4_x.csproj
mcs/class/System.Web.Services/mobile_static_System.Web.Services_test.dll.exclude.sources [new file with mode: 0644]
mcs/class/System.Web.Services/mobile_static_System.Web.Services_test.dll.excludes [deleted file]
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.DataVisualization/System.Windows.Forms.DataVisualization-net_4_x.csproj
mcs/class/System.Windows.Forms/System.Windows.Forms-net_4_x.csproj
mcs/class/System.Windows/System.Windows-net_4_x.csproj
mcs/class/System.Workflow.Activities/System.Workflow.Activities-net_4_x.csproj
mcs/class/System.Workflow.ComponentModel/System.Workflow.ComponentModel-net_4_x.csproj
mcs/class/System.Workflow.Runtime/System.Workflow.Runtime-net_4_x.csproj
mcs/class/System.XML/System.Xml-bare-net_4_x.csproj
mcs/class/System.XML/System.Xml-net_4_x.csproj
mcs/class/System.Xaml/System.Xaml-net_4_x.csproj
mcs/class/System.Xml.Linq/System.Xml.Linq-net_4_x.csproj
mcs/class/System.Xml.Serialization/System.Xml.Serialization-net_4_x.csproj
mcs/class/System/Makefile
mcs/class/System/ReferenceSources/AutoWebProxyScriptEngine.cs [new file with mode: 0644]
mcs/class/System/ReferenceSources/Logging.cs
mcs/class/System/ReferenceSources/RequestCacheProtocol.cs [new file with mode: 0644]
mcs/class/System/ReferenceSources/SR2.cs
mcs/class/System/ReferenceSources/SettingsSectionInternal.cs
mcs/class/System/ReferenceSources/SystemNetworkCredential.cs [deleted file]
mcs/class/System/System-bare-net_4_x.csproj
mcs/class/System/System-net_4_x.csproj
mcs/class/System/System-secxml-net_4_x.csproj
mcs/class/System/System.Net.Configuration/WebRequestModuleHandler.cs
mcs/class/System/System.Net.NetworkInformation/Win32NetworkInterfaceMarshal.cs
mcs/class/System/System.Net.Security/EncryptionPolicy.cs
mcs/class/System/System.Net/CredentialCache.cs [deleted file]
mcs/class/System/System.Net/EndPointListener.cs
mcs/class/System/System.Net/GlobalProxySelection.cs [deleted file]
mcs/class/System/System.Net/HttpWebRequest.cs
mcs/class/System/System.Net/ServicePoint.cs
mcs/class/System/System.Net/ServicePointManager.cs
mcs/class/System/System.Net/ServicePointManager.extra.cs
mcs/class/System/System.Net/WebProxy.cs [deleted file]
mcs/class/System/System.Net/WebRequest.cs [deleted file]
mcs/class/System/System.Threading/Semaphore.cs
mcs/class/System/System.dll.sources
mcs/class/System/Test/System.Net.Sockets/SocketTest.cs
mcs/class/System/Test/System.Net/WebProxyTest.cs
mcs/class/System/mobile_System.dll.sources
mcs/class/System/mobile_static_System_test.dll.exclude.sources [new file with mode: 0644]
mcs/class/System/mobile_static_System_test.dll.excludes [deleted file]
mcs/class/System/monodroid_System_test.dll.exclude.sources [new file with mode: 0644]
mcs/class/System/monodroid_System_test.dll.new-exclude.sources [new file with mode: 0644]
mcs/class/System/monodroid_System_test.dll.sources [new file with mode: 0644]
mcs/class/SystemWebTestShim/SystemWebTestShim-net_4_x.csproj
mcs/class/WebMatrix.Data/WebMatrix.Data-net_4_x.csproj
mcs/class/WindowsBase/Test/System.IO.Packaging/PackageTest.cs
mcs/class/WindowsBase/WindowsBase-net_4_x.csproj
mcs/class/WindowsBase/ZipSharp/ZipTime.cs
mcs/class/corlib/ReferenceSources/RuntimeType.cs
mcs/class/corlib/System.Reflection/MonoAssembly.cs
mcs/class/corlib/System.Reflection/MonoMethod.cs
mcs/class/corlib/System.Runtime.Remoting/RemotingServices.cs
mcs/class/corlib/System.Security/CodeAccessPermission.cs
mcs/class/corlib/System.Security/PermissionSet.cs
mcs/class/corlib/System/Environment.cs
mcs/class/corlib/System/MonoCustomAttrs.cs
mcs/class/corlib/System/MonoType.cs
mcs/class/corlib/System/RuntimeTypeHandle.cs
mcs/class/corlib/Test/System.Security/CodeAccessPermissionTest.cs
mcs/class/corlib/Test/System.Threading/ExecutionContextCas.cs
mcs/class/corlib/Test/System.Threading/ThreadTest.cs
mcs/class/corlib/corlib-net_4_x.csproj
mcs/class/corlib/corlib_cmp.dll.excludes [deleted file]
mcs/class/corlib/mobile_static_corlib_test.dll.exclude.sources [new file with mode: 0644]
mcs/class/corlib/mobile_static_corlib_test.dll.excludes [deleted file]
mcs/class/corlib/monodroid_corlib_test.dll.exclude.sources [new file with mode: 0644]
mcs/class/corlib/monodroid_corlib_test.dll.new-exclude.sources [new file with mode: 0644]
mcs/class/corlib/monodroid_corlib_test.dll.sources [new file with mode: 0644]
mcs/class/monodoc/monodoc-net_4_x.csproj
mcs/class/referencesource/System/compmod/system/componentmodel/design/DesigntimeLicenseContext.cs
mcs/class/referencesource/System/net/System/Net/Cache/RequestCacheManager.cs
mcs/class/referencesource/System/net/System/Net/Configuration/DefaultProxySection.cs
mcs/class/referencesource/System/net/System/Net/CredentialCache.cs
mcs/class/referencesource/System/net/System/Net/Internal.cs
mcs/class/referencesource/System/net/System/Net/NetworkInformation/NetworkInterface.cs
mcs/class/referencesource/System/net/System/Net/WebRequest.cs
mcs/class/referencesource/System/net/System/Net/_Semaphore.cs
mcs/class/referencesource/System/net/System/Net/_TimerThread.cs
mcs/class/referencesource/System/net/System/Net/webproxy.cs
mcs/class/referencesource/System/regex/system/text/regularexpressions/RegexCompiler.cs
mcs/class/referencesource/mscorlib/system/exception.cs
mcs/class/referencesource/mscorlib/system/rttype.cs
mcs/ilasm/ilasm-net_4_x.csproj
mcs/mcs/cs-tokenizer.cs
mcs/mcs/ecore.cs
mcs/mcs/ikvm.cs
mcs/mcs/mcs-net_4_x.csproj
mcs/nunit24/ClientUtilities/util/nunit.util-net_4_x.csproj
mcs/nunit24/ConsoleRunner/nunit-console-exe/nunit-console-net_4_x.csproj
mcs/nunit24/ConsoleRunner/nunit-console/nunit-console-runner-net_4_x.csproj
mcs/nunit24/NUnitCore/core/nunit.core-net_4_x.csproj
mcs/nunit24/NUnitCore/interfaces/nunit.core.interfaces-net_4_x.csproj
mcs/nunit24/NUnitExtensions/core/nunit.core.extensions-net_4_x.csproj
mcs/nunit24/NUnitExtensions/framework/nunit.framework.extensions-net_4_x.csproj
mcs/nunit24/NUnitFramework/framework/NUnit.Framework-net_4_x.csproj
mcs/nunit24/NUnitMocks/mocks/nunit.mocks-net_4_x.csproj
mcs/tests/test-935.cs [new file with mode: 0644]
mcs/tests/test-debug-30-ref.xml [new file with mode: 0644]
mcs/tests/test-debug-30.cs [new file with mode: 0644]
mcs/tests/ver-il-net_4_x.xml
mcs/tools/al/al-net_4_x.csproj
mcs/tools/browsercaps-updater/browsercaps-updater-net_4_x.csproj
mcs/tools/cccheck/cccheck-net_4_x.csproj
mcs/tools/ccrewrite/ccrewrite-net_4_x.csproj
mcs/tools/cil-stringreplacer/cil-stringreplacer-net_4_x.csproj
mcs/tools/cil-strip/mono-cil-strip-net_4_x.csproj
mcs/tools/commoncryptogenerator/commoncryptogenerator-net_4_x.csproj
mcs/tools/compiler-tester/compiler-tester-net_4_x.csproj
mcs/tools/corcompare/mono-api-info-net_4_x.csproj
mcs/tools/corcompare/mono-api-info.cs
mcs/tools/csharp/csharp-net_4_x.csproj
mcs/tools/culevel/culevel-net_4_x.csproj
mcs/tools/disco/disco-net_4_x.csproj
mcs/tools/dtd2rng/dtd2rng-net_4_x.csproj
mcs/tools/dtd2xsd/dtd2xsd-net_4_x.csproj
mcs/tools/gacutil/gacutil-net_4_x.csproj
mcs/tools/genxs/genxs-net_4_x.csproj
mcs/tools/ictool/ictool-net_4_x.csproj
mcs/tools/ikdasm/ikdasm-net_4_x.csproj
mcs/tools/installutil/installutil-net_4_x.csproj
mcs/tools/installvst/installvst-net_4_x.csproj
mcs/tools/lc/lc-net_4_x.csproj
mcs/tools/linker-analyzer/linkeranalyzer-net_4_x.csproj
mcs/tools/linker/monolinker-net_4_x.csproj
mcs/tools/macpack/macpack-net_4_x.csproj
mcs/tools/mconfig/Makefile
mcs/tools/mconfig/Mono.MonoConfig/consts.cs.in [deleted file]
mcs/tools/mconfig/mconfig-net_4_x.csproj
mcs/tools/mconfig/mconfig.cs
mcs/tools/mdbrebase/mdbrebase-net_4_x.csproj
mcs/tools/mdoc/Makefile
mcs/tools/mdoc/Mono.Documentation/monodocer.cs
mcs/tools/mdoc/Test/DocTest-DropNS-classic.cs
mcs/tools/mdoc/Test/DocTest-DropNS-unified.cs
mcs/tools/mdoc/Test/en.expected-dropns-classic-v1/MyFramework.MyNamespace/MyClass.xml
mcs/tools/mdoc/Test/en.expected-dropns-classic-v1/MyFramework.MyNamespace/MyClassExtensions.xml [new file with mode: 0644]
mcs/tools/mdoc/Test/en.expected-dropns-classic-v1/index.xml
mcs/tools/mdoc/Test/en.expected-dropns-classic-withsecondary/MyFramework.MyNamespace/MyClass.xml
mcs/tools/mdoc/Test/en.expected-dropns-classic-withsecondary/MyFramework.MyNamespace/MyClassExtensions.xml [new file with mode: 0644]
mcs/tools/mdoc/Test/en.expected-dropns-classic-withsecondary/MyFramework.MyOtherNamespace/MyOtherClass.xml
mcs/tools/mdoc/Test/en.expected-dropns-classic-withsecondary/index.xml
mcs/tools/mdoc/Test/en.expected-dropns-delete/MyFramework.MyNamespace/MyClass.xml
mcs/tools/mdoc/Test/en.expected-dropns-delete/MyFramework.MyNamespace/MyClassExtensions.xml [new file with mode: 0644]
mcs/tools/mdoc/Test/en.expected-dropns-delete/MyFramework.MyNamespace/TypeOnlyInClassic.xml
mcs/tools/mdoc/Test/en.expected-dropns-delete/MyFramework.MyNamespace/WillDelete.xml.remove
mcs/tools/mdoc/Test/en.expected-dropns-delete/index.xml
mcs/tools/mdoc/Test/en.expected-dropns-multi-withexisting/MyFramework.MyNamespace/MyClass.xml
mcs/tools/mdoc/Test/en.expected-dropns-multi-withexisting/MyFramework.MyNamespace/MyClassExtensions.xml [new file with mode: 0644]
mcs/tools/mdoc/Test/en.expected-dropns-multi-withexisting/index.xml
mcs/tools/mdoc/Test/en.expected-dropns-multi/MyFramework.MyNamespace/MyClassExtensions.xml [new file with mode: 0644]
mcs/tools/mdoc/Test/en.expected-dropns-multi/index.xml
mcs/tools/mdoc/mdoc-net_4_x.csproj
mcs/tools/mkbundle/mkbundle-net_4_x.csproj
mcs/tools/mod/mod-net_4_x.csproj
mcs/tools/mono-api-html/mono-api-html-net_4_x.csproj
mcs/tools/mono-configuration-crypto/cli/mono-configuration-crypto-net_4_x.csproj
mcs/tools/mono-configuration-crypto/lib/Mono.Configuration.Crypto-net_4_x.csproj
mcs/tools/mono-service/mono-service-net_4_x.csproj
mcs/tools/mono-shlib-cop/mono-shlib-cop-net_4_x.csproj
mcs/tools/mono-symbolicate/mono-symbolicate-net_4_x.csproj
mcs/tools/mono-xmltool/mono-xmltool-net_4_x.csproj
mcs/tools/mono-xsd/xsd-net_4_x.csproj
mcs/tools/monop/monop-net_4_x.csproj
mcs/tools/nunitreport/nunitreport-net_4_x.csproj
mcs/tools/pdb2mdb/pdb2mdb-net_4_x.csproj
mcs/tools/resgen/resgen-net_4_x.csproj
mcs/tools/sgen/sgen-net_4_x.csproj
mcs/tools/soapsuds/soapsuds-net_4_x.csproj
mcs/tools/sqlmetal/sqlmetal-net_4_x.csproj
mcs/tools/sqlsharp/sqlsharp-net_4_x.csproj
mcs/tools/svcutil/svcutil-net_4_x.csproj
mcs/tools/tuner/Mono.Tuner-net_4_x.csproj
mcs/tools/wsdl/wsdl-net_4_x.csproj
mono/metadata/appdomain.c
mono/metadata/assembly.c
mono/metadata/class-internals.h
mono/metadata/console-unix.c
mono/metadata/debug-helpers.c
mono/metadata/domain.c
mono/metadata/file-io.c
mono/metadata/file-io.h
mono/metadata/file-mmap-posix.c
mono/metadata/filewatcher.c
mono/metadata/icall-def.h
mono/metadata/icall.c
mono/metadata/locales.c
mono/metadata/marshal.c
mono/metadata/mono-perfcounters.c
mono/metadata/mono-route.c
mono/metadata/object-internals.h
mono/metadata/object.c
mono/metadata/object.h
mono/metadata/process.c
mono/metadata/reflection.c
mono/metadata/remoting.c
mono/metadata/security-core-clr.c
mono/metadata/sgen-client-mono.h
mono/metadata/sgen-mono.c
mono/metadata/sgen-stw.c
mono/metadata/socket-io.c
mono/metadata/threads.c
mono/mini/Makefile.am.in
mono/mini/aot-compiler.c
mono/mini/aot-runtime.c
mono/mini/aot-tests.cs
mono/mini/debugger-agent.c
mono/mini/ir-emit.h
mono/mini/jit-icalls.c
mono/mini/jit-icalls.h
mono/mini/local-propagation.c
mono/mini/method-to-ir.c
mono/mini/mini-amd64-gsharedvt.c
mono/mini/mini-amd64-gsharedvt.h
mono/mini/mini-amd64.c
mono/mini/mini-amd64.h
mono/mini/mini-arm.c
mono/mini/mini-arm.h
mono/mini/mini-exceptions.c
mono/mini/mini-generic-sharing.c
mono/mini/mini-llvm.c
mono/mini/mini-ops.h
mono/mini/mini-runtime.c
mono/mini/mini-s390x.c
mono/mini/mini.h
mono/mini/trace.c
mono/mini/tramp-amd64-gsharedvt.c
mono/profiler/Makefile.am
mono/profiler/mono-profiler-iomap.c
mono/sgen/sgen-cardtable.c
mono/sgen/sgen-client.h
mono/sgen/sgen-debug.c
mono/sgen/sgen-gc.c
mono/sgen/sgen-gc.h
mono/sgen/sgen-marksweep-drain-gray-stack.h
mono/sgen/sgen-marksweep.c
mono/sgen/sgen-memory-governor.c
mono/sgen/sgen-memory-governor.h
mono/sgen/sgen-pinning-stats.c
mono/sgen/sgen-protocol-def.h
mono/sgen/sgen-protocol.c
msvc/scripts/Microsoft.Build.pre [new file with mode: 0644]
msvc/scripts/RabbitMQ.Client.Apigen.post [new file with mode: 0644]
msvc/scripts/System.ComponentModel.Composition.pre [new file with mode: 0644]
msvc/scripts/System.Data.Services.Client.pre [new file with mode: 0644]
msvc/scripts/System.Json.Microsoft.pre [new file with mode: 0644]
msvc/scripts/System.Net.Http.Formatting.pre [new file with mode: 0644]
msvc/scripts/System.Web.Razor.pre [new file with mode: 0644]
msvc/scripts/System.Web.pre [new file with mode: 0644]
msvc/scripts/TODO.md [new file with mode: 0644]
msvc/scripts/genproj.cs
msvc/scripts/ilasm.pre [new file with mode: 0644]
msvc/scripts/mcs.pre
msvc/scripts/monodoc.pre [new file with mode: 0644]
msvc/scripts/order.xml
msvc/scripts/prepare.cs
net_4_x.sln
scripts/ci/run-jenkins.sh
tools/offsets-tool/Makefile

index 52580fdb4232acb157abd620aa3945e85829747e..2b583e599be14ae9ab3139c7a11d55e7a1ab574a 100644 (file)
--- a/README.md
+++ b/README.md
@@ -19,28 +19,30 @@ The Mono project is part of the [.NET Foundation](http://www.dotnetfoundation.or
 
 Officially supported architectures:
 
-| debian-amd64            | debian-i386            | debian-armel            | debian-armhf            | windows-amd64             |
-|-------------------------|------------------------|-------------------------|-------------------------|---------------------------|
-| [![debian-amd64][1]][2] | [![debian-i386][3]][4] | [![debian-armel][5]][6] | [![debian-armhf][7]][8] | [![windows-amd64][9]][10] |
+| ubuntu-1404-amd64            | ubuntu-1404-i386            | debian-8-armel            | debian-8-armhf            | debian-8-arm64              | windows-amd64              |
+|------------------------------|-----------------------------|---------------------------|---------------------------|-----------------------------|----------------------------|
+| [![ubuntu-1404-amd64][1]][2] | [![ubuntu-1404-i386][3]][4] | [![debian-8-armel][5]][6] | [![debian-8-armhf][7]][8] | [![debian-8-arm64][9]][10]  | [![windows-amd64][11]][12] |
 
 Community supported architectures:
 
 | centos-s390x              |
 |---------------------------|
-| [![centos-s390x][11]][12] |
-
-[1]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-amd64/badge/icon
-[2]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-amd64/
-[3]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-i386/badge/icon
-[4]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-i386/
-[5]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-armel/badge/icon
-[6]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-armel/
-[7]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-armhf/badge/icon
-[8]: http://jenkins.mono-project.com/job/test-mono-mainline/label=debian-armhf/
-[9]: https://ci.appveyor.com/api/projects/status/1e61ebdfpbiei58v/branch/master?svg=true
-[10]: https://ci.appveyor.com/project/ajlennon/mono-817/branch/master
-[11]: https://jenkins.mono-project.com/job/z/label=centos-s390x/badge/icon
-[12]: https://jenkins.mono-project.com/job/z/label=centos-s390x
+| [![centos-s390x][13]][14] |
+
+[1]: https://jenkins.mono-project.com/job/test-mono-mainline-linux/label=ubuntu-1404-amd64/badge/icon
+[2]: https://jenkins.mono-project.com/job/test-mono-mainline-linux/label=ubuntu-1404-amd64
+[3]: https://jenkins.mono-project.com/job/test-mono-mainline-linux/label=ubuntu-1404-i386/badge/icon
+[4]: https://jenkins.mono-project.com/job/test-mono-mainline-linux/label=ubuntu-1404-i386/
+[5]: https://jenkins.mono-project.com/job/test-mono-mainline-linux/label=debian-8-armel/badge/icon
+[6]: https://jenkins.mono-project.com/job/test-mono-mainline-linux/label=debian-8-armel/
+[7]: https://jenkins.mono-project.com/job/test-mono-mainline-linux/label=debian-8-armhf/badge/icon
+[8]: https://jenkins.mono-project.com/job/test-mono-mainline-linux/label=debian-8-armhf/
+[9]: https://jenkins.mono-project.com/job/test-mono-mainline-linux/label=debian-8-arm64/badge/icon
+[10]: https://jenkins.mono-project.com/job/test-mono-mainline-linux/label=debian-8-arm64/
+[11]: https://ci.appveyor.com/api/projects/status/1e61ebdfpbiei58v/branch/master?svg=true
+[12]: https://ci.appveyor.com/project/ajlennon/mono-817/branch/master
+[13]: https://jenkins.mono-project.com/job/z/label=centos-s390x/badge/icon
+[14]: https://jenkins.mono-project.com/job/z/label=centos-s390x
 
 Compilation and Installation
 ============================
index df0d97868d65d778413196ac1edfa52ca1d49991..342a6b8daf3a953dbaf70727877c9ef3ac61b57b 100644 (file)
@@ -1,4 +1,7 @@
 @echo off
 cd mcs\jay
 vcbuild jay.vcxproj
+cd msvc\scripts
+csc prepare.cs
+prepare.exe ..\..\mcs core
 msbuild net_4_x.sln
index 17b2e16e7eefe0ab20d3a47563665a2dcb29542b..f7583abaa03f6ada46c8a91cd52c828e9f642da6 100755 (executable)
@@ -1,3 +1,4 @@
 #!/bin/sh
 (cd mcs/jay; make)
+(cd msvc/scripts/; make prepare.exe; mono prepare.exe ../../mcs core)
 msbuild net_4_x.sln
index cff61275963b3e8a01df250650ea8cd0d47666b5..523390309a0fa3ad80bbd27f63c29f9239709f61 100644 (file)
@@ -1,7 +1,8 @@
 # Process this file with autoconf to produce a configure script.
 #AC_PREREQ([2.62])
 
-AC_INIT(mono, [4.5.1],
+# when bumping version number below, keep it in sync with man/mono.1 too
+AC_INIT(mono, [4.5.2],
         [http://bugzilla.xamarin.com/enter_bug.cgi?classification=Mono])
 
 AC_CONFIG_SRCDIR([README.md])
index 00252c18fc0a4a206e45461736a890acb785a9d8..163b37483c08b5310c4e3d4c2e22a1ed59b1e6e0 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 00252c18fc0a4a206e45461736a890acb785a9d8
+Subproject commit 163b37483c08b5310c4e3d4c2e22a1ed59b1e6e0
index 16a6fb6d003a0bdd7091fe7001b114482fdb826a..5533b8f2e252bf750dba873d24aeecf78b79facd 100644 (file)
@@ -184,7 +184,7 @@ static GC_thread GC_new_thread(void) {
 #ifdef __GNUC__
 __inline__
 #endif
-LONG GC_get_max_thread_index()
+static LONG GC_get_max_thread_index()
 {
   LONG my_max = GC_max_thread_index;
 
index 22ffdeb139ec2c94ebf1a57e7b052ce317bd573f..e2eff1620e7697a20a9d28a36db3a4e0eaf6479d 100644 (file)
@@ -7,7 +7,7 @@
 .\" Author:
 .\"   Miguel de Icaza (miguel@gnu.org)
 .\"
-.TH Mono "Mono 3.0"
+.TH Mono "Mono 4.5.2"
 .SH NAME
 mono \- Mono's ECMA-CLI native code generator (Just-in-Time and Ahead-of-Time)
 .SH SYNOPSIS
index 7f27dd9fd511c66eca5e9044e336c75bc5157a27..16d3a64b65ef2890025c644210a2fbaa7fb7ab6b 100644 (file)
@@ -38,7 +38,7 @@ test_sourcefile = $(ASSEMBLY:$(ASSEMBLY_EXT)=_test.dll.sources)
 endif
 
 test_lib = $(PROFILE)_$(ASSEMBLY:$(ASSEMBLY_EXT)=_test.dll)
-test_sourcefile_excludes = $(test_lib).excludes
+test_sourcefile_excludes = $(test_lib).exclude.sources
 
 test_pdb = $(test_lib:.dll=.pdb)
 test_response = $(depsdir)/$(test_lib).response
index fe042b78d9eb9a92e5b6fb482e1d6abea3494b2b..50cdfcf6868455e673ebabebbce2a6bd2463a192 100644 (file)
@@ -66,9 +66,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 77b7e2ba8a3d69c0b41cec92c595300d6fcbdbfd..2539a5b4b18c3ab5907432eedf73d113a3b8b53d 100644 (file)
@@ -101,12 +101,11 @@ $(ProjectDir)\..\..\jay\jay -ct &lt; $(ProjectDir)\..\..\jay\skeleton.cs $(Proje
 
     </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
+$(ProjectDir)\..\..\jay\jay -ct &lt; $(ProjectDir)\..\..\jay\skeleton.cs $(ProjectDir)\Commons.Xml.Relaxng.Rnc\RncParser.jay > $(ProjectDir)\Commons.Xml.Relaxng.Rnc\RncParser.cs
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index f8a3fc8a6688559fce3b091b0d29aa98a49a1a52..2c40504aa6351c064685cbf3d0d647b459cbb9cd 100644 (file)
@@ -69,9 +69,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 31596a05830c30860ea5600f5e156090626a643a..bf2bc3fb53392e1f95933a009cfc1a73be4c197e 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index e91787108f233ab4e538da8822295556136fcc58..ef4329f1ed1651b063c7f75433942c7f959ce4a0 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 4bda4a30149bb76c6b64b827266f38e88080cfcd..1bca67282f6da67a9c265b87180d2efbb76f547e 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index e3653b06c7128478fab8265032b39653c183e376..5189fe3c1ad9dd1b256172b9821afac1c19b2e51 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 404133181847b88b617091cf217e398d3dc5b4d2..3980a552ddc2b8aad35c6f6b533ca7f019923a42 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 18f3771df2ab9b37faacfaec45a928e4d4df24d5..eee52ccc352be132c97668daafbb3fbd176c2ea5 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index c785979caa62380b263bfa8908774b840a4e54f0..a7e0139702fdfc1c2599e014ec02f09cb20f2c67 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 64804aa22792ae6b9f259a05b30114eecea02bb0..44e2fc91c581000f5af83d4984d4b4d716973e38 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 8eb38f8fdaadcf803a771d098e9eb7a7757ed9d2..c3eb239218a40ec2208cdeb378f65f310e98a374 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 88039f2a2c12840cb98b8407cc1a8fad6fa015d1..a0d3c1b52b02f21e168a7871db5f31aaccc61e61 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index b05f36a44b901fa254dca51380711ed62493bb8a..cbeca4b58869d333c35ad5c78d317c77197cde0e 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 823e2a490064ead1268c0d22b46b0a0b16a58dcc..65e0f7e3271c205df13572d6cb203facb29c5da2 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 12024f41601dc639046b3b5f48076ed9d0ec3190..aea55676326c0896383a095f4852dc473700df10 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 669a788a88697346c915b0218a0ee3c2e3d7243e..a1a92d79df8d9f62075d6b1b450c79195c3e54b7 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 30ac0d6e81e282d5269e5be0f80ffe6a5dbffa5e..c42832bf3a4d159a9ea9693cae7237c78bb1ca87 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 97f02ce9cf51ada183bbb86933a02e93a8b924f9..493303cc15ec906a14e54fd18a2a621dca26c829 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index cfdfcff5f893032656474fcaf8f3e3bb7458e8c3..3427bb006e938667d4256e9f89bd02b1f0edb79b 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index eb5c0b6f344dd50adaeeebaa92be80907863d0c9..72f03e89c83d80eb417a326407f379f37fd6dc70 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index f8a292eb56154afdd9de59d33688f37d22caa66b..5de4c3cd3b7d68d8a5bb956c5c51402433673693 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index f77e81bc7d72ec9f5cf3732cb09615540895a008..e8db26624c340b0cfba90efec96e360f6e42b63f 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 3665399efe8d0508a8f94c5787dfa8540341b54a..a9534e3cb63ad497812e6b34676e33c2e75b2f8d 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index a238cf76cedd018f551ad67f08baaf22ad9da649..210e44530fa073ab5bed443ad33164754fe40355 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index a0c7b944aa5287308c6600cd804b88b97109f964..9d1c6f14752dc35a0aa108f1e177babe420c7c13 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 18df440f1d9257502bd83321b19a5d940e7ea420..fb2f1485d876758afc65cc09e5a0fe04af71134c 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 37b0d96a90aee4bcb781151b01780dfbf93628eb..5d1e6d7135dd47eb1965187f8dca67af1d32e018 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 93382ad2369290054cf00b1f64ce1d710bba54af..f31a1fc6a5541755ec858f3e0752eede938708f8 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 751871faeaf6516d8848ca53a984b598352e34fc..7003052edfdd6c45faa21a9a8a8f64e3a26510cc 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 45b8e0b23a3f5a56cc3d4f164ce10be97427a428..73d08a19bd1819928c7ae99f008a6d699c23233a 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index ca09028ce161abaa3b0debf09376b3f85c6a1437..832c003b52e813dd0f25651f00370f164a258cfa 100644 (file)
@@ -29,6 +29,7 @@
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.Tracing.EventOpcode))]
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.Tracing.EventSource))]
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.Tracing.EventSourceAttribute))]
+[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.Tracing.EventSourceSettings))]
 //[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.Tracing.EventSourceException))]
 [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.Tracing.EventTask))]
 //[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Diagnostics.Tracing.EventWrittenEventArgs))]
index f31b7e6f6caea3f41c33c11a26993227ac27ec2d..076b4d9bfa0ac93bb6e08f71c0df53ec3147817f 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 049ad18d0badbeafe94e80a42765a84a9daf6aba..d0aa63ef3cf82da9c7fbdbdead442cc5046b8624 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 583f24adc18dadb0d6819c0757c30970d22d7023..662128772641f3cae697a1b0e728c7a50f989730 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index bc883eef2dedd6728010ec9759f2694e0b313e6a..d3117287fbca38b224d4bbde00967369ca809b1d 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 7884a6f07d2723aa34147e60c64a1e34e6249d5f..4423a9dc9a4a3e09e7c691b45227bd865b208534 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index f982829ca26c24179ed5ffc0e7cebc0eefc2949c..0f9d44c9cd40cfedd6a28e42d52331d02236ab24 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index cac30d3107c3b862b16c31ae941e480def4fe009..5edbbbb80347b137bb83e2bfa0bb985e0f6b4778 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 05a309998f8302761923743e0b48d6c831c9ab7b..98c67e82710ef515ea18f601007b1f30b55739b6 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 35ecc8c825adb6afc45c3444bd1bcf3d190e08db..75fe3913f4ea3c52cf87189bce48b0eb0dcbf514 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 2115e2a1819c1416746dff7676891a2c65a30c5c..34784bd92b7419b5f5f20fe63b98f17b4c193629 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 4b72e6e6743b0e4749f262dfe77aa83c7057853b..866e14f1a16e3734c92652ccfdecc6c8452b1038 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index d0436d3cd0c4c2703aaa4889d8be7215d66ff66f..3e44aef460638d8aab34147679adde227599c33f 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index fb4b372f7747b44d313a0dcbfe9b696f72533093..71c4350a6e7c20e1867e6b1c32d3e493203dce84 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index dffbb755dde83d1f291337569479967d4645446b..c65751b53886e1c32a582901ec424f35bcb32a40 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 6b2d1701172454bc0e11218eda514eeb35d2a306..da00e74eff75fba850356d516f3af781c8ae6393 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 04d08cfac845a12193c0cca20d60274cd5cbb84d..e7c6951666baa12a800cd06d961ab12adff0494b 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index e31923ed30837754ec011cd0d59fc05a625797d2..de83417856b9f6a86c74409a9e3593229836fee9 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index a0165835986cf98e5f62c355d581de5076d22165..3aa8b75ec1f4a81648903dd966e7597d03515777 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 9eef05ec8115dbe8e45401d1585b1bea7504972f..9c29c3428fd68336d93598fd0569b8380e8e362d 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 678be54e88cae06a953e9c1397320e75c863dc69..b14fcb89dc591150f40b0a66591ab7577805e667 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index a4545552c09f725d2d016741079b1369ce898dbf..5ff7c8612a0e4c6dcaa84b6cac0aec52ae9b4db7 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index be6a541ac566d2cd05f9414a082f78ae79d2d352..c49aa56c8a26fbbcf85e38776db1a75037820310 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index b817004afcc199d43c6ac1f7f99b701ed57d97b6..9c59776987caa43f66a7f1c1c3aee48e8ef81b1c 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 1a2d4da6f6d7d38eb455c8a151fa992fe98b307e..f38a0d52aa5f3b3fd1a258a33a0d841b853fdbf9 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 6e6c5368560662e5008b3405264228d63214055e..35e6e9a6d32a27560d162550ad17fe3b9fd8f17b 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 1ac9b975ecb2a23b2b54d3d2181eb9e299a2985b..042d7ace4fc259801e1e0d1e056b62d2e27945e5 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index d5492795622b66da2728047c8aa3370c2ff4f6f0..aa3200543918b9cb6a55550d132bb9d3b2c2f53c 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index a3dd89f3364977ffdf3531a4beedc9069f1e7186..9d81ac997087f150a62f9d42bccfac4d5b726cfe 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index c7c729cadd51781d340d85b4a68e7b09b374a0ea..346a8c821b9f9c189769e64550ad854b165d39d7 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 39c5dea1e109cc8cd1178583ec80ad5491b37c94..db14b8d3b4ab3e27cfb1afbaf89bc9ceda6bb7d8 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 5f2ea156ae6e7d2167d6f751b8679d212e5221b1..ca762d98f2d89af49aca3509a01130414874deb1 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index dbe8b443eb452308419fcfe5ae367ed8f0f04eea..1372878cd18e26f69a40c9b714ab02246bad444f 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 8e011bfa064683320d77543c37a7fa1454a034ec..3a298830e16696ccb3f84527a9d06e4359c8e1f5 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 4dddea9fb941172d600819c0c834f9e3cc4299a6..11199656414794790d3704a3de44e000cb6f5678 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 08290fef52e3f8541cf79b53d781f7ac833200dd..0103faa7236152f7c62878f87d936f7d827eadf0 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 21c1be45a9ada0f684095ce2d6f5442daa99c2c7..e1230f83e0f2c966e13a586da2ea81e0def0128d 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index d108c9f5106886434810d8dc3eef99879196aeb4..c81a0356846024fc1b0324bc480b4793e4c8ada1 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 14bc25b185430b99ade250a9dc9281d79184de10..df6c913f466d3dd7d2d68c31a482a8f6a08775b8 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 778e101d05aa26581785c14e035279aa91e578ad..3f6502b6e7a2a0b44463be2802fa3f28cba52435 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index ff0029b6c886c97f53fbac18e6b32a824d810e5a..28c20187cf4de525314baba44a38b3038b95b352 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 49e318e9f20c0367b9a27b7a50ab2d49a0f39bb0..e407d0fd9c7825ed41de42d80017ed782c091421 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index bcd5b04de6d5f550a107b4730b577666af66e539..5a41690bc62c94b1d919e03c4bdd86bd62659cd3 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index bcb2fd210e2497874f24dbf23ce56e787d24c17d..9b883b5f9d788d085bd3b52391f97219fa8d1639 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 8cee015433cc417e2aacaae8912d1f3ab7d8c7ca..2030414734b675bdfeb4fbb1663f37b26627f3c8 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index c6be45f39bd325a894e9c0231056fb050c6354e7..98be695bc274eb11047cf63ab7f9861d1b9b23d7 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 0e39fb11b5cdc80338eb8aa4968aa1d88d6fd974..eaafdd2b4b60df04720d5c3cc0219f3a3f57d62e 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index ee028cc459990165a4e9feeaa6cfc62911b62026..e40ceea68096b110e6bb3d8161e0332df38c6979 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 2c09193847d5a70660cf4cf51d38c3d5a82882d0..f3b9b2dadbd3ad659e09c6be1c2d81b126e38473 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 8a2d565c855197cc3d0115d56c24a0a481c35f25..f00748c40fa8d979c416ac6c6e50035daaa7aa4e 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 2c8d4f179e73da8b351087a1a38d64b631aa7e46..d29f79f2d6c8e204bf6c5573ec3f0ad87e7056aa 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 614fefbdfc8ed2d8e6af6aeb423cf382f3bceda1..0dddc7ef0a7454024c3cbf7b414273c5251f14cc 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index e706e5d1bd013192c6101505a7a48faa098c0efe..7011c5559d7f022611bd5624ed2e031b8bde1fa9 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 4ecd5a17f67e6927b02f7be055f141858a6566d5..a82e8d24fb4044a30ef7abf9fd234442fef0677c 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 73660f68e932fcadc88110458a0517efd7fd6829..18a14af836bc321c47cad65d8369c6108487e2a9 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 3f64cd1ae6db7d891072dfcf36d78172e8b7d14b..71204dcabbd6d8c4fedbfefd37151f115e604e24 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index e6dd355cac1175f4480adc545ac5b25ac2df6ddd..058a3e642197a0027dbc590b7f7898153ed7bc0c 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 87bf277b76f735b5f55b4d4cb4d631bb30b0e96f..d88f7bba8c654ad01ac494b7162266ef99e0b6b1 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index b5970422fae59a12f3d1377da1c7d683d982b959..546f03f9c7cae8fb50b05f134b3d4842b75d270a 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index d8c0b4bd733d400a7f09bc4be1ef3ae8d73150bf..341cad800eeca907e8e10c79816f45aa604b1aa0 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 5f495500681d7543d781fdb4c8434e34c2da8843..3c274abb796468105212f8566dee5b779a2f9265 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 56d78a94f266fa553636ff59627d5344c27e4c57..20640b091c8888c9489aa5ad2cf58a93ff690333 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 36753e6f836ee2c20828d0f660c0240bc88ecb51..a523ca9926323bed1c24e3effba3d27267e8b100 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index e4995f585bb7e869bd136036e88c182f7c1d71d0..268dc0f5926ea92f5d2e498cf743b6f5c5f15a00 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 1ac4f8c2021c73457ccd3be663ff948948e537e9..1608821c77b2d9b41022fc531da38740b488857f 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index e705ce1cd58ce9bf7531f3a5280aa2492f9383ce..c331d66a40ad313a1e43c98144bd36f3646541be 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index da43a4677337866375e0e249f0f1ec6e601eb435..098c162409a25d264746403cf24419c03911e7d7 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 68d195c4c142fa4bd4f16e1aecdaf070ff63ab53..9865a1540f82d5bc5d30bbc1f357e09a704d6e67 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 4b2091d8f9a643ef4b23e4319c65f514fed404ce..53e18fa4825430406654467d66ebad8c7e6b10c5 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 66f866878b46fe9760c5ea9c9f196b8065bbed94..1f6584376e92e39c2beeef060ba893551b9d8a57 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 59a03ac1b7845aa67fb45f2eae4332ae91587e65..3b0e5112389c7a70d1472def7c0607361b91e6f2 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 852ecb327428ec654a55f4c6612cd6b3f05689b3..0a126a61c73191792605cae1074dc858ae86c585 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index bf79d8e04eeda6d5bf53598486ae2fc3e01099a1..18aa2ae6185a6f3555e3adb5d3cbe0dce8787f23 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index c25ad143f7932e0dfef89a3882011f4916486230..53c26f634d146ebf9a68534fe703b1392394c8f0 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 795d52ea63d85f7757c4f73aee575b336d733296..7e2fc1e0a8656368b91f77aa3c19870a3f1e256d 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 8a9b0025d4754462efdddfb3937ae5b5a812fa8d..3a098dcdfc2955aef7c0233e4f6cb3677e850e3a 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index e309a12b5465522ad88e6028fd4a5b18a38c0d2b..d830d0e08438a3f08c2fcf4a49b25eab9970c16e 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 60c9fb3af477e3c3838299a69c17506220d28721..0b25b6be19eae86a64166ae03e541be4605577e3 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 424fd80ff89ae45de111e75ccad0e1b2969c307d..1508ff5d41a0377da44a29f08a847320b0e0020a 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index b69440c764bdfa4a332f3bed45c966e84a3d9b83..05cafee86eb8ba471b1c6bdae82d8aeb0ab39ddf 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 89ba9387077c64812469d166e4b1ddd47b429176..4eedc26e62d9278328420893a73a086f1eb276c8 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 85e39ae33185082f9a2f2bb0261cac5e9735b06d..c478e7918cc0bd00a5c685aa9c30498d09920245 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 8d4e04ba544388878d5b68266c6fe2f81af9b722..5c8474d8caad113ca876be256d22aec472740b39 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 4da5a0a148095b5fded8b7e2a4576f6dda0b6263..3128965240d2d2d6bd1f35d26360020cc2070ba0 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index b37b915f6cef382b3e0566c30452a88bf19e36c2..2a7daad7c162cfa1c8b571bfc765b8df962fe590 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index df89b024ef41b5911b8a4b71334c34ba5b4d99ac..00de778e120b2fa500fd917abe1d97fd470f7d31 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 64dbf1302bc2c6ddfaa531e3094f3f17b489fc94..70915d9a5db74507e4e1ad50ba48451568b9604c 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 52ce89592a8edfabc215b069445a72483d13fd35..3052af6fdcda1c56f16b62edf9910f37515451f8 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 60c01acc019d3670ad7366912b79a69bfe56106a..58a1e3e48a417a439a086bcf394eca62ab7543d5 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 9cf45b4906f5e56b943a7c0eb52632a0e3223b66..081c415cfe00443197dcaa8ff6ec74964e36e379 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index d6f877ad1aec9852436d19e690c63a651a0f4655..a0450e1ff2dfaa1fc408b1fcea24bdd6d8407002 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index d04b3246aa46b11cd4bd1e63b1bab3bfd9f705a6..0b49733d39b11782b4f2fd48e757bd1605962f4c 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 70535c2db71ae8cf873b7bac3d9fab55ed96e006..b607038b511e0fe542bebe205afaaa179cee4e49 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index acb4e8bd98a24b71a9c60502a6a65ce75825ab59..6dfebc018ae02420221c9c095442e0c1c33a5d99 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index cf1d0001be051deffb58524adcc2c3a4ba39a6f6..6fe69f7e13d2aeae84d4380ff3b5524f378cf38b 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 0ab008df580b8c38936c08f0a6077916ced20090..fcddfd588d8195554f4d748308c03f20950e2cf1 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 06e6af0ab879c03d6e2919e868162785f84ea890..adc60f7e829ec651563d4bf04398919481e86a1c 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 1e85fdac4de660571cd0632bb44a80060baf16e7..c4df512148f9c4e53aacb716b68e6919ea28aea0 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 7fcab78e23e664c8bda09ae9788ce36ab8cdea05..3e95b77fbd1dcc6768e8932cd82530805f5aa20b 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index ca42405d866c31f8841b90b45df705dd9b2e1c88..c6c9d3a44bbdbdd5d6c99d427b5324e5189a971c 100644 (file)
@@ -76,9 +76,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 20cbed96fe641ea44cf29e5b2f2484d891ac1e4a..75ff7a5aac9dd7024ece9f556a05afada47ca3d9 100644 (file)
@@ -72,9 +72,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 8c24b1422ff2ceea9c93c54c8ff7285f4be1e543..1afa51aef32e08d5690f8dc840d75402083ec000 100644 (file)
@@ -71,9 +71,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 67f92d8072bb3bc4126276b2471bdb08dc9ce1ec..824b31774d50af80a8d219eab82d3afd32429f82 100644 (file)
@@ -73,9 +73,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 9ddf914a9903a56ca94d9fe86d7d96a525090587..abde280e27d6cde0c6e9ad52bd88b3bd5f04aca2 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index f167be2df6b77311f4e409cf8cf435bfae5423f6..95900687116613c4d2697c497dc7e03c1e6fa99c 100644 (file)
@@ -79,9 +79,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index a79376597b3b466022ef85cda01cd4dcc784c7b4..1479ae7ddb88a683c3f18a83ee9faca50f18f7a9 100644 (file)
@@ -87,9 +87,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index cbe4eb3538f1c4c31a90a546b04f370f9271cb67..6f7047f15c02021fe96fad22b955d68d35ebe3f8 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index c8d7b22dc39306e77aebce44751a168143633174..652aab45f53431245fbb367815ea1c81734aee21 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 9409e5c66c7ea7518d1e63c877083f44b0704570..ad57c7d514e57e4c05ea4c58c2535ef61eb95b60 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index cc2253eefd035ba7bcd6f0d476d7d129d789aae8..d051dbefb947465da844bc655be2a7017172f4dd 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index ff6a2479edac45bfe7a7220eaefa26ec1169165d..1e5e1913b4342c0b271bca55f4a260bff1a4288f 100644 (file)
@@ -84,9 +84,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 1d9ee21e1b21b889c42eed3ee52e627b971368fc..24dd6dd3751303edd192404062260cb9e7a61500 100644 (file)
   -->\r
   <PropertyGroup>\r
     <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+$(ProjectDir)\..\..\jay\jay -ct &lt; $(ProjectDir)\..\..\jay\skeleton.cs $(ProjectDir)\Microsoft.Build.Internal\ExpressionParser.jay > $(ProjectDir)\Microsoft.Build.Internal\ExpressionParser.cs
 
     </PreBuildEvent>\r
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
+$(ProjectDir)\..\..\jay\jay -ct &lt; $(ProjectDir)\..\..\jay\skeleton.cs $(ProjectDir)\Microsoft.Build.Internal\ExpressionParser.jay > $(ProjectDir)\Microsoft.Build.Internal\ExpressionParser.cs
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index c5651873dc2264c984379a5b290b16d735e35be6..4b2bc7d98a77bfc48a27217a80408c71ab94ffbe 100644 (file)
@@ -88,9 +88,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index bd1bddb86956c84af66f235f63cb30f7f97b828c..8fe58e637bdc6d3f943942127a89a8afa7c899d0 100644 (file)
@@ -75,9 +75,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 3fac18c05e5ff23f26e4a755a1b4ae0cae8e6b9a..e68b8bf4ab61403e253de8e4cd805fcebe1ee00b 100644 (file)
@@ -71,9 +71,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 8537f08132a9e46c3edd167540ad3d379753b660..1f86305857f2d743b5a753a20afa9bad286bde69 100644 (file)
@@ -95,9 +95,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index f31ba902cb5b9a7e1cdd7aa9b538f4630bbade93..36c99153b4962d85f4f9e3620e29543ed07348e4 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 2c77520eeaf45be187da7cfabf433c9f323fd7dd..51868debb9ffd59aa543ab0c2aa416e90a5278ae 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 06ae851bec52c41d1fc0a78af73e86b107a77a5c..c4aee220b49858a4c6b34793604d5c0f575932a9 100644 (file)
@@ -74,9 +74,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index af9b3bf3463e35b950bc9f792cd7b47dae9fa881..f1cbfb1d8fe0ac5002cadaf05368ae0cb073866a 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 2401be1b4051a46c81aceb485079709f8dcfeb88..e2169fc9aeb7aadfad157975d8e8201a44ad1ff9 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index f12bbdb430464b76447504f330601f54423ddf23..0b59fa3d3c91b2a45090c2f6ec514b969f00d954 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index a5453d47d276e77ca89d54779f5ff3929f886483..35eb5c1bb817dd6868bb67a56c04783756f440be 100644 (file)
@@ -42,5 +42,5 @@ $(PREBUILT): %.prebuilt: %
        cp $* $@
 
 $(RESX_RESOURCES): %.resources: %.resx
-       $(RESGEN) $< || cp $@.prebuilt $@
+       $(RESGEN) -useSourcePath $< || cp $@.prebuilt $@
 
index a5ea5e1483dbe2fb90905b1cb95fb81e5a734511..7a1ee0ced12a4d53865db6a531fc8e46ddc87f7b 100644 (file)
@@ -94,9 +94,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="resources/SR.resx">\r
+    <EmbeddedResource Include="resources/SR.resources.prebuilt">\r
       <LogicalName>SR.resources</LogicalName>\r
     </EmbeddedResource>\r
     <EmbeddedResource Include="resources/SQLiteCommand.bmp">\r
index 5fc27764535c1c8151316703c3455cad371e9ea5..262c68e191d548b38b37ccc9868e05762761c0da 100644 (file)
@@ -178,7 +178,7 @@ namespace MonoTests.Mono.Data.Sqlite
                        }
                }
 
-               void AddParameter (System.Data.Common.DbCommand cm, string name, object value)
+               void AddParameter (global::System.Data.Common.DbCommand cm, string name, object value)
                {
                        var param = cm.CreateParameter ();
                        param.ParameterName = ":" + name;
index 7f6af225caffab319eeb52fc23961198bd647d2e..b03b61a4867a141326e27cd405391829900fcd40 100644 (file)
@@ -61,7 +61,7 @@ namespace MonoTests.Mono.Data.Sqlite
                        textP.Value=builder.ToString();
                        floatP.Value=Convert.ToInt64(random.Next(999));
                        integerP.Value=random.Next(999);
-                       blobP.Value=System.Text.Encoding.UTF8.GetBytes("\u05D0\u05D1\u05D2" + builder.ToString());
+                       blobP.Value=global::System.Text.Encoding.UTF8.GetBytes("\u05D0\u05D1\u05D2" + builder.ToString());
                        
                        SqliteCommand selectCmd = new SqliteCommand("SELECT * from t1", _conn);
 
@@ -79,7 +79,7 @@ namespace MonoTests.Mono.Data.Sqlite
                                        
                                        object compareValue;
                                        if (blobP.Value is byte[])
-                                               compareValue = System.Text.Encoding.UTF8.GetString ((byte[])blobP.Value);
+                                               compareValue = global::System.Text.Encoding.UTF8.GetString ((byte[])blobP.Value);
                                        else
                                                compareValue = blobP.Value;
                                        Assert.AreEqual(reader["b"], compareValue);
diff --git a/mcs/class/Mono.Data.Sqlite/monodroid_Mono.Data.Sqlite_test.dll.exclude.sources b/mcs/class/Mono.Data.Sqlite/monodroid_Mono.Data.Sqlite_test.dll.exclude.sources
new file mode 100644 (file)
index 0000000..cc310ba
--- /dev/null
@@ -0,0 +1 @@
+#include monodroid_Mono.Data.Sqlite_test.dll.new-exclude.sources
diff --git a/mcs/class/Mono.Data.Sqlite/monodroid_Mono.Data.Sqlite_test.dll.new-exclude.sources b/mcs/class/Mono.Data.Sqlite/monodroid_Mono.Data.Sqlite_test.dll.new-exclude.sources
new file mode 100644 (file)
index 0000000..99a8ffe
--- /dev/null
@@ -0,0 +1,2 @@
+SqliteDataReaderTest.cs
+SqliteParameterUnitTests.cs
diff --git a/mcs/class/Mono.Data.Sqlite/monodroid_Mono.Data.Sqlite_test.dll.sources b/mcs/class/Mono.Data.Sqlite/monodroid_Mono.Data.Sqlite_test.dll.sources
new file mode 100644 (file)
index 0000000..80f5788
--- /dev/null
@@ -0,0 +1 @@
+#include Mono.Data.Sqlite_test.dll.sources
index 9851beb1a81637581419d04c1504ba9e619ff1de..082a3e024a76a38b799eb62d7623cc7ab73b11ab 100644 (file)
   </resheader>\r
   <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />\r
   <data name="DataTypes" type="System.Resources.ResXFileRef, System.Windows.Forms">\r
-    <value>resources/DataTypes.xml;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>\r
+    <value>DataTypes.xml;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>\r
   </data>\r
   <data name="Keywords" xml:space="preserve">\r
     <value>ALL,ALTER,AND,AS,AUTOINCREMENT,BETWEEN,BY,CASE,CHECK,COLLATE,COMMIT,CONSTRAINT,CREATE,CROSS,DEFAULT,DEFERRABLE,DELETE,DISTINCT,DROP,ELSE,ESCAPE,EXCEPT,FOREIGN,FROM,FULL,GROUP,HAVING,IN,INDEX,INNER,INSERT,INTERSECT,INTO,IS,ISNULL,JOIN,LEFT,LIMIT,NATURAL,NOT,NOTNULL,NULL,ON,OR,ORDER,OUTER,PRIMARY,REFERENCES,RIGHT,ROLLBACK,SELECT,SET,TABLE,THEN,TO,TRANSACTION,UNION,UNIQUE,UPDATE,USING,VALUES,WHEN,WHERE</value>\r
   </data>\r
   <data name="MetaDataCollections" type="System.Resources.ResXFileRef, System.Windows.Forms">\r
-    <value>resources/MetaDataCollections.xml;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>\r
+    <value>MetaDataCollections.xml;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>\r
   </data>\r
-</root>
\ No newline at end of file
+</root>\r
index 441381cf68acfe7c9dc7fa2bed08f415efa95b31..a1b59026c1d47d9fb1fb80625a395623579d1e80 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 0f152a10f8b25779942aa9b15012b1e21770e1c6..51d78f17c2fbf656c1dbb7b1a121a458e6ad6bfb 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 086c6f5f9aa92214c1c9e00bf2ee9d8b98968484..cd0b6ae51ba33ef260f685dae6b0930e66c324ee 100644 (file)
@@ -1424,7 +1424,7 @@ public class DebuggerTests
 
                TypeMirror t = o.Type;
 
-               Assert.AreEqual ("MonoType", t.GetTypeObject ().Type.Name);
+               Assert.AreEqual ("RuntimeType", t.GetTypeObject ().Type.Name);
        }
 
        [Test]
index f6b2d8c99554f2e1d499942307670e8d13ef025a..781affa962a70637a5b24e3271886ad1ec55044f 100644 (file)
@@ -75,9 +75,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 89229ea42e82ca7e7ea9ae7e6628c46c2d28e9a0..9aa0a5dffaf85f310ce84f3c8828737d2dc8699a 100644 (file)
@@ -66,9 +66,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 16916e2a3a9795eac98bef2193da4f0f765816de..40771592cda08379045b3013d8644da60516962d 100644 (file)
@@ -73,9 +73,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index d4c8d51e6407df80579580794a155bbb62a4023e..8b83f6323907e479ef4c20d46a86603b246a5c8b 100644 (file)
@@ -90,9 +90,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index a918de5b62b9c76231ecf4504af976af59f3f923..d8f8685ff498a07648df1afe0ae3ba96eb694e45 100644 (file)
@@ -66,9 +66,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 446ec7b71c39c9b608c9dd0fad9392273f1cb9a6..f5de89dfdd4753428e3242c3e3ddbd21c02f9cf3 100644 (file)
@@ -75,9 +75,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index ebdb1e1da80aff782b0afc0dda40e9355f355a30..51e6db7e1d820b7e97deff2aa6f6370cd2ec5978 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 1edf3f08289ecdce1296aabefc191b71b2c63d07..2f0747294d316bdb587f7af87c1d1c7734c07f40 100644 (file)
@@ -1001,7 +1001,7 @@ namespace MonoTests.Mono.Unix {
 
                        Assert.AreEqual (end.Length, bytes.Length, prefix + ": byte length");
 
-                       for (int i = 0; i < Math.Min (bytes.Length, end.Length); ++i)
+                       for (int i = 0; i < global::System.Math.Min (bytes.Length, end.Length); ++i)
                                Assert.AreEqual (end [i], bytes [i], prefix + ": byte " + i);
 
                        int cc = unix.GetCharCount (end, 0, end.Length);
@@ -1012,7 +1012,7 @@ namespace MonoTests.Mono.Unix {
 
                        Assert.AreEqual (start.Length, r, prefix + ": chars length");
 
-                       for (int i = 0; i < Math.Min (r, start.Length); ++i) {
+                       for (int i = 0; i < global::System.Math.Min (r, start.Length); ++i) {
                                Assert.AreEqual (start [i], chars [i], prefix + ": char " + i);
                        }
                }
diff --git a/mcs/class/Mono.Posix/monodroid_Mono.Posix_test.dll.exclude.sources b/mcs/class/Mono.Posix/monodroid_Mono.Posix_test.dll.exclude.sources
new file mode 100644 (file)
index 0000000..0facffb
--- /dev/null
@@ -0,0 +1,2 @@
+#include monodroid_Mono.Posix_test.dll.new-exclude.sources
+Mono.Unix.Android/TestHelper.cs
diff --git a/mcs/class/Mono.Posix/monodroid_Mono.Posix_test.dll.new-exclude.sources b/mcs/class/Mono.Posix/monodroid_Mono.Posix_test.dll.new-exclude.sources
new file mode 100644 (file)
index 0000000..ed73374
--- /dev/null
@@ -0,0 +1,3 @@
+Mono.Unix.Native/SocketTest.cs
+Mono.Unix/UnixEndPointTest.cs
+Mono.Unix/UnixListenerTest.cs
diff --git a/mcs/class/Mono.Posix/monodroid_Mono.Posix_test.dll.sources b/mcs/class/Mono.Posix/monodroid_Mono.Posix_test.dll.sources
new file mode 100644 (file)
index 0000000..3af39db
--- /dev/null
@@ -0,0 +1 @@
+#include Mono.Posix_test.dll.sources
index e0b6f9c061fb5bebbce65bee5d27866bba84b758..115c3f25a7f79679d268d265a7c4e9bf231da541 100644 (file)
@@ -73,9 +73,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index f762d6a064be2cef3482c0738e58ab3ca059794a..771d99fc965243f0dede1b257dcaf3a1f3cecc62 100644 (file)
@@ -98,9 +98,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index add67691adc43b9956969e1659ff722d9f3c8413..158b09579821b0b2ed821f1a9031247f702456af 100644 (file)
@@ -79,9 +79,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 58f7ddb2fefdddc490c3a9191d8eef51f3013116..32ceb3003558fdfd3269122131eef77d414889c4 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 21890259a3a66c82d7a83f3b6187bb3f2e98aa9c..6eb3f05da224a9b1b444b7156f27f34b432d7c08 100644 (file)
@@ -76,9 +76,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 178cbe01eb8affd24eb6ec64d81d4262938374f3..e6e48767bf6173f7e82fe65dc206f5ef05123932 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
diff --git a/mcs/class/Mono.Security/monodroid_Mono.Security_test.dll.build-failure-exclude.sources b/mcs/class/Mono.Security/monodroid_Mono.Security_test.dll.build-failure-exclude.sources
new file mode 100644 (file)
index 0000000..38e0f0a
--- /dev/null
@@ -0,0 +1,20 @@
+# These fail because of reliance on full NUnit framework
+Mono.Math/ArithmeticBigTest.cs
+Mono.Math/BigIntegerSetTest.cs
+Mono.Math/BitwiseTest.cs
+Mono.Math/GcdBigTest.cs
+Mono.Math/ModInverseBigTest.cs
+Mono.Math/ModRingTest.cs
+Mono.Math/PrimeGenerationTest.cs
+Mono.Math/PrimeTestingTest.cs
+Mono.Math/SearchGeneratorTest.cs
+Mono.Security.Authenticode/PrivateKeyTest.cs
+Mono.Security.Cryptography/CryptoConvertTest.cs
+Mono.Security.Cryptography/DiffieHellmanManagedTest.cs
+Mono.Security.Cryptography/PKCS8Test.cs
+Mono.Security.Protocol.Ntlm/ChallengeResponseTest.cs
+Mono.Security.Protocol.Ntlm/MessageBaseTest.cs
+Mono.Security.Protocol.Ntlm/Type1MessageTest.cs
+Mono.Security.Protocol.Ntlm/Type2MessageTest.cs
+Mono.Security.Protocol.Ntlm/Type3MessageTest.cs
+Mono.Security/StrongNameTest.cs
diff --git a/mcs/class/Mono.Security/monodroid_Mono.Security_test.dll.exclude.sources b/mcs/class/Mono.Security/monodroid_Mono.Security_test.dll.exclude.sources
new file mode 100644 (file)
index 0000000..955ebd0
--- /dev/null
@@ -0,0 +1,2 @@
+#include monodroid_Mono.Security_test.dll.build-failure-exclude.sources
+#include monodroid_Mono.Data.Sqlite_test.dll.new-exclude.sources
diff --git a/mcs/class/Mono.Security/monodroid_Mono.Security_test.dll.new-exclude.sources b/mcs/class/Mono.Security/monodroid_Mono.Security_test.dll.new-exclude.sources
new file mode 100644 (file)
index 0000000..580b47d
--- /dev/null
@@ -0,0 +1,14 @@
+Mono.Security.Authenticode/AuthenticodeDeformatterTest.cs
+Mono.Security.Authenticode/SoftwarePublisherCertificateTest.cs
+Mono.Security/PKCS7Test.cs
+Mono.Security.X509.Extensions/AuthorityKeyIdentifierExtensionTest.cs
+Mono.Security.X509.Extensions/BasicConstraintsExtensionTest.cs
+Mono.Security.X509.Extensions/ExtendedKeyUsageExtensionTest.cs
+Mono.Security.X509.Extensions/KeyUsageExtensionTest.cs
+Mono.Security.X509.Extensions/SubjectAltNameExtensionTest.cs
+Mono.Security.X509.Extensions/SubjectKeyIdentifierExtensionTest.cs
+Mono.Security.X509/PKCS12Test.cs
+Mono.Security.X509/X501NameTest.cs
+Mono.Security.X509/X509CertificateTest.cs
+Mono.Security.X509/X509CrlTest.cs
+Mono.Security.X509/X520AttributesTest.cs
diff --git a/mcs/class/Mono.Security/monodroid_Mono.Security_test.dll.sources b/mcs/class/Mono.Security/monodroid_Mono.Security_test.dll.sources
new file mode 100644 (file)
index 0000000..37fa889
--- /dev/null
@@ -0,0 +1 @@
+#include Mono.Security_test.dll.sources
index 5523b3f17fee6abe8b4660d7dc85d07bbf0ff97a..6c2e89d188014cbb752cd53ab70afa79703f3ab0 100644 (file)
@@ -80,9 +80,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 0b59432a9339b3dff7703655b30252aaac0bdf25..2549142742184addc6e9678cd7f24e1ca9575fa4 100644 (file)
@@ -66,9 +66,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 6314d439a68a7ebad2204c51565007f8ea4bd5e9..7184cb7c2e5fcdb2f8d140c0e8cf06e22714adcb 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 86ca84d096781ac609a1401eb49f715e5a169ef0..88bcc5bf2e1db6c177a74ae2a768f039d4ea15b7 100644 (file)
@@ -69,9 +69,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index a5ddfedcf19c40211cfe5c9edb631690504058d8..fe6669ed6c34fcffe0df07861a45cf5a996ce975 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 4fc45700db1a7411dd18f8dc063f824b1a0c599a..dd4b88112dd7d1bac281c6ff8fd7c9c6d6a275e9 100644 (file)
@@ -68,9 +68,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 5539fea58542a651bacf83c80fae6f99cd4f8978..79d7d285b098821fedc2af32b2487ee860625bde 100644 (file)
@@ -197,7 +197,7 @@ namespace RabbitMQ.Client.Apigen {
            m_primitiveTypeFlagMap[amqpType] = isReference;
        }
 
-        public void HandleOption(string opt) {
+        public bool HandleOption(string opt) {
             if (opt.StartsWith("/n:")) {
                 m_framingSubnamespace = opt.Substring(3);
             } else if (opt.StartsWith("/apiName:")) {
@@ -210,9 +210,9 @@ namespace RabbitMQ.Client.Apigen {
             } else if (opt == "/c") {
                 m_emitComments = true;
             } else {
-                Console.Error.WriteLine("Unsupported command-line option: " + opt);
-                Usage();
+               return false;
             }
+           return true;
         }
 
         public void Usage() {
@@ -227,7 +227,8 @@ namespace RabbitMQ.Client.Apigen {
 
         public Apigen(ArrayList args) {
             while (args.Count > 0 && ((string) args[0]).StartsWith("/")) {
-                HandleOption((string) args[0]);
+               if (!HandleOption((string) args[0]))
+                 break;
                 args.RemoveAt(0);
             }
             if ((args.Count < 2)
index e9f3774767e80535635ff4c5f54afef846a3b5b6..21fe03503f4fba1d875c8834f261957f834cef81 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+mono RabbitMQ.Client.Apigen.exe /n:v0_9 "/apiName:AMQP_0_9" $(ProjectDir)..\..\docs\specs\amqp0-9.stripped.xml $(ProjectDir)..\..\docs\specs\net_4_x-api-0-9.cs
+mono RabbitMQ.Client.Apigen.exe /n:v0_8 "/apiName:AMQP_0_8" $(ProjectDir)..\..\docs\specs\amqp0-8.stripped.xml $(ProjectDir)..\..\docs\specs\net_4_x-api-0-8.cs
+mono RabbitMQ.Client.Apigen.exe /n:v0_8qpid "/apiName:AMQP_0_8_QPID" $(ProjectDir)..\..\docs\specs\qpid-amqp.0-8.stripped.xml $(ProjectDir)..\..\docs\specs\net_4_x-api-qpid-0-8.cs
+
+
+
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
+mono RabbitMQ.Client.Apigen.exe /n:v0_9 "/apiName:AMQP_0_9" $(ProjectDir)..\..\docs\specs\amqp0-9.stripped.xml $(ProjectDir)..\..\docs\specs\net_4_x-api-0-9.cs
+mono RabbitMQ.Client.Apigen.exe /n:v0_8 "/apiName:AMQP_0_8" $(ProjectDir)..\..\docs\specs\amqp0-8.stripped.xml $(ProjectDir)..\..\docs\specs\net_4_x-api-0-8.cs
+mono RabbitMQ.Client.Apigen.exe /n:v0_8qpid "/apiName:AMQP_0_8_QPID" $(ProjectDir)..\..\docs\specs\qpid-amqp.0-8.stripped.xml $(ProjectDir)..\..\docs\specs\net_4_x-api-qpid-0-8.cs
+
+
+
 \r
     </PostBuildEvent>\r
   </PropertyGroup>\r
index 8a2044d1cf6c8be1c273ba8902e2d14d1f486a7c..e062f5481634cc77b9baf72a0bfdbcad31debe1f 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 81528bcc98637b2a35d09368077cc9a228d4d09a..d20c1ba9eb9fa5fa8ce54dd469a5be393197e23c 100644 (file)
@@ -85,9 +85,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index bf63d7a400bde6bc2651cb8dc4ff8658b6eb2286..a676a9be185897d8d4b914c88a57ace42cf0eada 100644 (file)
   -->\r
   <PropertyGroup>\r
     <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
-
+resgen $(ProjectDir)\src\ComponentModel\Strings.resx $(ProjectDir)\Microsoft.Internal.Strings.resx
     </PreBuildEvent>\r
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
-\r
+resgen $(ProjectDir)\src\ComponentModel\Strings.resx $(ProjectDir)\Microsoft.Internal.Strings.resx\r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 0bcf3ec7b1935598f7c2ca0a1d7fe74d1a778469..69eacf9c62079cd72bb359dc9ff3a731ee6b72c7 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
diff --git a/mcs/class/System.ComponentModel.DataAnnotations/monodroid_System.ComponentModel.DataAnnotations_test.dll.exclude.sources b/mcs/class/System.ComponentModel.DataAnnotations/monodroid_System.ComponentModel.DataAnnotations_test.dll.exclude.sources
new file mode 100644 (file)
index 0000000..f3d94ae
--- /dev/null
@@ -0,0 +1,2 @@
+#include monodroid_System.ComponentModel.DataAnnotations_test.dll.new-exclude.sources
+../../System.Web.DynamicData/Test/Common/AssertExtensions.cs
diff --git a/mcs/class/System.ComponentModel.DataAnnotations/monodroid_System.ComponentModel.DataAnnotations_test.dll.new-exclude.sources b/mcs/class/System.ComponentModel.DataAnnotations/monodroid_System.ComponentModel.DataAnnotations_test.dll.new-exclude.sources
new file mode 100644 (file)
index 0000000..705868f
--- /dev/null
@@ -0,0 +1,6 @@
+System.ComponentModel.DataAnnotations/AssociatedMetadataTypeTypeDescriptionProviderTests.cs
+System.ComponentModel.DataAnnotations/CompareAttributeTest.cs
+System.ComponentModel.DataAnnotations/CreditCardAttributeTest.cs
+System.ComponentModel.DataAnnotations/EmailAddressAttributeTest.cs
+System.ComponentModel.DataAnnotations/FileExtensionsAttributeTest.cs
+System.ComponentModel.DataAnnotations/PhoneAttributeTest.cs
diff --git a/mcs/class/System.ComponentModel.DataAnnotations/monodroid_System.ComponentModel.DataAnnotations_test.dll.sources b/mcs/class/System.ComponentModel.DataAnnotations/monodroid_System.ComponentModel.DataAnnotations_test.dll.sources
new file mode 100644 (file)
index 0000000..4be89ed
--- /dev/null
@@ -0,0 +1 @@
+#include System.ComponentModel.DataAnnotations_test.dll.sources
index ae8c371bc76dfbec4a98efab622678f5b6c0ed29..d830e4f80397d064a3b6f160b934ee9328036c69 100644 (file)
@@ -80,9 +80,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 9fa49adeb72bbe2abb4479c48ee67650a54309d0..61bfe7fa885569ab3c0bfd7be709fa77954791c2 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 26ca3e53d01118438c0e84e1c134f1dff8607029..2f65fc4c3bec1a546f3eb5e5eac62f4bef381221 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 39af607e632a4e81975cc45a60e06ac441efd457..110a22b1b29efd2295f370df532da13da5bba1ee 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
diff --git a/mcs/class/System.Core/mobile_static_System.Core_test.dll.exclude.sources b/mcs/class/System.Core/mobile_static_System.Core_test.dll.exclude.sources
new file mode 100644 (file)
index 0000000..f98bf05
--- /dev/null
@@ -0,0 +1 @@
+System.IO.Pipes/PipeSecurityTest.cs
diff --git a/mcs/class/System.Core/mobile_static_System.Core_test.dll.excludes b/mcs/class/System.Core/mobile_static_System.Core_test.dll.excludes
deleted file mode 100644 (file)
index f98bf05..0000000
+++ /dev/null
@@ -1 +0,0 @@
-System.IO.Pipes/PipeSecurityTest.cs
diff --git a/mcs/class/System.Core/monodroid_System.Core_test.dll.exclude.sources b/mcs/class/System.Core/monodroid_System.Core_test.dll.exclude.sources
new file mode 100644 (file)
index 0000000..40eb2dc
--- /dev/null
@@ -0,0 +1,2 @@
+#include mobile_static_System.Core_test.dll.exclude.sources
+#include monodroid_System.Core_test.dll.new-exclude.sources
diff --git a/mcs/class/System.Core/monodroid_System.Core_test.dll.new-exclude.sources b/mcs/class/System.Core/monodroid_System.Core_test.dll.new-exclude.sources
new file mode 100644 (file)
index 0000000..cabaa42
--- /dev/null
@@ -0,0 +1,5 @@
+../../corlib/Test/System.Security.Cryptography/HashAlgorithmTest.cs
+../../corlib/Test/System.Security.Cryptography/SHA1Test.cs
+../../corlib/Test/System.Security.Cryptography/SHA256Test.cs
+../../corlib/Test/System.Security.Cryptography/SHA384Test.cs
+../../corlib/Test/System.Security.Cryptography/SHA512Test.cs
diff --git a/mcs/class/System.Core/monodroid_System.Core_test.dll.sources b/mcs/class/System.Core/monodroid_System.Core_test.dll.sources
new file mode 100644 (file)
index 0000000..33e2a10
--- /dev/null
@@ -0,0 +1 @@
+#include System.Core_test.dll.sources
index fa35aa1ef77dc77e56ad9eca744d91599937b32c..8d845d576bfdb841b95a8725dad1639f3457a468 100644 (file)
@@ -76,9 +76,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index a56b7ce0245bdd4223744abc5528761e662cf2eb..25275651f16facb771430c017c4c282435c06060 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 150ac4787883073da9d8a1e555ee42d458cf8238..02e0b4aba48b76bfea5950cb7ce2047824976016 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 56dfa9b6e40a55c4af6f1fedf9faf50ccef7f1b2..e569ce44aadc5670c18fb99983c1862d418eb8d4 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 840cebb9105a47ec08497e4471468339da6da5fc..55b9e130c8cb94ae7b31498208e72f82e704d284 100644 (file)
   -->\r
   <PropertyGroup>\r
     <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
-
+resgen $(ProjectDir)\Client\System.Data.Services.Client.txt $(ProjectDir)\Client\System.Data.Services.Client.resx
     </PreBuildEvent>\r
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
-\r
+resgen $(ProjectDir)\Client\System.Data.Services.Client.txt $(ProjectDir)\Client\System.Data.Services.Client.resx\r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 86a92590271d6566b4b0bb7bf5657d5ef76a8621..6a4ef89e6c8bf13b70136105c1fa71096935b7c4 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 89436ad2550d4f57fbc82801b3a39e2a59141387..552ec452530cb80208bf70b344bf1986735968df 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
diff --git a/mcs/class/System.Data/mobile_static_System.Data_test.dll.exclude.sources b/mcs/class/System.Data/mobile_static_System.Data_test.dll.exclude.sources
new file mode 100644 (file)
index 0000000..0022a9e
--- /dev/null
@@ -0,0 +1,18 @@
+System.Data.Odbc/OdbcCommandBuilderTest.cs
+System.Data.Odbc/OdbcCommandTest.cs
+System.Data.Odbc/OdbcConnectionStringBuilderTest.cs
+System.Data.Odbc/OdbcConnectionTest.cs
+System.Data.Odbc/OdbcDataAdapterTest.cs
+System.Data.Odbc/OdbcDataReaderTest.cs
+System.Data.Odbc/OdbcMetaDataCollectionNamesTest.cs
+System.Data.Odbc/OdbcParameterCollectionTest.cs
+System.Data.Odbc/OdbcParameterTest.cs
+System.Data.Odbc/OdbcPermissionAttributeTest.cs
+System.Data.Odbc/OdbcPermissionTest.cs
+System.Data.OleDb/OleDbCommandTest.cs
+System.Data.OleDb/OleDbConnectionTest.cs
+System.Data.OleDb/OleDbDataAdapterTest.cs
+System.Data.OleDb/OleDbMetaDataCollectionNamesTest.cs
+System.Data.OleDb/OleDbParameterCollectionTest.cs
+System.Data.OleDb/OleDbPermissionAttributeTest.cs
+System.Data.OleDb/OleDbPermissionTest.cs
diff --git a/mcs/class/System.Data/mobile_static_System.Data_test.dll.excludes b/mcs/class/System.Data/mobile_static_System.Data_test.dll.excludes
deleted file mode 100644 (file)
index 0022a9e..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-System.Data.Odbc/OdbcCommandBuilderTest.cs
-System.Data.Odbc/OdbcCommandTest.cs
-System.Data.Odbc/OdbcConnectionStringBuilderTest.cs
-System.Data.Odbc/OdbcConnectionTest.cs
-System.Data.Odbc/OdbcDataAdapterTest.cs
-System.Data.Odbc/OdbcDataReaderTest.cs
-System.Data.Odbc/OdbcMetaDataCollectionNamesTest.cs
-System.Data.Odbc/OdbcParameterCollectionTest.cs
-System.Data.Odbc/OdbcParameterTest.cs
-System.Data.Odbc/OdbcPermissionAttributeTest.cs
-System.Data.Odbc/OdbcPermissionTest.cs
-System.Data.OleDb/OleDbCommandTest.cs
-System.Data.OleDb/OleDbConnectionTest.cs
-System.Data.OleDb/OleDbDataAdapterTest.cs
-System.Data.OleDb/OleDbMetaDataCollectionNamesTest.cs
-System.Data.OleDb/OleDbParameterCollectionTest.cs
-System.Data.OleDb/OleDbPermissionAttributeTest.cs
-System.Data.OleDb/OleDbPermissionTest.cs
index 165e72bf93d14b7bbfbe9ad3bda5b0c6b8a9e357..bd40ae2f3a7c56941ed90529dd97837e421f365b 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 5189367706ab75a4b87bd671ca2fb4877e1a21f3..4750c28d29fd9972de0daaeb2c9f2953b2a77d46 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 6ae492ff5efe81d1933348707ecc9bb5afd78e6f..1248aef2a74f2e9efc3b889b2ace8dc482c994fe 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index c74b662d42a47381c3432299db9e3933acf358a5..f00cf92ef4e5efd6ec28760c9ff4d9341a24662d 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index b990b51a001cd8dece8839dfe1e2639f06c4895c..31cfc603485e3bc1bda074c53dc138df526d7e12 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 4b21dcdd6d2a95cb8aa1b996de4b80339ef8b8df..cd5243850061ff0556e89678951c9837a4f8029a 100644 (file)
@@ -78,9 +78,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index bc6476a9e8f8e69749a3a4a3ec3ad8e89bf752e8..00f54219c78c3923f771a72924af6a13a7a73d15 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index f192dd6472b490a4efd7be15fc419d146006dbb5..788104cabe5d626d6e7c3fdc72a29bf1ca6d531a 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 07ecf54a6eda5591a8c41cf0550f0f7a6b6f1804..d0a7c52ddb6c39b21351b577a2544d7981f80b20 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 0db2bc7fd5400b158e74868d81d7b6924e0e8642..63bf1dbfbf12cd0ba5c75e5ad8f71ead09a12a7c 100644 (file)
@@ -67,9 +67,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 0354311b478478a834c847ac9c3a44f88cfb2887..4321db8534e30833c490da4c67df46455d1b29cb 100644 (file)
@@ -105,5 +105,31 @@ namespace MonoTests.System.IO.Compression.FileSystem
 
                        Directory.Delete ("extract", true);
                }
+
+               [Test]
+               public void ZipCreateFromEntryChangeTimestamp()
+               {
+                       if (File.Exists ("foo.zip"))
+                               File.Delete ("foo.zip");
+
+                       var file = "foo/foo.txt";
+                       using (var archive = new ZipArchive(File.Open("foo.zip", FileMode.Create),
+                               ZipArchiveMode.Update))
+                       {
+                               archive.CreateEntryFromFile(file, file);
+                       }
+
+                       var date = File.GetLastWriteTimeUtc(file);
+
+                       using (var archive = new ZipArchive (File.Open ("foo.zip", FileMode.Open),
+                               ZipArchiveMode.Read))
+                       {
+                               var entry = archive.GetEntry (file);
+                               Assert.IsNotNull (entry);
+                               Assert.AreEqual(entry.LastWriteTime.Year, date.Year);
+                               Assert.AreEqual(entry.LastWriteTime.Month, date.Month);
+                               Assert.AreEqual(entry.LastWriteTime.Day, date.Day);
+                       }
+               }
        }
 }
index 07a8448171ed51a1723c1d989ee53ddd071de7f2..36c4146b485139d4725bb0918abe8cf65ef919d8 100644 (file)
@@ -56,6 +56,7 @@ namespace System.IO.Compression
                                FileAccess.Read, FileShare.Read))
                        {
                                var zipArchiveEntry = destination.CreateEntry (entryName, compressionLevel);
+                               zipArchiveEntry.LastWriteTime = File.GetLastWriteTimeUtc(sourceFileName);
 
                                using (Stream entryStream = zipArchiveEntry.Open ())
                                        stream.CopyTo (entryStream);
index acb5e2ddc293f37845aa6dd4235dedef3175c7a1..f19a9c27647921fb0c277f4b8f5edfe8e8ffa7fc 100644 (file)
@@ -10,7 +10,6 @@ namespace SharpCompress.Archive.Zip
     {
         private readonly string path;
         private readonly long size;
-        private readonly DateTime? lastModified;
         private readonly bool closeStream;
         private readonly Stream stream;
         private bool isDisposed;
@@ -22,7 +21,7 @@ namespace SharpCompress.Archive.Zip
             this.stream = stream;
             this.path = path;
             this.size = size;
-            this.lastModified = lastModified;
+            this.LastModifiedTime = lastModified;
             this.closeStream = closeStream;
         }
 
@@ -46,11 +45,6 @@ namespace SharpCompress.Archive.Zip
             get { return size; }
         }
 
-        public override DateTime? LastModifiedTime
-        {
-            get { return lastModified; }
-        }
-
         public override DateTime? CreatedTime
         {
             get { return null; }
index 9f520b0fae872af4662d5ea964c2349f6048a5f8..48529c618dd8e62177cf11e211a4375d7d39ca09 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 36903c675b4858391d77cc4354732ce4a12a8501..d461600299ffbbb1ee8e883897fd10787bd22ff9 100644 (file)
@@ -238,6 +238,31 @@ namespace MonoTests.System.IO.Compression
                        File.Delete ("create.zip");
                }
 
+               [Test]
+               public void ZipEnumerateEntriesModifiedTime()
+               {
+                       File.Copy("archive.zip", "test.zip", overwrite: true);
+                       var date = DateTimeOffset.Now;
+                       using (var archive = new ZipArchive(File.Open("test.zip", FileMode.Open),
+                               ZipArchiveMode.Update))
+                       {
+                               var entry = archive.GetEntry("foo.txt");
+                               entry.LastWriteTime = date;
+                       }
+
+                       using (var archive = new ZipArchive(File.Open("test.zip", FileMode.Open),
+                               ZipArchiveMode.Read))
+                       {
+                               var entry = archive.GetEntry("foo.txt");
+                               Assert.AreEqual(entry.LastWriteTime.Year, date.Year);
+                               Assert.AreEqual(entry.LastWriteTime.Month, date.Month);
+                               Assert.AreEqual(entry.LastWriteTime.Day, date.Day);
+
+                       }
+
+                       File.Delete ("test.zip");
+               }               
+
                [Test]
                public void ZipEnumerateEntriesReadMode()
                {
index c74ef71b636234fca997711e86b02b876c02823b..e834a58af15ca7366fb3e520c06c9523fa2a7495 100644 (file)
@@ -77,9 +77,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index ca041e4297e048551cc9ba38c3a7e65309710f1b..ea349ebcc43a57fd85ffff74bf19184035f5fb7f 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 4c2329392d3a0be91b5336bd1b71053d9293942f..2d13a176b82062e17226712e87b4dada3555eca8 100644 (file)
@@ -2,13 +2,13 @@ thisdir = class/System.Json.Microsoft
 SUBDIRS = 
 include ../../build/rules.make
 
-System.Json.Properties.Resources.resources: System.Json/Properties/Resources.resx
+System.Json/Properties/Resources.resources: System.Json/Properties/Resources.resx
        $(RESGEN) "$<" "$@"
 
 LIBRARY = System.Json.Microsoft.dll
 LIB_REFS = System System.Xml System.Core System.Runtime.Serialization
 LIB_MCS_FLAGS = /d:ASPNETMVC -keyfile:../winfx.pub -delaysign \
-               /resource:System.Json.Properties.Resources.resources
+               /resource:System.Json/Properties/Resources.resources,System.Json.Properties.Resources.resources
 
 EXTRA_DISTFILES = System.Json/Properties/Resources.resx
 
@@ -25,4 +25,4 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 include ../../build/library.make
 
-$(the_lib): System.Json.Properties.Resources.resources
+$(the_lib): System.Json/Properties/Resources.resources
index 9ae3c0813a12f97e79406e2ed6bfc9fac61f9e46..1b1221b953e91d554580e5b3ef9cabae719c4844 100644 (file)
@@ -7,7 +7,7 @@
     <SchemaVersion>2.0</SchemaVersion>\r
     <ProjectGuid>{E6A6B9F7-BD0C-4F8D-8AFE-2EF76A2FB3AD}</ProjectGuid>\r
     <OutputType>Library</OutputType>\r
-    <NoWarn>1699</NoWarn>\r
+    <NoWarn>1699,1699</NoWarn>\r
     <OutputPath>./../../class/lib/net_4_x</OutputPath>\r
     <IntermediateOutputPath>obj-net_4_x</IntermediateOutputPath>\r
     <GenerateTargetFrameworkAttribute>false</GenerateTargetFrameworkAttribute>\r
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
     <DebugSymbols>true</DebugSymbols>\r
     <DebugType>full</DebugType>\r
-    <NoWarn>1699</NoWarn>\r
+    <NoWarn>1699,1699</NoWarn>\r
     <Optimize>false</Optimize>\r
-    <DefineConstants>TRACE;NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;ASPNETMVC;FEATURE_DYNAMIC</DefineConstants>\r
+    <DefineConstants>TRACE;NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;ASPNETMVC;FEATURE_DYNAMIC;NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;ASPNETMVC;FEATURE_DYNAMIC</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
     <DebugType>pdbonly</DebugType>\r
-    <NoWarn>1699</NoWarn>\r
+    <NoWarn>1699,1699</NoWarn>\r
     <Optimize>true</Optimize>\r
-    <DefineConstants>NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;ASPNETMVC;FEATURE_DYNAMIC</DefineConstants>\r
+    <DefineConstants>NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;ASPNETMVC;FEATURE_DYNAMIC;NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;ASPNETMVC;FEATURE_DYNAMIC</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
   -->\r
   <PropertyGroup>\r
     <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
-
+cp $(ProjectDir)\System.Json\Properties\Resources.resx System.Json.Properties.Resources.resx
     </PreBuildEvent>\r
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
-\r
+cp $(ProjectDir)\System.Json\Properties\Resources.resx System.Json.Properties.Resources.resx\r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="System.Json.Properties.Resources.resx">\r
+    <EmbeddedResource Include="System.Json/Properties/Resources.resx">\r
       <LogicalName>System.Json.Properties.Resources.resources</LogicalName>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
index 257f0571dd0ef8a4f872e3e7e3d4ee102dca3262..5a5dadfa168d8e4a3328de5149864d95cd1a2e2e 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 8f7650e5572085a9be6e0badbb4a7f692e95d5e0..7d9b5c4017292ec9fffd36c9d7cee45d52d3182e 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 8d86d8f27110eacb4ddcf2d4133875e5fe91503f..939068bd6f7a40d3d1d00ee3d31952ba2adbaeeb 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index b3e1c9cb5089420cc2662b97ee028b2ab3ed679e..9a5218b298bbfcb69eec94da58280ccb9a99383e 100644 (file)
   -->\r
   <PropertyGroup>\r
     <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+cp $(ProjectDir)/../../../external/aspnetwebstack/src/Common/CommonWebApiResources.resx $(ProjectDir)/System.Net.Http.Properties.CommonWebApiResources.resx
+cp $(ProjectDir)/../../../external/aspnetwebstack/src/System.Net.Http.Formatting/Properties/Resources.resx $(ProjectDir)/System.Net.Http.Properties.Resources.resx
 
     </PreBuildEvent>\r
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
+cp $(ProjectDir)/../../../external/aspnetwebstack/src/Common/CommonWebApiResources.resx $(ProjectDir)/System.Net.Http.Properties.CommonWebApiResources.resx
+cp $(ProjectDir)/../../../external/aspnetwebstack/src/System.Net.Http.Formatting/Properties/Resources.resx $(ProjectDir)/System.Net.Http.Properties.Resources.resx
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 43ceea089ce127db745f2ebfa28d50c8c593f971..519b2833cba57777ffc6909578023f34fc0c4af8 100644 (file)
@@ -66,9 +66,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 741d32f594c4d61d809fbb72cb86a4d882eeb842..e6e2d68457e26d135f2b8691238a53d4daf7357e 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index ffe0d78a15167c74fedc6ac0ddcd1d1f685b748b..ac5858d1adb7fb2e77bd7ffb1f18c9db0aedf559 100644 (file)
@@ -67,9 +67,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 16bb9e6d90c06dd7f7312cd7175190ff0db1a032..f782c91e5cdece5a45361cd240173ebd832cb362 100644 (file)
@@ -65,9 +65,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 3a271868314604aca2fe804d85e1cfd4f9d620d6..6fe1d3aa59a18d18af49651d7566b8caf2e1edca 100644 (file)
@@ -72,9 +72,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 270278e73392ad1f38bfd4fa75159efae35a8d1d..7b3dfa248deb2b63a1acb932b86e6159e12da601 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="Strings_Core.resx">\r
+    <EmbeddedResource Include="Strings_Core.resources.prebuilt">\r
       <LogicalName>System.Reactive.Strings_Core.resources</LogicalName>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
index d8b972bae4db81c79886534d5337e4b430dc08b3..0fef571313a78994b8dd281b71353315ac4602ef 100644 (file)
@@ -71,9 +71,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index dd239180f60a729c4a1785c4a8143fde501e8cc6..55e768b3fa4272cb3b755836b19dbdcc238f2f88 100644 (file)
@@ -79,9 +79,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index f9b47ccf591862dcb4aaba00cb03b2bb4a3eaabd..f0057b389b23ddf9bd27deccf199f90d5b71bfa8 100644 (file)
@@ -93,9 +93,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index b13bf98e82b35447d38d666213053dbb57414104..67b2b8a8844cc12c1ecf09fdb1ff9da5ae8edbae 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="Strings_Linq.resx">\r
+    <EmbeddedResource Include="Strings_Linq.resources.prebuilt">\r
       <LogicalName>System.Reactive.Strings_Linq.resources</LogicalName>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
index 6aa6d5a9aa737dc0a843c6bb15a3362d9710a5d5..fcff09f9daf815ddac9f5f1b5199b28bb053b0ab 100644 (file)
@@ -71,9 +71,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 5e1435c3dfbff4b1e16f32bb99b9f0157bc1a608..538ff9529d94ea3bd5a2ad3e223c27f652e82fa0 100644 (file)
@@ -88,9 +88,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="Strings_PlatformServices.resx">\r
+    <EmbeddedResource Include="Strings_PlatformServices.resources.prebuilt">\r
       <LogicalName>System.Reactive.Strings_PlatformServices.resources</LogicalName>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
index 2dee913e1134e6ecadf4a426ea7487fbad370342..0099448bd54ccb6132e7b2184164293adc9b2ec2 100644 (file)
@@ -81,9 +81,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="Strings_Providers.resx">\r
+    <EmbeddedResource Include="Strings_Providers.resources.prebuilt">\r
       <LogicalName>System.Reactive.Strings_Providers.resources</LogicalName>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
index 61c230ab10ef469540933c01edd1909d152265dd..2802930f4d4ca978a4218700062546d9b54c76da 100644 (file)
@@ -73,9 +73,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 61999a36fea0fcdaf1618126fe0ca04c2082b9b8..6aacf0d324f2c8fdd73912eaab23c142523f3287 100644 (file)
@@ -73,9 +73,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index d8eb8de10da4d91c597f913770b3c4f8b3872ae5..2399dc270ca57124a3c099787d3a8175fd4cd871 100644 (file)
@@ -77,9 +77,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <EmbeddedResource Include="Strings_WindowsThreading.resx">\r
+    <EmbeddedResource Include="Strings_WindowsThreading.resources.prebuilt">\r
       <LogicalName>System.Reactive.Strings_WindowsThreading.resources</LogicalName>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
index 7242a9e1fad09fda245ca5f90c71d437394ee659..3089b404bdf517604d7f302d2fc44182f6ac7e4c 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 761f9088e7489056b818cb5248c82432d8c6f378..480589216b314108be5f2287752892126350686b 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index b7f31943b54cee2e6c2f18eb59fe112315e9a5fc..5601f7c47a15cf354274bdf16b14caf1f3f81306 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 0874c590124e89c571ce6ff8e3c743f38434e7cf..d5192c051b056e3b62ef93bccd3533541c3a95ce 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 6176f5337e25e4dde7a7d3a23078d2f5aeb74069..f5de8b68d7f091c236651c67a4557732dffa711c 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index cce8ef1a9ff08506b810a9f45a56c5071bf84b63..c272c83959de1942c83c6adbfd1dce692475b279 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index eeef7dcc234d943a6a36cabaedd22a90c4be70d5..e959175b7337b33974be70ec92e7506991727fd4 100644 (file)
@@ -67,9 +67,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index d9e8d873bd225632e099ac6b9759ffefb2b7e123..3f021276d449fd7fe9e12d6d8b883358c8b1328c 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index fcad8e84430643246f0555d198588342ef7468f3..39e5a6128f2c71bb77153b2b7cc99392b8504400 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 6923f01842b2f6b7441fcf96aabbc7ab9c798c31..35714061b5b859fc3855c3028d79876331eceba9 100644 (file)
@@ -91,9 +91,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index c57e5807b8c480048b8829552cd6dab06b5b37a9..6724c3786315a574fd46d4351ab2bb65fa561edf 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index d51725c1cbf9dca6b1182f695ef29c2273637f7b..e986534126d2fbd8661da2b2f4ffe1acc5eb2a41 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index d8664c529dd3eff35d3071bf32484c905f0e2ed8..4608b887c5e188ac2bf80cecbc1120f93056a827 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 9f20d9bee52df8e371a93049d398581713ff8350..ade3d4333395f267221663d4154f8c734a33f6aa 100644 (file)
@@ -90,9 +90,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 3ffa27d003d4d2847a687918e317bc3555131b53..a793bf739fc8c9d0daf85ee11da99df0082176aa 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 9b0b192e2d6ed3b7d1e48d1e5d96fd5630808569..0040fd6840b17b446d8eaca8e51b434d279d5b46 100644 (file)
@@ -84,6 +84,7 @@
     <Compile Include="System.Transactions\TransactionOptions.cs" />\r
     <Compile Include="System.Transactions\TransactionPromotionException.cs" />\r
     <Compile Include="System.Transactions\TransactionScope.cs" />\r
+    <Compile Include="System.Transactions\TransactionScopeAsyncFlowOption.cs" />\r
     <Compile Include="System.Transactions\TransactionScopeOption.cs" />\r
     <Compile Include="System.Transactions\TransactionStatus.cs" />\r  </ItemGroup>\r
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 36d981ebe951bb5e44c41551e5a5fb73cd2aab50..4c5394f957bb36702e1d9ffb67534bdef8449232 100644 (file)
@@ -31,6 +31,7 @@ System.Transactions/TransactionManagerCommunicationException.cs
 System.Transactions/TransactionOptions.cs
 System.Transactions/TransactionPromotionException.cs
 System.Transactions/TransactionScope.cs
+System.Transactions/TransactionScopeAsyncFlowOption.cs
 System.Transactions/TransactionScopeOption.cs
 System.Transactions/TransactionStatus.cs
 System.Transactions/Configuration/DefaultSettingsSection.cs
index 129967d9e27817a140dcc077745d6c5828158e58..167d47e8d3a70e0a84be852e860f0e84c2bd10d0 100644 (file)
@@ -31,12 +31,20 @@ namespace System.Transactions
                bool completed;
                bool isRoot;
 
+               bool asyncFlowEnabled;
+
                public TransactionScope ()
                        : this (TransactionScopeOption.Required,
                                TransactionManager.DefaultTimeout)
                {
                }
 
+               public TransactionScope(TransactionScopeAsyncFlowOption asyncFlow)
+                       : this(TransactionScopeOption.Required,
+                               TransactionManager.DefaultTimeout, asyncFlow)
+               {
+               }
+
                public TransactionScope (Transaction transaction)
                        : this (transaction, TransactionManager.DefaultTimeout)
                {
@@ -53,7 +61,7 @@ namespace System.Transactions
                        TimeSpan timeout, DTCOption opt)
                {
                        Initialize (TransactionScopeOption.Required,
-                               transaction, defaultOptions, opt, timeout);
+                               transaction, defaultOptions, opt, timeout, TransactionScopeAsyncFlowOption.Suppress);
                }
 
                public TransactionScope (TransactionScopeOption option)
@@ -62,10 +70,21 @@ namespace System.Transactions
                }
 
                public TransactionScope (TransactionScopeOption option,
-                       TimeSpan timeout)
+                       TimeSpan timeout)
+                       : this (option, timeout, TransactionScopeAsyncFlowOption.Suppress)
+               {
+               }
+
+               public TransactionScope(TransactionScopeOption option, TransactionScopeAsyncFlowOption asyncFlow)
+                       : this(option, TransactionManager.DefaultTimeout, asyncFlow)
+               {
+               }
+
+       public TransactionScope (TransactionScopeOption option,
+                       TimeSpan timeout, TransactionScopeAsyncFlowOption asyncFlow)
                {
                        Initialize (option, null, defaultOptions,
-                               DTCOption.None, timeout);
+                               DTCOption.None, timeout, asyncFlow);
                }
 
                public TransactionScope (TransactionScopeOption scopeOption,
@@ -80,16 +99,17 @@ namespace System.Transactions
                        DTCOption opt)
                {
                        Initialize (scopeOption, null, options, opt,
-                               TransactionManager.DefaultTimeout);
+                               TransactionManager.DefaultTimeout, TransactionScopeAsyncFlowOption.Suppress);
                }
 
                void Initialize (TransactionScopeOption scopeOption,
                        Transaction tx, TransactionOptions options,
-                       DTCOption interop, TimeSpan timeout)
+                       DTCOption interop, TimeSpan timeout, TransactionScopeAsyncFlowOption asyncFlow)
                {
                        completed = false;
                        isRoot = false;
                        nested = 0;
+                       asyncFlowEnabled = asyncFlow == TransactionScopeAsyncFlowOption.Enabled;
 
                        if (timeout < TimeSpan.Zero)
                                throw new ArgumentOutOfRangeException ("timeout");
@@ -165,36 +185,67 @@ namespace System.Transactions
                                throw new InvalidOperationException ("TransactionScope nested incorrectly");
                        }
 
-                       if (Transaction.CurrentInternal != transaction) {
+                       if (Transaction.CurrentInternal != transaction && !asyncFlowEnabled) {
                                if (transaction != null)
                                        transaction.Rollback ();
                                if (Transaction.CurrentInternal != null)
                                        Transaction.CurrentInternal.Rollback ();
 
                                throw new InvalidOperationException ("Transaction.Current has changed inside of the TransactionScope");
-                       }
+                       } 
 
-                       if (Transaction.CurrentInternal == oldTransaction && oldTransaction != null)
-                               oldTransaction.Scope = parentScope;
+                       if (asyncFlowEnabled) {
+                               if (oldTransaction != null)
+                                       oldTransaction.Scope = parentScope;
 
-                       Transaction.CurrentInternal = oldTransaction;
+                               var variedTransaction = Transaction.CurrentInternal;
 
-                       if (transaction == null)
-                               /* scope was not in a transaction, (Suppress) */
-                               return;
+                               if (transaction == null && variedTransaction == null)
+                                       /* scope was not in a transaction, (Suppress) */
+                                       return;
 
-                       transaction.Scope = null;
+                               variedTransaction.Scope = parentScope;
+                               Transaction.CurrentInternal = oldTransaction;
 
-                       if (!IsComplete) {
-                               transaction.Rollback ();
-                               return;
-                       }
+                               transaction.Scope = null;
 
-                       if (!isRoot)
-                               /* Non-root scope has completed+ended */
-                               return;
+                               if (!IsComplete) {
+                                       transaction.Rollback ();
+                                       variedTransaction.Rollback();
+                                       return;
+                               }
+
+                               if (!isRoot)
+                                       /* Non-root scope has completed+ended */
+                                       return;
+
+                               variedTransaction.CommitInternal();
+                               transaction.CommitInternal();
+                       } else {
+                               if (Transaction.CurrentInternal == oldTransaction && oldTransaction != null)
+                                       oldTransaction.Scope = parentScope;
+
+                               Transaction.CurrentInternal = oldTransaction;
 
-                       transaction.CommitInternal ();
+                               if (transaction == null)
+                                       /* scope was not in a transaction, (Suppress) */
+                                       return;
+
+                               transaction.Scope = null;
+
+                               if (!IsComplete)
+                               {
+                                       transaction.Rollback();
+                                       return;
+                               }
+
+                               if (!isRoot)
+                                       /* Non-root scope has completed+ended */
+                                       return;
+
+                               transaction.CommitInternal();
+
+                       }
                }
 
 
diff --git a/mcs/class/System.Transactions/System.Transactions/TransactionScopeAsyncFlowOption.cs b/mcs/class/System.Transactions/System.Transactions/TransactionScopeAsyncFlowOption.cs
new file mode 100644 (file)
index 0000000..5285fe5
--- /dev/null
@@ -0,0 +1,9 @@
+
+namespace System.Transactions
+{
+       public enum TransactionScopeAsyncFlowOption
+       {
+               Suppress,
+               Enabled
+       }
+}
index f3a6660fbbfb16c7a2b5879c93eddf7b3e75392e..b7bfc3e76b57a1ebd6138fa56004e6ad47b2fc75 100644 (file)
@@ -64,9 +64,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 437087ae74b9c35432c1001186a6e8686b8d00d0..461643c497be3fb04509e909a0f06f17c22cc2cb 100644 (file)
@@ -82,9 +82,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 7ad4e02b9fbb6bde7c4de84f1fb34e76a4b9627a..84781bfe0b9fd06b4142c3fbf9493afc157f18b4 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 24d48cc2167e125556639d9bd08d15f551647211..a812da1666512c6952fa26671fee20c038ae41f5 100644 (file)
@@ -78,9 +78,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index e63e29964ffd43679248d8f269c7a8350638a0c5..d008409de93ceb62724eb093777654e53c135be9 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 5fcfdabbac448fe11f737f777df039cf06b52ef4..1260d005c16b064c8c871a8c2b1c6f3e9d7794fe 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 241b96bcbc4370d1cbdc26df673c124699ccfcc2..2a4f661c3b7ee29a4ae690b3b5edb69055402873 100644 (file)
@@ -97,9 +97,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 4cfba6d759e295079f4a192c1bf8976c6ae30158..0f303359778863a701f5c3e2f823739e8f393984 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index eea91028ecaa251f07e79bd1ba42dbafc5777ffa..bc1337a2a49b2e6f2567798e58a082117311f748 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 3bed8a7d326fb33e7d2c5e2f9ae98d038076022b..3b76937bb6285bddab64b7752f01287a29760775 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 23422a60b2c4e9ebdda370a42faaaede7642d33a..561a784fa70bb482782f90d771c851aaed438d51 100644 (file)
   -->\r
   <PropertyGroup>\r
     <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
-
+resgen $(ProjectDir)\..\..\..\external\aspnetwebstack\src\CommonResources.resx $(ProjectDir)\System.Web.Razor.Common.CommonResources.resx
+resgen $(ProjectDir)\..\..\..\external\aspnetwebstack\src\System.Web.Razor\Resources\RazorResources.resx $(ProjectDir)\System.Web.Razor.Resources.RazorResources.resx
     </PreBuildEvent>\r
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
-\r
+resgen $(ProjectDir)\..\..\..\external\aspnetwebstack\src\CommonResources.resx $(ProjectDir)\System.Web.Razor.Common.CommonResources.resx
+resgen $(ProjectDir)\..\..\..\external\aspnetwebstack\src\System.Web.Razor\Resources\RazorResources.resx $(ProjectDir)\System.Web.Razor.Resources.RazorResources.resx\r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 78ef2022b993016affbe840265eb0b038e6f892d..be101eaa2a8a51643a79d308a6c3f2ec594b2908 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 10bdf1f69e1912aac0df5d25375e25e24f179165..4f47b14286db28704527e8d43ee27a23b454260c 100644 (file)
@@ -64,9 +64,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 657348b4289d8ae48cf036087b4bafb852ba719a..0dfc8236d4b1c71de2ee476616b03e9501c3b146 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
diff --git a/mcs/class/System.Web.Services/mobile_static_System.Web.Services_test.dll.exclude.sources b/mcs/class/System.Web.Services/mobile_static_System.Web.Services_test.dll.exclude.sources
new file mode 100644 (file)
index 0000000..645326d
--- /dev/null
@@ -0,0 +1,8 @@
+System.Web.Services/Test/System.Web.Services.Configuration/DiagnosticsElementTest.cs
+System.Web.Services/Test/System.Web.Services.Configuration/ProtocolElementTest.cs
+System.Web.Services/Test/System.Web.Services.Configuration/SoapEnvelopeProcessingElementTest.cs
+System.Web.Services/Test/System.Web.Services.Configuration/SoapExtensionTypeElementTest.cs
+System.Web.Services/Test/System.Web.Services.Configuration/TypeElementTest.cs
+System.Web.Services/Test/System.Web.Services.Configuration/WsdlHelpGeneratorElementTest.cs
+System.Web.Services/Test/System.Web.Services.Configuration/WsiProfilesElementTest.cs
+System.Web.Services/Test/System.Web.Services.Configuration/XmlFormatExtensionAttributeTest.cs
diff --git a/mcs/class/System.Web.Services/mobile_static_System.Web.Services_test.dll.excludes b/mcs/class/System.Web.Services/mobile_static_System.Web.Services_test.dll.excludes
deleted file mode 100644 (file)
index 645326d..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-System.Web.Services/Test/System.Web.Services.Configuration/DiagnosticsElementTest.cs
-System.Web.Services/Test/System.Web.Services.Configuration/ProtocolElementTest.cs
-System.Web.Services/Test/System.Web.Services.Configuration/SoapEnvelopeProcessingElementTest.cs
-System.Web.Services/Test/System.Web.Services.Configuration/SoapExtensionTypeElementTest.cs
-System.Web.Services/Test/System.Web.Services.Configuration/TypeElementTest.cs
-System.Web.Services/Test/System.Web.Services.Configuration/WsdlHelpGeneratorElementTest.cs
-System.Web.Services/Test/System.Web.Services.Configuration/WsiProfilesElementTest.cs
-System.Web.Services/Test/System.Web.Services.Configuration/XmlFormatExtensionAttributeTest.cs
index 0aba08155ed3148ea38f47f329a5a9845b5f7022..ac6617f5e2adbb68541ab9749ae949c96ccfc538 100644 (file)
@@ -86,9 +86,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 72b548bd2189a2aac937b533cdb5e7a77eeef71d..d6ffdf0d747e53e2c86341149972cf05ecd47cfe 100644 (file)
@@ -89,9 +89,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 05b00144488613f0ce51aeb6258c64411a8db6f4..16d66dd9b1171e0d14673ca5e07756d4572751d2 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 0b2f0ba3ea7c1e9e12091f34646cabbf94273f31..7da63c4dda88584987031787a5ac37ccb098cfb4 100644 (file)
   -->\r
   <PropertyGroup>\r
     <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+mono $(ProjectDir)\..\lib\net_4_x\culevel.exe -o $(ProjectDir)\System.Web\UplevelHelper.cs $(ProjectDir)\UplevelHelperDefinitions.xml
 
     </PreBuildEvent>\r
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
+mono $(ProjectDir)\..\lib\net_4_x\culevel.exe -o $(ProjectDir)\System.Web\UplevelHelper.cs $(ProjectDir)\UplevelHelperDefinitions.xml
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 6d65c01cc378bbd0ec0b79b4a8a8311e76988f83..5308adce43f96e8cf9765d69d18c48e1312b5196 100644 (file)
   -->\r
   <PropertyGroup>\r
     <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+mono $(ProjectDir)\..\lib\net_4_x\culevel.exe -o $(ProjectDir)\System.Web\UplevelHelper.cs $(ProjectDir)\UplevelHelperDefinitions.xml
 
     </PreBuildEvent>\r
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
+mono $(ProjectDir)\..\lib\net_4_x\culevel.exe -o $(ProjectDir)\System.Web\UplevelHelper.cs $(ProjectDir)\UplevelHelperDefinitions.xml
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 84baaa18d96599d8b0cd86f609499a07d3b3b2fd..9064929de012eb685ebf71f8563c19b332e3c076 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 9e5f97d26276b74d20c3c77c217f01d1faf33e09..c1e931e0a9b631f15f767dc754ddaefec8e4bd9b 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     <EmbeddedResource Include="resources/DnDMove.cur">\r
       <LogicalName>System.Windows.Forms.DnDMove.cur</LogicalName>\r
     </EmbeddedResource>\r
-    <EmbeddedResource Include="resources/keyboards.resx">\r
+    <EmbeddedResource Include="resources/keyboards.resources.prebuilt">\r
       <LogicalName>keyboards.resources</LogicalName>\r
     </EmbeddedResource>\r
     <EmbeddedResource Include="resources/16_computer.png">\r
index 592cd494c7714d25c4596e736a03dd107a03ecc8..59ba68253f7678d90e83373cafbee8397a1bced5 100644 (file)
@@ -65,9 +65,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index fe50251b98b12cd7731eeda9d062b3c7746c503e..c4285270bae308c734bd1136297b0373fad48b71 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 6b91b26ed786ac9608d4dd4bd6c5d3e9a5a898d9..32d268ac86e9ff227b087e84e8a504c558b56f74 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 8cb1de855b41197dcaa8e3e48fa485602ef65e2e..ecceeff1d25ab131fedbf915563dc943f5d41b32 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 60cf0112f21668c7052a97f260a3a718387a2b06..7eacb3ddd76186652336c001a6d305daf646eb96 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 8a42daaad119ea85b20fd33aed5d9d4391630577..753fdd5bbb8f23a12b369415577b1624e2dfae04 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 2af43ce95c2299f5658c913e05dd0b97350a8ec9..a5d11aeffb1c16f590397c74502c490045f6e757 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index f44e4cd7e27ec02cfeb52f6e7a494a6167e89717..e3988ed811ffcb03d826fec78c7a4b1d4fbb96d8 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 7dd6b67b782f76741ef78fbc3d736daed701c493..5168c310d8608d21d54db0c43b9d10c90567c014 100644 (file)
@@ -65,9 +65,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index d4c83ee497c8c96135c73c406b5a70dc9a9bdc47..b5fb6bb927c52ea13578e019c868e4039664ec34 100644 (file)
@@ -42,6 +42,11 @@ REFERENCE_SOURCES_FLAGS += -d:MONO_FEATURE_THREAD_SUSPEND_RESUME
 TEST_MCS_FLAGS += -d:MONO_FEATURE_THREAD_SUSPEND_RESUME
 endif
 
+ifndef NO_MULTIPLE_APPDOMAINS
+REFERENCE_SOURCES_FLAGS += -d:MONO_FEATURE_MULTIPLE_APPDOMAINS
+TEST_MCS_FLAGS += -d:MONO_FEATURE_MULTIPLE_APPDOMAINS
+endif
+
 TXT_RESOURCE_STRINGS = ../referencesource/System/System.txt
 
 #
diff --git a/mcs/class/System/ReferenceSources/AutoWebProxyScriptEngine.cs b/mcs/class/System/ReferenceSources/AutoWebProxyScriptEngine.cs
new file mode 100644 (file)
index 0000000..4e4d285
--- /dev/null
@@ -0,0 +1,179 @@
+using System.Collections;
+using System.Collections.Generic;
+using System.Text.RegularExpressions;
+using Mono.Net;
+
+namespace System.Net
+{
+       class AutoWebProxyScriptEngine
+       {
+               public AutoWebProxyScriptEngine (WebProxy proxy, bool useRegistry)
+               {
+               }
+
+               public Uri AutomaticConfigurationScript { get; set; }
+               public bool AutomaticallyDetectSettings { get; set; }
+
+               public bool GetProxies (Uri destination, out IList<string> proxyList)
+               {
+                       int i = 0;
+                       return GetProxies (destination, out proxyList, ref i);
+               }
+
+               public bool GetProxies(Uri destination, out IList<string> proxyList, ref int syncStatus)
+               {
+                       proxyList = null;
+                       return false;
+               }
+
+               public void Close ()
+               {
+               }
+
+               public void Abort (ref int syncStatus)
+               {
+               }
+
+               public void CheckForChanges ()
+               {
+               }
+
+#if !MOBILE
+               public WebProxyData GetWebProxyData ()
+               {
+                       WebProxyData data;
+
+                       // TODO: Could re-use some pieces from _AutoWebProxyScriptEngine.cs
+                       if (IsWindows ()) {
+                               data = InitializeRegistryGlobalProxy ();
+                               if (data != null)
+                                       return data;
+                       }
+
+                       data = ReadEnvVariables ();
+                       return data ?? new WebProxyData ();
+               }
+
+               WebProxyData ReadEnvVariables ()
+               {
+                       string address = Environment.GetEnvironmentVariable ("http_proxy") ?? Environment.GetEnvironmentVariable ("HTTP_PROXY");
+
+                       if (address != null) {
+                               try {
+                                       if (!address.StartsWith ("http://"))
+                                               address = "http://" + address;
+
+                                       Uri uri = new Uri (address);
+                                       IPAddress ip;
+                                       
+                                       if (IPAddress.TryParse (uri.Host, out ip)) {
+                                               if (IPAddress.Any.Equals (ip)) {
+                                                       UriBuilder builder = new UriBuilder (uri);
+                                                       builder.Host = "127.0.0.1";
+                                                       uri = builder.Uri;
+                                               } else if (IPAddress.IPv6Any.Equals (ip)) {
+                                                       UriBuilder builder = new UriBuilder (uri);
+                                                       builder.Host = "[::1]";
+                                                       uri = builder.Uri;
+                                               }
+                                       }
+
+                                       bool bBypassOnLocal = false;
+                                       ArrayList al = new ArrayList ();
+                                       string bypass = Environment.GetEnvironmentVariable ("no_proxy") ?? Environment.GetEnvironmentVariable ("NO_PROXY");
+                                       
+                                       if (bypass != null) {
+                                               string[] bypassList = bypass.Split (new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
+                                       
+                                               foreach (string str in bypassList) {
+                                                       if (str != "*.local")
+                                                               al.Add (str);
+                                                       else
+                                                               bBypassOnLocal = true;
+                                               }
+                                       }
+
+                                       return new WebProxyData {
+                                               proxyAddress = uri,
+                                               bypassOnLocal = bBypassOnLocal,
+                                               bypassList = CreateBypassList (al)
+                                       };
+                               } catch (UriFormatException) {
+                               }
+                       }
+
+                       return null;
+               }
+
+               static bool IsWindows ()
+               {
+                       return (int) Environment.OSVersion.Platform < 4;
+               }
+                               
+               WebProxyData InitializeRegistryGlobalProxy ()
+               {
+                       int iProxyEnable = (int)Microsoft.Win32.Registry.GetValue ("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", "ProxyEnable", 0);
+
+                       if (iProxyEnable > 0) {
+                               string strHttpProxy = "";
+                               bool bBypassOnLocal = false;
+                               ArrayList al = new ArrayList ();
+                               
+                               string strProxyServer = (string)Microsoft.Win32.Registry.GetValue ("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", "ProxyServer", null);
+                               string strProxyOverrride = (string)Microsoft.Win32.Registry.GetValue ("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", "ProxyOverride", null);
+                               
+                               if (strProxyServer.Contains ("=")) {
+                                       foreach (string strEntry in strProxyServer.Split (new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries))
+                                               if (strEntry.StartsWith ("http=")) {
+                                                       strHttpProxy = strEntry.Substring (5);
+                                                       break;
+                                               }
+                               } else strHttpProxy = strProxyServer;
+                               
+                               if (strProxyOverrride != null) {
+                                       string[] bypassList = strProxyOverrride.Split (new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
+                               
+                                       foreach (string str in bypassList) {
+                                               if (str != "<local>")
+                                                       al.Add (str);
+                                               else
+                                                       bBypassOnLocal = true;
+                                       }
+                               }
+
+                               return new WebProxyData {
+                                       proxyAddress = ToUri (strHttpProxy),
+                                       bypassOnLocal = bBypassOnLocal,
+                                       bypassList = CreateBypassList (al)
+                               };
+                       }
+
+                       return null;
+               }
+
+               static Uri ToUri (string address)
+               {
+                       if (address == null)
+                               return null;
+                               
+                       if (address.IndexOf ("://", StringComparison.Ordinal) == -1) 
+                               address = "http://" + address;
+
+                       return new Uri (address);
+               }
+
+               // Takes an ArrayList of fileglob-formatted strings and returns an array of Regex-formatted strings
+               static ArrayList CreateBypassList (ArrayList al)
+               {
+                       string[] result = al.ToArray (typeof (string)) as string[];
+                       for (int c = 0; c < result.Length; c++)
+                       {
+                               result [c] = "^" +
+                                       Regex.Escape (result [c]).Replace (@"\*", ".*").Replace (@"\?", ".") +
+                                       "$";
+                       }
+                       return new ArrayList (result);
+               }
+#endif
+       }
+}
\ No newline at end of file
index 35474720e7a493f8a4e14965a2d609913f2051ed..b5b773e28c4f186888e9a03b710e7524d4c66c23 100644 (file)
@@ -25,6 +25,10 @@ namespace System.Net {
                internal static void Enter(TraceSource traceSource, object obj, string method, object paramObject) {
                }
 
+               [Conditional ("TRACE")]
+               internal static void Enter(TraceSource traceSource, string msg) {
+               }
+
                [Conditional ("TRACE")]
                internal static void Exception(TraceSource traceSource, object obj, string method, Exception e) {
                }
@@ -33,10 +37,22 @@ namespace System.Net {
                internal static void Exit(TraceSource traceSource, object obj, string method, object retObject) {
                }
 
+               [Conditional ("TRACE")]
+               internal static void Exit(TraceSource traceSource, string msg) {
+               }
+
                [Conditional ("TRACE")]
                internal static void PrintInfo(TraceSource traceSource, object obj, string method, string msg) {
                }
 
+               [Conditional ("TRACE")]
+               internal static void PrintInfo(TraceSource traceSource, object obj, string msg) {
+               }
+
+               [Conditional ("TRACE")]
+               internal static void PrintInfo(TraceSource traceSource, string msg) {
+               }
+
                [Conditional ("TRACE")]
                internal static void PrintWarning(TraceSource traceSource, object obj, string method, string msg) {
                }
@@ -44,6 +60,10 @@ namespace System.Net {
                [Conditional ("TRACE")]
                internal static void PrintWarning(TraceSource traceSource, string msg) {
                }
+
+               [Conditional ("TRACE")]
+               internal static void PrintError(TraceSource traceSource, string msg) {
+               }
        }
 
 #if MOBILE
diff --git a/mcs/class/System/ReferenceSources/RequestCacheProtocol.cs b/mcs/class/System/ReferenceSources/RequestCacheProtocol.cs
new file mode 100644 (file)
index 0000000..b9805f3
--- /dev/null
@@ -0,0 +1,10 @@
+namespace System.Net.Cache
+{
+       class RequestCacheProtocol
+       {
+               public RequestCacheProtocol (object arg1, object arg2)
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}
\ No newline at end of file
index 35d8f634c02343e74fa0d4c0de01d6c69129a832..dfec0bc910e666f28b3d9e57749c0cb8178ff984 100644 (file)
@@ -3,10 +3,12 @@
 //
 // Copyright 2014 Xamarin Inc
 //
-// Mono-specific additions, which are not in SR.cs.
+// Mono-specific additions, which are not in SR.cs or missing in referencesource
 //
 partial class SR
 {
        public const string mono_net_io_shutdown = "mono_net_io_shutdown";
        public const string mono_net_io_renegotiate = "mono_net_io_renegotiate";
+
+       public const string  net_log_set_socketoption_reuseport_default_on = "net_log_set_socketoption_reuseport_default_on";
 }
index 595c569e6c4a39edb008bec8bff173773ddda1ff..afe34459bbb58f8ae30911fd6b10b158757feed1 100644 (file)
@@ -1,3 +1,5 @@
+using System.Net.Security;
+
 namespace System.Net.Configuration {
        sealed class SettingsSectionInternal
        {
@@ -15,5 +17,14 @@ namespace System.Net.Configuration {
 #endif
 
                internal bool HttpListenerUnescapeRequestUrl = true;
+
+
+               internal bool UseNagleAlgorithm { get; set; }
+               internal bool Expect100Continue { get; set; }
+               internal bool CheckCertificateName { get; private set; }
+               internal int DnsRefreshTimeout { get; set; }
+               internal bool EnableDnsRoundRobin { get; set; }
+               internal bool CheckCertificateRevocationList { get; set; }
+               internal EncryptionPolicy EncryptionPolicy { get; private set; }
        }
 }
diff --git a/mcs/class/System/ReferenceSources/SystemNetworkCredential.cs b/mcs/class/System/ReferenceSources/SystemNetworkCredential.cs
deleted file mode 100644 (file)
index 71f87c8..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-namespace System.Net {
-    //
-    // Object representing default credentials
-    //
-    internal class SystemNetworkCredential : NetworkCredential {
-        internal static readonly SystemNetworkCredential defaultCredential = new SystemNetworkCredential();
-
-        // We want reference equality to work.  Making this private is a good way to guarantee that.
-        private SystemNetworkCredential() :
-            base(string.Empty, string.Empty, string.Empty) {
-        }
-    }
-}
\ No newline at end of file
index deb1d4cdb2b91625a080472b475dc82ad1ee9e87..d145183c3309a7e1a5663166758fbc38243f45b3 100644 (file)
@@ -28,7 +28,7 @@
     <DebugType>full</DebugType>\r
     <NoWarn>1699,618</NoWarn>\r
     <Optimize>false</Optimize>\r
-    <DefineConstants>TRACE;NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME</DefineConstants>\r
+    <DefineConstants>TRACE;NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;MONO_FEATURE_MULTIPLE_APPDOMAINS</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
@@ -36,7 +36,7 @@
     <DebugType>pdbonly</DebugType>\r
     <NoWarn>1699,618</NoWarn>\r
     <Optimize>true</Optimize>\r
-    <DefineConstants>NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME</DefineConstants>\r
+    <DefineConstants>NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;MONO_FEATURE_MULTIPLE_APPDOMAINS</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
     <Compile Include="..\referencesource\System\net\System\IriHelper.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_BufferOffsetSize.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_Connection.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\_emptywebproxy.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_HeaderInfo.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_HeaderInfoTable.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_HTTPDateParse.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_LazyAsyncResult.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_LoggingObject.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_NetRes.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\_ProxyChain.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_ScatterGatherBuffers.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\_TimerThread.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\_WebProxyDataBuilder.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\AuthenticationScheme.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\AuthenticationSchemeSelector.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\Authorization.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCache.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCacheEntry.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCacheManager.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCachePolicy.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\Configuration\DefaultProxySection.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\cookie.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\cookiecollection.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\cookiecontainer.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\cookieexception.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\CredentialCache.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\DnsEndPoint.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\EndPoint.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\filewebrequest.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\filewebresponse.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\FtpStatusCode.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\GlobalProxySelection.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\HttpListenerException.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\HttpListenerRequestUriBuilder.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\HttpRequestHeader.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\IPEndPoint.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\IPHostEntry.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\iwebproxy.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\IWebProxyFinder.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\IWebRequestCreate.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\mail\Base64Stream.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\mail\Base64WriteStateInfo.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\WebExceptionStatus.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\WebHeaderCollection.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\WebPermission.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\webproxy.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\WebRequest.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\WebRequestMethods.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\WebResponse.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\WebUtility.cs" />\r
     <Compile Include="ReferenceSources\_SslState.cs" />\r
     <Compile Include="ReferenceSources\_SslStream.cs" />\r
     <Compile Include="ReferenceSources\AssertWrapper.cs" />\r
+    <Compile Include="ReferenceSources\AutoWebProxyScriptEngine.cs" />\r
     <Compile Include="ReferenceSources\BinaryCompatibility.cs" />\r
     <Compile Include="ReferenceSources\CAPI.cs" />\r
     <Compile Include="ReferenceSources\ConfigurationManagerInternalFactory.cs" />\r
     <Compile Include="ReferenceSources\Internal.cs" />\r
     <Compile Include="ReferenceSources\Logging.cs" />\r
     <Compile Include="ReferenceSources\NativeMethods.cs" />\r
+    <Compile Include="ReferenceSources\RequestCacheProtocol.cs" />\r
     <Compile Include="ReferenceSources\SettingsSectionInternal.cs" />\r
     <Compile Include="ReferenceSources\Socket.cs" />\r
     <Compile Include="ReferenceSources\SR.cs" />\r
     <Compile Include="ReferenceSources\SSPIConfiguration.cs" />\r
     <Compile Include="ReferenceSources\SSPISafeHandles.cs" />\r
     <Compile Include="ReferenceSources\SSPIWrapper.cs" />\r
-    <Compile Include="ReferenceSources\SystemNetworkCredential.cs" />\r
     <Compile Include="ReferenceSources\Win32Exception.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CodeCompiler.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CodeDomConfigurationHandler.cs" />\r
     <Compile Include="System.Net\BindIPEndPoint.cs" />\r
     <Compile Include="System.Net\ChunkedInputStream.cs" />\r
     <Compile Include="System.Net\ChunkStream.cs" />\r
-    <Compile Include="System.Net\CredentialCache.cs" />\r
     <Compile Include="System.Net\DecompressionMethods.cs" />\r
     <Compile Include="System.Net\DefaultCertificatePolicy.cs" />\r
     <Compile Include="System.Net\DigestClient.cs" />\r
     <Compile Include="System.Net\FtpStatus.cs" />\r
     <Compile Include="System.Net\FtpWebRequest.cs" />\r
     <Compile Include="System.Net\FtpWebResponse.cs" />\r
-    <Compile Include="System.Net\GlobalProxySelection.cs" />\r
     <Compile Include="System.Net\HttpConnection.cs" />\r
     <Compile Include="System.Net\HttpListener.cs" />\r
     <Compile Include="System.Net\HttpListenerBasicIdentity.cs" />\r
     <Compile Include="System.Net\WebConnectionData.cs" />\r
     <Compile Include="System.Net\WebConnectionGroup.cs" />\r
     <Compile Include="System.Net\WebConnectionStream.cs" />\r
-    <Compile Include="System.Net\WebProxy.cs" />\r
-    <Compile Include="System.Net\WebRequest.cs" />\r
     <Compile Include="System.Runtime.InteropServices.ComTypes\ADVF.cs" />\r
     <Compile Include="System.Runtime.InteropServices.ComTypes\DATADIR.cs" />\r
     <Compile Include="System.Runtime.InteropServices.ComTypes\DVASPECT.cs" />\r
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 96325e477f02f4c01efcf731e37d9b48aadfaf56..5a955e92850db5d760606b618e4ad96e4bde2cd9 100644 (file)
@@ -28,7 +28,7 @@
     <DebugType>full</DebugType>\r
     <NoWarn>1699,618</NoWarn>\r
     <Optimize>false</Optimize>\r
-    <DefineConstants>TRACE;NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;SECURITY_DEP;XML_DEP;MONO_SECURITY_ALIAS;CONFIGURATION_DEP</DefineConstants>\r
+    <DefineConstants>TRACE;NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;MONO_FEATURE_MULTIPLE_APPDOMAINS;SECURITY_DEP;XML_DEP;MONO_SECURITY_ALIAS;CONFIGURATION_DEP</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
@@ -36,7 +36,7 @@
     <DebugType>pdbonly</DebugType>\r
     <NoWarn>1699,618</NoWarn>\r
     <Optimize>true</Optimize>\r
-    <DefineConstants>NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;SECURITY_DEP;XML_DEP;MONO_SECURITY_ALIAS;CONFIGURATION_DEP</DefineConstants>\r
+    <DefineConstants>NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;MONO_FEATURE_MULTIPLE_APPDOMAINS;SECURITY_DEP;XML_DEP;MONO_SECURITY_ALIAS;CONFIGURATION_DEP</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
     <Compile Include="..\referencesource\System\net\System\IriHelper.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_BufferOffsetSize.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_Connection.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\_emptywebproxy.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_HeaderInfo.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_HeaderInfoTable.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_HTTPDateParse.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_LazyAsyncResult.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_LoggingObject.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_NetRes.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\_ProxyChain.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_ScatterGatherBuffers.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\_TimerThread.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\_WebProxyDataBuilder.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\AuthenticationScheme.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\AuthenticationSchemeSelector.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\Authorization.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCache.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCacheEntry.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCacheManager.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCachePolicy.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\Configuration\DefaultProxySection.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\cookie.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\cookiecollection.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\cookiecontainer.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\cookieexception.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\CredentialCache.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\DnsEndPoint.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\EndPoint.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\filewebrequest.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\filewebresponse.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\FtpStatusCode.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\GlobalProxySelection.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\HttpListenerException.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\HttpListenerRequestUriBuilder.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\HttpRequestHeader.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\IPEndPoint.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\IPHostEntry.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\iwebproxy.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\IWebProxyFinder.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\IWebRequestCreate.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\mail\Base64Stream.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\mail\Base64WriteStateInfo.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\WebExceptionStatus.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\WebHeaderCollection.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\WebPermission.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\webproxy.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\WebRequest.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\WebRequestMethods.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\WebResponse.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\WebUtility.cs" />\r
     <Compile Include="ReferenceSources\_SslState.cs" />\r
     <Compile Include="ReferenceSources\_SslStream.cs" />\r
     <Compile Include="ReferenceSources\AssertWrapper.cs" />\r
+    <Compile Include="ReferenceSources\AutoWebProxyScriptEngine.cs" />\r
     <Compile Include="ReferenceSources\BinaryCompatibility.cs" />\r
     <Compile Include="ReferenceSources\CAPI.cs" />\r
     <Compile Include="ReferenceSources\ConfigurationManagerInternalFactory.cs" />\r
     <Compile Include="ReferenceSources\Internal.cs" />\r
     <Compile Include="ReferenceSources\Logging.cs" />\r
     <Compile Include="ReferenceSources\NativeMethods.cs" />\r
+    <Compile Include="ReferenceSources\RequestCacheProtocol.cs" />\r
     <Compile Include="ReferenceSources\SettingsSectionInternal.cs" />\r
     <Compile Include="ReferenceSources\Socket.cs" />\r
     <Compile Include="ReferenceSources\SR.cs" />\r
     <Compile Include="ReferenceSources\SSPIConfiguration.cs" />\r
     <Compile Include="ReferenceSources\SSPISafeHandles.cs" />\r
     <Compile Include="ReferenceSources\SSPIWrapper.cs" />\r
-    <Compile Include="ReferenceSources\SystemNetworkCredential.cs" />\r
     <Compile Include="ReferenceSources\Win32Exception.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CodeCompiler.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CodeDomConfigurationHandler.cs" />\r
     <Compile Include="System.Net\BindIPEndPoint.cs" />\r
     <Compile Include="System.Net\ChunkedInputStream.cs" />\r
     <Compile Include="System.Net\ChunkStream.cs" />\r
-    <Compile Include="System.Net\CredentialCache.cs" />\r
     <Compile Include="System.Net\DecompressionMethods.cs" />\r
     <Compile Include="System.Net\DefaultCertificatePolicy.cs" />\r
     <Compile Include="System.Net\DigestClient.cs" />\r
     <Compile Include="System.Net\FtpStatus.cs" />\r
     <Compile Include="System.Net\FtpWebRequest.cs" />\r
     <Compile Include="System.Net\FtpWebResponse.cs" />\r
-    <Compile Include="System.Net\GlobalProxySelection.cs" />\r
     <Compile Include="System.Net\HttpConnection.cs" />\r
     <Compile Include="System.Net\HttpListener.cs" />\r
     <Compile Include="System.Net\HttpListenerBasicIdentity.cs" />\r
     <Compile Include="System.Net\WebConnectionData.cs" />\r
     <Compile Include="System.Net\WebConnectionGroup.cs" />\r
     <Compile Include="System.Net\WebConnectionStream.cs" />\r
-    <Compile Include="System.Net\WebProxy.cs" />\r
-    <Compile Include="System.Net\WebRequest.cs" />\r
     <Compile Include="System.Runtime.InteropServices.ComTypes\ADVF.cs" />\r
     <Compile Include="System.Runtime.InteropServices.ComTypes\DATADIR.cs" />\r
     <Compile Include="System.Runtime.InteropServices.ComTypes\DVASPECT.cs" />\r
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 12e35ada5e73ba899216fbed4194ad9339eae6ec..6f18eeb5f4e49575ff4647c78f997a09b05c3e0f 100644 (file)
@@ -28,7 +28,7 @@
     <DebugType>full</DebugType>\r
     <NoWarn>1699,618</NoWarn>\r
     <Optimize>false</Optimize>\r
-    <DefineConstants>TRACE;NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;SECURITY_DEP;XML_DEP;MONO_SECURITY_ALIAS</DefineConstants>\r
+    <DefineConstants>TRACE;NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;MONO_FEATURE_MULTIPLE_APPDOMAINS;SECURITY_DEP;XML_DEP;MONO_SECURITY_ALIAS</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
@@ -36,7 +36,7 @@
     <DebugType>pdbonly</DebugType>\r
     <NoWarn>1699,618</NoWarn>\r
     <Optimize>true</Optimize>\r
-    <DefineConstants>NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;SECURITY_DEP;XML_DEP;MONO_SECURITY_ALIAS</DefineConstants>\r
+    <DefineConstants>NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;MONO_FEATURE_MULTIPLE_APPDOMAINS;SECURITY_DEP;XML_DEP;MONO_SECURITY_ALIAS</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
     <Compile Include="..\referencesource\System\net\System\IriHelper.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_BufferOffsetSize.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_Connection.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\_emptywebproxy.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_HeaderInfo.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_HeaderInfoTable.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_HTTPDateParse.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_LazyAsyncResult.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_LoggingObject.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_NetRes.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\_ProxyChain.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\_ScatterGatherBuffers.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\_TimerThread.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\_WebProxyDataBuilder.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\AuthenticationScheme.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\AuthenticationSchemeSelector.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\Authorization.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCache.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCacheEntry.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCacheManager.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCachePolicy.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\Configuration\DefaultProxySection.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\cookie.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\cookiecollection.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\cookiecontainer.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\cookieexception.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\CredentialCache.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\DnsEndPoint.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\EndPoint.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\filewebrequest.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\filewebresponse.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\FtpStatusCode.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\GlobalProxySelection.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\HttpListenerException.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\HttpListenerRequestUriBuilder.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\HttpRequestHeader.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\IPEndPoint.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\IPHostEntry.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\iwebproxy.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\IWebProxyFinder.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\IWebRequestCreate.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\mail\Base64Stream.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\mail\Base64WriteStateInfo.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\WebExceptionStatus.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\WebHeaderCollection.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\WebPermission.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\webproxy.cs" />\r
+    <Compile Include="..\referencesource\System\net\System\Net\WebRequest.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\WebRequestMethods.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\WebResponse.cs" />\r
     <Compile Include="..\referencesource\System\net\System\Net\WebUtility.cs" />\r
     <Compile Include="ReferenceSources\_SslState.cs" />\r
     <Compile Include="ReferenceSources\_SslStream.cs" />\r
     <Compile Include="ReferenceSources\AssertWrapper.cs" />\r
+    <Compile Include="ReferenceSources\AutoWebProxyScriptEngine.cs" />\r
     <Compile Include="ReferenceSources\BinaryCompatibility.cs" />\r
     <Compile Include="ReferenceSources\CAPI.cs" />\r
     <Compile Include="ReferenceSources\ConfigurationManagerInternalFactory.cs" />\r
     <Compile Include="ReferenceSources\Internal.cs" />\r
     <Compile Include="ReferenceSources\Logging.cs" />\r
     <Compile Include="ReferenceSources\NativeMethods.cs" />\r
+    <Compile Include="ReferenceSources\RequestCacheProtocol.cs" />\r
     <Compile Include="ReferenceSources\SettingsSectionInternal.cs" />\r
     <Compile Include="ReferenceSources\Socket.cs" />\r
     <Compile Include="ReferenceSources\SR.cs" />\r
     <Compile Include="ReferenceSources\SSPIConfiguration.cs" />\r
     <Compile Include="ReferenceSources\SSPISafeHandles.cs" />\r
     <Compile Include="ReferenceSources\SSPIWrapper.cs" />\r
-    <Compile Include="ReferenceSources\SystemNetworkCredential.cs" />\r
     <Compile Include="ReferenceSources\Win32Exception.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CodeCompiler.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CodeDomConfigurationHandler.cs" />\r
     <Compile Include="System.Net\BindIPEndPoint.cs" />\r
     <Compile Include="System.Net\ChunkedInputStream.cs" />\r
     <Compile Include="System.Net\ChunkStream.cs" />\r
-    <Compile Include="System.Net\CredentialCache.cs" />\r
     <Compile Include="System.Net\DecompressionMethods.cs" />\r
     <Compile Include="System.Net\DefaultCertificatePolicy.cs" />\r
     <Compile Include="System.Net\DigestClient.cs" />\r
     <Compile Include="System.Net\FtpStatus.cs" />\r
     <Compile Include="System.Net\FtpWebRequest.cs" />\r
     <Compile Include="System.Net\FtpWebResponse.cs" />\r
-    <Compile Include="System.Net\GlobalProxySelection.cs" />\r
     <Compile Include="System.Net\HttpConnection.cs" />\r
     <Compile Include="System.Net\HttpListener.cs" />\r
     <Compile Include="System.Net\HttpListenerBasicIdentity.cs" />\r
     <Compile Include="System.Net\WebConnectionData.cs" />\r
     <Compile Include="System.Net\WebConnectionGroup.cs" />\r
     <Compile Include="System.Net\WebConnectionStream.cs" />\r
-    <Compile Include="System.Net\WebProxy.cs" />\r
-    <Compile Include="System.Net\WebRequest.cs" />\r
     <Compile Include="System.Runtime.InteropServices.ComTypes\ADVF.cs" />\r
     <Compile Include="System.Runtime.InteropServices.ComTypes\DATADIR.cs" />\r
     <Compile Include="System.Runtime.InteropServices.ComTypes\DVASPECT.cs" />\r
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index ed53a837361e1dbefcb282e1b598d049bc5d1779..594803e2c2dc0314087b3dbec5c55e6ccd4f14c0 100644 (file)
@@ -42,7 +42,7 @@ namespace System.Net.Configuration
        {
                public virtual object Create (object parent, object configContext, XmlNode section)
                {
-#if (XML_DEP)                  
+#if XML_DEP
                        if (section.Attributes != null && section.Attributes.Count != 0)
                                HandlersUtil.ThrowException ("Unrecognized attribute", section);
 
@@ -60,7 +60,7 @@ namespace System.Net.Configuration
                                        if (child.Attributes != null && child.Attributes.Count != 0)
                                                HandlersUtil.ThrowException ("Unrecognized attribute", child);
 
-                                       WebRequest.ClearPrefixes ();
+                                       WebRequest.PrefixList = new ArrayList ();
                                        continue;
                                }
 
@@ -70,16 +70,18 @@ namespace System.Net.Configuration
                                        if (child.Attributes != null && child.Attributes.Count != 0)
                                                HandlersUtil.ThrowException ("Unrecognized attribute", child);
 
-                                       WebRequest.AddPrefix (prefix, type);
-                                       continue;
+                                       throw new NotImplementedException ();
+                                       //WebRequest.PrefixList.Add (new WebRequestPrefixElement(prefix, type));
+                                       //continue;
                                }
 
                                if (name == "remove") {
                                        if (child.Attributes != null && child.Attributes.Count != 0)
                                                HandlersUtil.ThrowException ("Unrecognized attribute", child);
 
-                                       WebRequest.RemovePrefix (prefix);
-                                       continue;
+                                       throw new NotImplementedException ();
+                                       // WebRequest.RemovePrefix (prefix);
+                                       // continue;
                                }
 
                                HandlersUtil.ThrowException ("Unexpected element", child);
index afcd4c36e024aef0e35f9810e24d12c7c136b0f8..3c3256c709629f5e10029a9e6a004a337bc13c89 100644 (file)
@@ -39,8 +39,11 @@ namespace System.Net.NetworkInformation
        [StructLayout (LayoutKind.Sequential)]
        class Win32_FIXED_INFO
        {
+               // Can't have unresolvable pinvokes on ios
+#if !MOBILE
                [DllImport ("iphlpapi.dll", SetLastError = true)]
                static extern int GetNetworkParams (byte [] bytes, ref int size);
+#endif
 
                static Win32_FIXED_INFO fixed_info;
 
@@ -54,6 +57,7 @@ namespace System.Net.NetworkInformation
 
                static Win32_FIXED_INFO GetInstance ()
                {
+#if !MOBILE
                        int len = 0;
                        byte [] bytes = null;
                        GetNetworkParams (null, ref len);
@@ -66,6 +70,9 @@ namespace System.Net.NetworkInformation
                                }
                        }
                        return info;
+#else
+               throw new NotImplementedException ();
+#endif
                }
 
                const int MAX_HOSTNAME_LEN = 128;
index 4db75cc9655e08b634c79f8270ccd4b2d04d527a..f9cb48fc731b07da8b83cabcb4cbc23210ccf733 100644 (file)
@@ -25,7 +25,7 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if SECURITY_DEP && !MONO_FEATURE_NEW_TLS
+#if !MONO_FEATURE_NEW_TLS
 namespace System.Net.Security
 {
        public enum EncryptionPolicy
diff --git a/mcs/class/System/System.Net/CredentialCache.cs b/mcs/class/System/System.Net/CredentialCache.cs
deleted file mode 100644 (file)
index 9978daa..0000000
+++ /dev/null
@@ -1,282 +0,0 @@
-//
-// System.Net.CredentialCache.cs
-//
-// Author:
-//   Lawrence Pit (loz@cable.a2000.nl)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections;
-using System.Runtime.Serialization;
-
-namespace System.Net {
-       public class CredentialCache : ICredentials, IEnumerable, ICredentialsByHost
-       {
-               static NetworkCredential empty = new NetworkCredential (String.Empty, String.Empty, String.Empty);
-               Hashtable cache;
-               Hashtable cacheForHost;
-
-               public CredentialCache () 
-               {
-                       cache = new Hashtable ();
-                       cacheForHost = new Hashtable ();
-               }
-               
-               [MonoTODO ("Need EnvironmentPermission implementation first")]
-               public static ICredentials DefaultCredentials {
-                       get {
-                               // This is used for NTLM, Kerberos and Negotiate under MS
-                               return empty;
-                       }
-               }
-
-               // MS does might return a special ICredentials which does not allow getting the
-               // username/password information out of it for non-internal classes.
-               public static NetworkCredential DefaultNetworkCredentials {
-                       get { return empty; }
-               }
-
-               public NetworkCredential GetCredential (Uri uriPrefix, string authType)
-               {
-                       int longestPrefix = -1;
-                       NetworkCredential result = null;
-                       
-                       if (uriPrefix == null || authType == null)
-                               return null;
-                               
-                       string absPath = uriPrefix.AbsolutePath;
-                       absPath = absPath.Substring (0, absPath.LastIndexOf ('/'));
-                       
-                       IDictionaryEnumerator e = cache.GetEnumerator ();
-                       while (e.MoveNext ()) {
-                               CredentialCacheKey key = e.Key as CredentialCacheKey;
-                               
-                               if (key.Length <= longestPrefix) 
-                                       continue;
-                               
-                               if (String.Compare (key.AuthType, authType, true) != 0)
-                                       continue;
-                               
-                               Uri cachedUri = key.UriPrefix;
-                               
-                               if (cachedUri.Scheme != uriPrefix.Scheme)
-                                       continue;
-                                       
-                               if (cachedUri.Port != uriPrefix.Port)
-                                       continue;
-                                       
-                               if (cachedUri.Host != uriPrefix.Host)
-                                       continue;
-                                                               
-                               if (!absPath.StartsWith (key.AbsPath))
-                                       continue;
-                                       
-                               longestPrefix = key.Length;
-                               result = (NetworkCredential) e.Value;
-                       }
-                       
-                       return result;
-               }
-
-               public IEnumerator GetEnumerator ()
-               {
-                       return cache.Values.GetEnumerator ();
-               }               
-               
-               public void Add (Uri uriPrefix, string authType, NetworkCredential cred)
-               {
-                       if (uriPrefix == null) 
-                               throw new ArgumentNullException ("uriPrefix");
-
-                       if (authType == null) 
-                               throw new ArgumentNullException ("authType");
-                       
-                       // throws ArgumentException when same key already exists.
-                       cache.Add (new CredentialCacheKey (uriPrefix, authType), cred);
-               }
-               
-               public void Remove (Uri uriPrefix, string authType)
-               {
-                       if (uriPrefix == null) 
-                               throw new ArgumentNullException ("uriPrefix");
-
-                       if (authType == null) 
-                               throw new ArgumentNullException ("authType");
-
-                       cache.Remove (new CredentialCacheKey (uriPrefix, authType));
-               }
-               
-               public NetworkCredential GetCredential (string host, int port, string authenticationType)
-               {
-                       NetworkCredential result = null;
-                       
-                       if (host == null || port < 0 || authenticationType == null)
-                               return null;
-
-                       IDictionaryEnumerator e = cacheForHost.GetEnumerator ();
-                       while (e.MoveNext ()) {
-                               CredentialCacheForHostKey key = e.Key as CredentialCacheForHostKey;
-                               
-                               if (String.Compare (key.AuthType, authenticationType, true) != 0)
-                                       continue;
-                               
-                               if (key.Host != host)
-                                       continue;
-                               
-                               if (key.Port != port)
-                                       continue;
-                               
-                               result = (NetworkCredential) e.Value;
-                       }
-                       
-                       return result;
-               }
-
-               public void Add (string host, int port, string authenticationType, NetworkCredential credential)
-               {
-                       if (host == null)
-                               throw new ArgumentNullException("host");
-
-                       if (port < 0)
-                               throw new ArgumentOutOfRangeException("port");
-
-                       if (authenticationType == null)
-                               throw new ArgumentOutOfRangeException("authenticationType");
-
-                       cacheForHost.Add (new CredentialCacheForHostKey (host, port, authenticationType), credential);
-               }
-
-               public void Remove (string host, int port, string authenticationType)
-               {
-                       if (host == null)
-                               return;
-
-                       if (authenticationType == null)
-                               return;
-
-                       cacheForHost.Remove (new CredentialCacheForHostKey (host, port, authenticationType));
-               }
-
-               class CredentialCacheKey {
-                       Uri uriPrefix;
-                       string authType;
-                       string absPath;
-                       int len;
-                       int hash;
-                       
-                       internal CredentialCacheKey (Uri uriPrefix, string authType)
-                       {
-                               this.uriPrefix = uriPrefix;
-                               this.authType = authType;
-                               
-                               this.absPath = uriPrefix.AbsolutePath;
-                               this.absPath = absPath.Substring (0, absPath.LastIndexOf ('/'));                                
-
-                               this.len = uriPrefix.AbsoluteUri.Length;
-                               this.hash = uriPrefix.GetHashCode () 
-                                         + authType.GetHashCode ();
-                       }
-                       
-                       public int Length {
-                               get { return len; }
-                       }                       
-                       
-                       public string AbsPath {
-                               get { return absPath; }
-                       }
-                       
-                       public Uri UriPrefix {
-                               get { return uriPrefix; }
-                       }
-                       
-                       public string AuthType {
-                               get { return authType; }
-                       }
-                       
-                       public override int GetHashCode ()
-                       {
-                               return hash;
-                       }
-                       
-                       public override bool Equals (object obj)
-                       {
-                               CredentialCacheKey key = obj as CredentialCacheKey;
-                               return ((key != null) && (this.hash == key.hash));
-                       }
-                       
-                       public override string ToString ()
-                       {
-                               return absPath + " : " + authType + " : len=" + len;
-                       }
-               }
-
-               class CredentialCacheForHostKey {
-                       string host;
-                       int port;
-                       string authType;
-                       int hash;
-
-                       internal CredentialCacheForHostKey (string host, int port, string authType)
-                       {
-                               this.host = host;
-                               this.port = port;
-                               this.authType = authType;
-
-                               this.hash = host.GetHashCode ()
-                                       + port.GetHashCode ()
-                                       + authType.GetHashCode ();
-                       }
-
-                       public string Host {
-                               get { return host; }
-                       }
-
-                       public int Port {
-                               get { return port; }
-                       }
-
-                       public string AuthType {
-                               get { return authType; }
-                       }
-
-               public override int GetHashCode ()
-               {
-                       return hash;
-               }
-
-               public override bool Equals (object obj)
-               {
-                       CredentialCacheForHostKey key = obj as CredentialCacheForHostKey;
-                       return ((key != null) && (this.hash == key.hash));
-               }
-
-               public override string ToString ()
-               {
-                       return host + " : " + authType;
-               }
-       }
-}
-}
-
-
index 5400d73b87e7e6fee4d7d365260f00d7797f81d9..b7aae27d7f9039e03d8d8810704e7e0c04bfdea4 100644 (file)
@@ -73,7 +73,8 @@ namespace System.Net {
                        SocketAsyncEventArgs args = new SocketAsyncEventArgs ();
                        args.UserToken = this;
                        args.Completed += OnAccept;
-                       Accept (sock, args);
+                       Socket dummy = null;
+                       Accept (sock, args, ref dummy);
                        prefixes = new Hashtable ();
                        unregistered = new Dictionary<HttpConnection, HttpConnection> ();
                }
@@ -82,9 +83,21 @@ namespace System.Net {
                        get { return listener; }
                }
 
-               static void Accept (Socket socket, SocketAsyncEventArgs e) {
+               static void Accept (Socket socket, SocketAsyncEventArgs e, ref Socket accepted) {
                        e.AcceptSocket = null;
-                       var asyn = socket.AcceptAsync(e);
+                       bool asyn;
+                       try {
+                               asyn = socket.AcceptAsync(e);
+                       } catch {
+                               if (accepted != null) {
+                                       try {
+                                               accepted.Close ();
+                                       } catch {
+                                       }
+                                       accepted = null;
+                               }
+                               return;
+                       }
                        if (!asyn) {
                                ProcessAccept(e);
                        }
@@ -100,7 +113,7 @@ namespace System.Net {
                        EndPointListener epl = (EndPointListener) args.UserToken;
 
 
-                       Accept (epl.sock, args);
+                       Accept (epl.sock, args, ref accepted);
                        if (accepted == null)
                                return;
 
diff --git a/mcs/class/System/System.Net/GlobalProxySelection.cs b/mcs/class/System/System.Net/GlobalProxySelection.cs
deleted file mode 100644 (file)
index 049f61c..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-//
-// System.Net.GlobalProxySelection
-//
-// Author:
-//   Lawrence Pit (loz@cable.a2000.nl)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections;
-using System.Configuration;
-using System.IO;
-using System.Runtime.Serialization;
-using System.Net.Configuration;
-
-namespace System.Net 
-{
-       [ObsoleteAttribute("Use WebRequest.DefaultProxy instead")]
-       public class GlobalProxySelection
-       {
-               // Constructors
-               public GlobalProxySelection() { }
-               
-               // Properties
-
-               public static IWebProxy Select {
-                       get { return WebRequest.DefaultWebProxy; }
-                       set { WebRequest.DefaultWebProxy = value; }
-               }
-               
-               // Methods
-               
-               public static IWebProxy GetEmptyWebProxy()
-               {
-                       // must return a new one each time, as the credentials
-                       // can be set
-                       return new EmptyWebProxy ();    
-               }
-               
-               // Internal Classes
-               
-               internal class EmptyWebProxy : IWebProxy {
-                       private ICredentials credentials = null;
-                       
-                       internal EmptyWebProxy () { }
-                       
-                       public ICredentials Credentials {
-                               get { return credentials; } 
-                               set { credentials = value; }
-                       }
-
-                       public Uri GetProxy (Uri destination)
-                       {
-                               return destination;
-                       }
-
-                       public bool IsBypassed (Uri host)
-                       {
-                               return true; // pass directly to host
-                       }
-               }
-       }               
-}
index 97233f4f488ad6cf0340fcfbb15a4c0d96f8c3d6..a151f6bb870e2ed992fa5b5639864d82835979ec 100644 (file)
@@ -154,7 +154,7 @@ namespace System.Net
                {
                        this.requestUri = uri;
                        this.actualUri = uri;
-                       this.proxy = GlobalProxySelection.Select;
+                       this.proxy = InternalDefaultWebProxy;
                        this.webHeaders = new WebHeaderCollection (WebHeaderCollectionType.HttpWebRequest);
                        ThrowOnError = true;
                        ResetAuthorization ();
@@ -1474,7 +1474,7 @@ namespace System.Net
                        if (wce != null) {
                                WebConnection cnc = wce.Connection;
                                cnc.PriorityRequest = this;
-                               ICredentials creds = !isProxy ? credentials : proxy.Credentials;
+                               ICredentials creds = (!isProxy || proxy == null) ? credentials : proxy.Credentials;
                                if (creds != null) {
                                        cnc.NtlmCredential = creds.GetCredential (requestUri, "NTLM");
                                        cnc.UnsafeAuthenticatedConnectionSharing = unsafe_auth_blah;
@@ -1531,7 +1531,7 @@ namespace System.Net
                                        return;
                                }
 
-                               bool isProxy = ProxyQuery && !proxy.IsBypassed (actualUri);
+                               bool isProxy = ProxyQuery && proxy != null && !proxy.IsBypassed (actualUri);
 
                                bool redirected;
                                try {
index 13c06ec493f499c3f5636c35248940ba13b3a6cc..ef22ed44c2b20935947099b7dcab2425614eaf3b 100644 (file)
@@ -489,6 +489,11 @@ namespace System.Net
                                return true;
                        }
                }
+
+               internal Socket GetConnection(PooledStream PooledStream, object owner, bool async, out IPAddress address, ref Socket abortSocket, ref Socket abortSocket6)
+               {
+                       throw new NotImplementedException ();
+               }
        }
 }
 
index abd23e67270d619d6b6435ca104187a9be488401..723125b1e753c867afe58eb58109b3895812ef7d 100644 (file)
@@ -311,7 +311,7 @@ namespace System.Net
 
                public static ServicePoint FindServicePoint (Uri address) 
                {
-                       return FindServicePoint (address, GlobalProxySelection.Select);
+                       return FindServicePoint (address, null);
                }
                
                public static ServicePoint FindServicePoint (string uriString, IWebProxy proxy)
index 4d7e329a89c563df5038bd6c0c0e95330893a12e..d971cdd841247e06269b3819de75f54b6804fa4d 100644 (file)
@@ -7,6 +7,8 @@
 // Copyright 2013-2014 Xamarin Inc.
 //
 
+#if MOBILE
+
 using System;
 using System.Collections.Generic;
 
@@ -29,3 +31,5 @@ namespace System.Net {
                public static CipherSuitesCallback ServerCipherSuitesCallback { get; set; }
        }
 }
+
+#endif
diff --git a/mcs/class/System/System.Net/WebProxy.cs b/mcs/class/System/System.Net/WebProxy.cs
deleted file mode 100644 (file)
index 365535a..0000000
+++ /dev/null
@@ -1,252 +0,0 @@
-//
-// System.Net.WebProxy.cs
-//
-// Authors:
-//   Lawrence Pit (loz@cable.a2000.nl)
-//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections;
-using System.Globalization;
-using System.Runtime.Serialization;
-using System.Text.RegularExpressions;
-
-namespace System.Net 
-{
-       [Serializable]
-       public class WebProxy : IWebProxy, ISerializable
-       {
-               Uri address;
-               bool bypassOnLocal;
-               ArrayList bypassList;
-               ICredentials credentials;
-               bool useDefaultCredentials;
-
-               // Constructors
-
-               public WebProxy ()
-                       : this ((Uri) null, false, null, null) {}
-
-               public WebProxy (string address)
-                       : this (ToUri (address), false, null, null) {}
-
-               public WebProxy (Uri address) 
-                       : this (address, false, null, null) {}
-
-               public WebProxy (string address, bool bypassOnLocal) 
-                       : this (ToUri (address), bypassOnLocal, null, null) {}
-
-               public WebProxy (string host, int port)
-                       : this (new Uri ("http://" + host + ":" + port)) {}
-
-               public WebProxy (Uri address, bool bypassOnLocal)
-                       : this (address, bypassOnLocal, null, null) {}
-
-               public WebProxy (string address, bool bypassOnLocal, string [] bypassList)
-                       : this (ToUri (address), bypassOnLocal, bypassList, null) {}
-
-               public WebProxy (Uri address, bool bypassOnLocal, string [] bypassList)
-                       : this (address, bypassOnLocal, bypassList, null) {}
-
-               public WebProxy (string address, bool bypassOnLocal, string [] bypassList,
-                               ICredentials credentials)
-                       : this (ToUri (address), bypassOnLocal, bypassList, credentials) {}
-
-               public WebProxy (Uri address, bool bypassOnLocal, 
-                                string[] bypassList, ICredentials credentials)
-               {
-                       this.address = address;
-                       this.bypassOnLocal = bypassOnLocal;
-                       if (bypassList != null)
-                               this.bypassList = new ArrayList (bypassList);
-                       this.credentials = credentials;
-                       CheckBypassList ();
-               }
-
-               protected WebProxy (SerializationInfo serializationInfo, StreamingContext streamingContext) 
-               {
-                       this.address = (Uri) serializationInfo.GetValue ("_ProxyAddress", typeof (Uri));
-                       this.bypassOnLocal = serializationInfo.GetBoolean ("_BypassOnLocal");
-                       this.bypassList = (ArrayList) serializationInfo.GetValue ("_BypassList", typeof (ArrayList));
-                       this.useDefaultCredentials =  serializationInfo.GetBoolean ("_UseDefaultCredentials");
-                       this.credentials = null;
-                       CheckBypassList ();
-               }
-
-               // Properties
-               public Uri Address {
-                       get { return address; }
-                       set { address = value; }
-               }
-
-               public ArrayList BypassArrayList {
-                       get {
-                               if (bypassList == null)
-                                       bypassList = new ArrayList ();
-                               return bypassList;
-                       }
-               }
-
-               public string [] BypassList {
-                       get { return (string []) BypassArrayList.ToArray (typeof (string)); }
-                       set { 
-                               if (value == null)
-                                       throw new ArgumentNullException ();
-                               bypassList = new ArrayList (value); 
-                               CheckBypassList ();
-                       }
-               }
-
-               public bool BypassProxyOnLocal {
-                       get { return bypassOnLocal; }
-                       set { bypassOnLocal = value; }
-               }
-
-               public ICredentials Credentials {
-                       get { return credentials; }
-                       set { credentials = value; }
-               }
-
-               [MonoTODO ("Does not affect Credentials, since CredentialCache.DefaultCredentials is not implemented.")]
-               public bool UseDefaultCredentials {
-                       get { return useDefaultCredentials; }
-                       set { useDefaultCredentials = value; }
-               }
-
-               // Methods
-               [Obsolete ("This method has been deprecated", false)]
-               [MonoTODO("Can we get this info under windows from the system?")]
-               public static WebProxy GetDefaultProxy ()
-               {
-                       // Select gets a WebProxy from config files, if available.
-                       IWebProxy p = GlobalProxySelection.Select;
-                       if (p is WebProxy)
-                               return (WebProxy) p;
-
-                       return new WebProxy ();
-               }
-
-               public Uri GetProxy (Uri destination)
-               {
-                       if (IsBypassed (destination))
-                               return destination;
-
-                       return address;
-               }
-
-               public bool IsBypassed (Uri host)
-               {
-                       if (host == null)
-                               throw new ArgumentNullException ("host");
-
-                       if (host.IsLoopback && bypassOnLocal)
-                               return true;
-
-                       if (address == null)
-                               return true;
-
-                       string server = host.Host;
-                       if (bypassOnLocal && server.IndexOf ('.') == -1)
-                               return true;
-
-                       // LAMESPEC
-                       if (!bypassOnLocal) {
-                               if (String.Compare (server, "localhost", true, CultureInfo.InvariantCulture) == 0)
-                                       return true;
-                               if (String.Compare (server, "loopback", true, CultureInfo.InvariantCulture) == 0)
-                                       return true;
-
-                               IPAddress addr = null;
-                               if (IPAddress.TryParse (server, out addr) && IPAddress.IsLoopback (addr))
-                                       return true;
-                       }
-
-                       if (bypassList == null || bypassList.Count == 0)
-                               return false;
-
-                       try {
-                               string hostStr = host.Scheme + "://" + host.Authority;
-                               int i = 0;
-                               for (; i < bypassList.Count; i++) {
-                                       Regex regex = new Regex ((string) bypassList [i], 
-                                               // TODO: RegexOptions.Compiled |  // not implemented yet by Regex
-                                               RegexOptions.IgnoreCase |
-                                               RegexOptions.Singleline);
-
-                                       if (regex.IsMatch (hostStr))
-                                               break;
-                               }
-
-                               if (i == bypassList.Count)
-                                       return false;
-
-                               // continue checking correctness of regular expressions..
-                               // will throw expression when an invalid one is found
-                               for (; i < bypassList.Count; i++)
-                                       new Regex ((string) bypassList [i]);
-
-                               return true;
-                       } catch (ArgumentException) {
-                               return false;
-                       }
-               }
-
-               protected virtual void GetObjectData (SerializationInfo serializationInfo, StreamingContext streamingContext)
-               {
-                       serializationInfo.AddValue ("_BypassOnLocal", bypassOnLocal);
-                       serializationInfo.AddValue ("_ProxyAddress", address);
-                       serializationInfo.AddValue ("_BypassList", bypassList);
-                       serializationInfo.AddValue ("_UseDefaultCredentials", UseDefaultCredentials);
-               }
-
-               void ISerializable.GetObjectData (SerializationInfo serializationInfo,
-                                                 StreamingContext streamingContext)
-               {
-                       GetObjectData (serializationInfo, streamingContext);
-               }
-
-               // Private Methods
-               // this compiles the regular expressions, and will throw
-               // an exception when an invalid one is found.
-               void CheckBypassList ()
-               {
-                       if (bypassList == null)
-                               return;
-                       for (int i = 0; i < bypassList.Count; i++)
-                               new Regex ((string) bypassList [i]);
-               }
-
-               static Uri ToUri (string address)
-               {
-                       if (address == null)
-                               return null;
-                               
-                       if (address.IndexOf ("://", StringComparison.Ordinal) == -1) 
-                               address = "http://" + address;
-
-                       return new Uri (address);
-               }
-       }
-}
diff --git a/mcs/class/System/System.Net/WebRequest.cs b/mcs/class/System/System.Net/WebRequest.cs
deleted file mode 100644 (file)
index fd450c8..0000000
+++ /dev/null
@@ -1,548 +0,0 @@
-//
-// System.Net.WebRequest
-//
-// Authors:
-//  Lawrence Pit (loz@cable.a2000.nl)
-//     Marek Safar (marek.safar@gmail.com)
-//
-// Copyright 2011 Xamarin Inc.
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections;
-using System.Collections.Specialized;
-using System.Configuration;
-using System.IO;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Globalization;
-using System.Net.Configuration;
-using System.Net.Security;
-using System.Net.Cache;
-using System.Security.Principal;
-using System.Threading.Tasks;
-using System.Text.RegularExpressions;
-using Mono.Net;
-
-#if NET_2_1
-using ConfigurationException = System.ArgumentException;
-
-namespace System.Net.Configuration {
-       class Dummy {}
-}
-#endif
-
-namespace System.Net 
-{
-       [Serializable]
-       public abstract class WebRequest : MarshalByRefObject, ISerializable {
-               static HybridDictionary prefixes = new HybridDictionary ();
-               static bool isDefaultWebProxySet;
-               static IWebProxy defaultWebProxy;
-               static RequestCachePolicy defaultCachePolicy;
-
-               internal const int DefaultTimeout = 100000;
-
-               static WebRequest ()
-               {
-#if MOBILE
-                       IWebRequestCreate http = new HttpRequestCreator ();
-                       RegisterPrefix ("http", http);
-                       RegisterPrefix ("https", http);
-                       RegisterPrefix ("file", new FileWebRequestCreator ());
-                       RegisterPrefix ("ftp", new FtpRequestCreator ());
-#else
-       #if CONFIGURATION_DEP
-                       object cfg = ConfigurationManager.GetSection ("system.net/webRequestModules");
-                       WebRequestModulesSection s = cfg as WebRequestModulesSection;
-                       if (s != null) {
-                               foreach (WebRequestModuleElement el in
-                                        s.WebRequestModules)
-                                       AddPrefix (el.Prefix, el.Type);
-                               return;
-                       }
-       #endif
-                       ConfigurationSettings.GetConfig ("system.net/webRequestModules");
-#endif
-               }
-               
-               protected WebRequest () 
-               {
-               }
-               
-               protected WebRequest (SerializationInfo serializationInfo, StreamingContext streamingContext) 
-               {
-               }
-
-               static Exception GetMustImplement ()
-               {
-                       return new NotImplementedException ("This method must be implemented in derived classes");
-               }
-               
-               // Properties
-
-               private AuthenticationLevel authentication_level = AuthenticationLevel.MutualAuthRequested;
-               
-               public AuthenticationLevel AuthenticationLevel
-               {
-                       get {
-                               return(authentication_level);
-                       }
-                       set {
-                               authentication_level = value;
-                       }
-               }
-               
-               public virtual string ConnectionGroupName {
-                       get { throw GetMustImplement (); }
-                       set { throw GetMustImplement (); }
-               }
-               
-               public virtual long ContentLength { 
-                       get { throw GetMustImplement (); }
-                       set { throw GetMustImplement (); }
-               }
-               
-               public virtual string ContentType { 
-                       get { throw GetMustImplement (); }
-                       set { throw GetMustImplement (); }
-               }
-               
-               public virtual ICredentials Credentials { 
-                       get { throw GetMustImplement (); }
-                       set { throw GetMustImplement (); }
-               }
-
-               [MonoTODO ("Implement the caching system. Currently always returns a policy with the NoCacheNoStore level")]
-               public virtual RequestCachePolicy CachePolicy
-               {
-                       get { return DefaultCachePolicy; }
-                       set {
-                       }
-               }
-               
-               public static RequestCachePolicy DefaultCachePolicy {
-                       get {
-                               return defaultCachePolicy ?? (defaultCachePolicy = new HttpRequestCachePolicy (HttpRequestCacheLevel.NoCacheNoStore));
-                       }
-                       set {
-                               throw GetMustImplement ();
-                       }
-               }
-               
-               public virtual WebHeaderCollection Headers { 
-                       get { throw GetMustImplement (); }
-                       set { throw GetMustImplement (); }
-               }
-               
-
-               public virtual string Method { 
-                       get { throw GetMustImplement (); }
-                       set { throw GetMustImplement (); }
-               }
-               
-               public virtual bool PreAuthenticate { 
-                       get { throw GetMustImplement (); }
-                       set { throw GetMustImplement (); }
-               }
-               
-               public virtual IWebProxy Proxy { 
-                       get { throw GetMustImplement (); }
-                       set { throw GetMustImplement (); }
-               }
-               
-               public virtual Uri RequestUri { 
-                       get { throw GetMustImplement (); }
-               }
-               
-               public virtual int Timeout { 
-                       get { throw GetMustImplement (); }
-                       set { throw GetMustImplement (); }
-               }
-               
-               public virtual bool UseDefaultCredentials
-               {
-                       get {
-                               throw GetMustImplement ();
-                       }
-                       set {
-                               throw GetMustImplement ();
-                       }
-               }
-
-               public TokenImpersonationLevel ImpersonationLevel { get; set; }
-
-//             volatile static IWebProxy proxy;
-               static readonly object lockobj = new object ();
-               
-               public static IWebProxy DefaultWebProxy {
-                       get {
-                               if (!isDefaultWebProxySet) {
-                                       lock (lockobj) {
-                                               if (defaultWebProxy == null)
-                                                       defaultWebProxy = GetDefaultWebProxy ();
-                                       }
-                               }
-                               return defaultWebProxy;
-                       }
-                       set {
-                               /* MS documentation states that a null value would cause an ArgumentNullException
-                                * but that's not the way it behaves:
-                                * https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=304724
-                                */
-                               defaultWebProxy = value;
-                               isDefaultWebProxySet = true;
-                       }
-               }
-
-               internal static IWebProxy InternalDefaultWebProxy {
-                       get {
-                               return DefaultWebProxy;
-                       }
-               }
-
-               
-               [MonoTODO("Needs to respect Module, Proxy.AutoDetect, and Proxy.ScriptLocation config settings")]
-               static IWebProxy GetDefaultWebProxy ()
-               {
-#if CONFIGURATION_DEP
-                       DefaultProxySection sec = ConfigurationManager.GetSection ("system.net/defaultProxy") as DefaultProxySection;
-                       WebProxy p;
-                       
-                       if (sec == null)
-                               return GetSystemWebProxy ();
-                       
-                       ProxyElement pe = sec.Proxy;
-                       
-                       if ((pe.UseSystemDefault != ProxyElement.UseSystemDefaultValues.False) && (pe.ProxyAddress == null)) {
-                               IWebProxy proxy = GetSystemWebProxy ();
-                               
-                               if (!(proxy is WebProxy))
-                                       return proxy;
-                               
-                               p = (WebProxy) proxy;
-                       } else
-                               p = new WebProxy ();
-                       
-                       if (pe.ProxyAddress != null)
-                               p.Address = pe.ProxyAddress;
-                       
-                       if (pe.BypassOnLocal != ProxyElement.BypassOnLocalValues.Unspecified)
-                               p.BypassProxyOnLocal = (pe.BypassOnLocal == ProxyElement.BypassOnLocalValues.True);
-                               
-                       foreach(BypassElement elem in sec.BypassList)
-                               p.BypassArrayList.Add(elem.Address);
-                       
-                       return p;
-#else
-                       return GetSystemWebProxy ();
-#endif
-               }
-
-               // Methods
-               
-               public virtual void Abort()
-               {
-                       throw GetMustImplement ();
-               }
-               
-               public virtual IAsyncResult BeginGetRequestStream (AsyncCallback callback, object state) 
-               {
-                       throw GetMustImplement ();
-               }
-               
-               public virtual IAsyncResult BeginGetResponse (AsyncCallback callback, object state)
-               {
-                       throw GetMustImplement ();
-               }
-
-               public static WebRequest Create (string requestUriString) 
-               {
-                       if (requestUriString == null)
-                               throw new ArgumentNullException ("requestUriString");
-                       return Create (new Uri (requestUriString));
-               }
-                               
-               public static WebRequest Create (Uri requestUri) 
-               {
-                       if (requestUri == null)
-                               throw new ArgumentNullException ("requestUri");
-                       return GetCreator (requestUri.AbsoluteUri).Create (requestUri);
-               }
-               
-               public static WebRequest CreateDefault (Uri requestUri)
-               {
-                       if (requestUri == null)
-                               throw new ArgumentNullException ("requestUri");
-                       return GetCreator (requestUri.Scheme).Create (requestUri);
-               }
-               static HttpWebRequest SharedCreateHttp (Uri uri)
-               {
-                       if (uri.Scheme != "http" && uri.Scheme != "https")
-                               throw new NotSupportedException ("The uri should start with http or https");
-
-                       return new HttpWebRequest (uri);
-               }
-
-               public static HttpWebRequest CreateHttp (string requestUriString)
-               {
-                       if (requestUriString == null)
-                               throw new ArgumentNullException ("requestUriString");
-                       return SharedCreateHttp (new Uri (requestUriString));
-               }
-                       
-               public static HttpWebRequest CreateHttp (Uri requestUri)
-               {
-                       if (requestUri == null)
-                               throw new ArgumentNullException ("requestUri");
-                       return SharedCreateHttp (requestUri);
-               }
-               public virtual Stream EndGetRequestStream (IAsyncResult asyncResult)
-               {
-                       throw GetMustImplement ();
-               }
-               
-               public virtual WebResponse EndGetResponse (IAsyncResult asyncResult)
-               {
-                       throw GetMustImplement ();
-               }
-               
-               public virtual Stream GetRequestStream()
-               {
-                       throw GetMustImplement ();
-               }
-               
-               public virtual WebResponse GetResponse()
-               {
-                       throw GetMustImplement ();
-               }
-               
-               // Takes an ArrayList of fileglob-formatted strings and returns an array of Regex-formatted strings
-               private static string[] CreateBypassList (ArrayList al)
-               {
-                       string[] result = al.ToArray (typeof (string)) as string[];
-                       for (int c = 0; c < result.Length; c++)
-                       {
-                               result [c] = "^" +
-                                       Regex.Escape (result [c]).Replace (@"\*", ".*").Replace (@"\?", ".") +
-                                       "$";
-                       }
-                       return result;
-               }
-
-               [MonoTODO("Look in other places for proxy config info")]
-               public static IWebProxy GetSystemWebProxy ()
-               {
-#if MONOTOUCH
-                       return CFNetwork.GetDefaultProxy ();
-#else
-#if MONODROID
-                       // Return the system web proxy.  This only works for ICS+.
-                       var androidProxy = AndroidPlatform.GetDefaultProxy ();
-                       if (androidProxy != null)
-                               return androidProxy;
-#endif
-#if !NET_2_1
-                       if (IsWindows ()) {
-                               int iProxyEnable = (int)Microsoft.Win32.Registry.GetValue ("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", "ProxyEnable", 0);
-
-                               if (iProxyEnable > 0) {
-                                       string strHttpProxy = "";                                       
-                                       bool bBypassOnLocal = false;
-                                       ArrayList al = new ArrayList ();
-                                       
-                                       string strProxyServer = (string)Microsoft.Win32.Registry.GetValue ("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", "ProxyServer", null);
-                                       string strProxyOverrride = (string)Microsoft.Win32.Registry.GetValue ("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", "ProxyOverride", null);
-                                       
-                                       if (strProxyServer.Contains ("=")) {
-                                               foreach (string strEntry in strProxyServer.Split (new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries))
-                                                       if (strEntry.StartsWith ("http=")) {
-                                                               strHttpProxy = strEntry.Substring (5);
-                                                               break;
-                                                       }
-                                       } else strHttpProxy = strProxyServer;
-                                       
-                                       if (strProxyOverrride != null) {                                                
-                                               string[] bypassList = strProxyOverrride.Split (new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
-                                       
-                                               foreach (string str in bypassList) {
-                                                       if (str != "<local>")
-                                                               al.Add (str);
-                                                       else
-                                                               bBypassOnLocal = true;
-                                               }
-                                       }
-                                       
-                                       return new WebProxy (strHttpProxy, bBypassOnLocal, CreateBypassList (al));
-                               }
-                       } else {
-#endif
-                               if (Platform.IsMacOS)
-                                       return CFNetwork.GetDefaultProxy ();
-                               
-                               string address = Environment.GetEnvironmentVariable ("http_proxy");
-
-                               if (address == null)
-                                       address = Environment.GetEnvironmentVariable ("HTTP_PROXY");
-                               
-                               if (address != null) {
-                                       try {
-                                               if (!address.StartsWith ("http://"))
-                                                       address = "http://" + address;
-
-                                               Uri uri = new Uri (address);
-                                               IPAddress ip;
-                                               
-                                               if (IPAddress.TryParse (uri.Host, out ip)) {
-                                                       if (IPAddress.Any.Equals (ip)) {
-                                                               UriBuilder builder = new UriBuilder (uri);
-                                                               builder.Host = "127.0.0.1";
-                                                               uri = builder.Uri;
-                                                       } else if (IPAddress.IPv6Any.Equals (ip)) {
-                                                               UriBuilder builder = new UriBuilder (uri);
-                                                               builder.Host = "[::1]";
-                                                               uri = builder.Uri;
-                                                       }
-                                               }
-                                               
-                                               bool bBypassOnLocal = false;                                            
-                                               ArrayList al = new ArrayList ();
-                                               string bypass = Environment.GetEnvironmentVariable ("no_proxy");
-                                               
-                                               if (bypass == null)
-                                                       bypass = Environment.GetEnvironmentVariable ("NO_PROXY");
-                                               
-                                               if (bypass != null) {
-                                                       string[] bypassList = bypass.Split (new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
-                                               
-                                                       foreach (string str in bypassList) {
-                                                               if (str != "*.local")
-                                                                       al.Add (str);
-                                                               else
-                                                                       bBypassOnLocal = true;
-                                                       }
-                                               }
-                                               
-                                               return new WebProxy (uri, bBypassOnLocal, CreateBypassList (al));
-                                       } catch (UriFormatException) {
-                                       }
-                               }
-#if !NET_2_1
-                       }
-#endif
-                       
-                       return new WebProxy ();
-#endif // MONOTOUCH
-               }
-
-               void ISerializable.GetObjectData (SerializationInfo serializationInfo, StreamingContext streamingContext)
-               {
-                       GetObjectData(serializationInfo, streamingContext);
-               }
-
-               protected virtual void GetObjectData (SerializationInfo serializationInfo, StreamingContext streamingContext)
-               {
-               }
-
-               public static bool RegisterPrefix (string prefix, IWebRequestCreate creator)
-               {
-                       if (prefix == null)
-                               throw new ArgumentNullException ("prefix");
-                       if (creator == null)
-                               throw new ArgumentNullException ("creator");
-                       
-                       lock (prefixes.SyncRoot) {
-                               string lowerCasePrefix = prefix.ToLower (CultureInfo.InvariantCulture);
-                               if (prefixes.Contains (lowerCasePrefix))
-                                       return false;
-                               prefixes.Add (lowerCasePrefix, creator);
-                       }
-                       return true;
-               }
-               
-               private static IWebRequestCreate GetCreator (string prefix)
-               {
-                       int longestPrefix = -1;
-                       IWebRequestCreate creator = null;
-
-                       prefix = prefix.ToLower (CultureInfo.InvariantCulture);
-
-                       IDictionaryEnumerator e = prefixes.GetEnumerator ();
-                       while (e.MoveNext ()) {
-                               string key = e.Key as string;
-
-                               if (key.Length <= longestPrefix) 
-                                       continue;
-                               
-                               if (!prefix.StartsWith (key))
-                                       continue;
-                                       
-                               longestPrefix = key.Length;
-                               creator = (IWebRequestCreate) e.Value;
-                       }
-                       
-                       if (creator == null) 
-                               throw new NotSupportedException (prefix);
-                               
-                       return creator;
-               }
-               
-               internal static bool IsWindows ()
-               {
-                       return (int) Environment.OSVersion.Platform < 4;
-               }
-
-               internal static void ClearPrefixes ()
-               {
-                       prefixes.Clear ();
-               }
-
-               internal static void RemovePrefix (string prefix)
-               {
-                       prefixes.Remove (prefix);
-               }
-
-               internal static void AddPrefix (string prefix, string typeName)
-               {
-                       Type type = Type.GetType (typeName);
-                       if (type == null)
-                               throw new ConfigurationException (String.Format ("Type {0} not found", typeName));
-                       AddPrefix (prefix, type);
-               }
-
-               internal static void AddPrefix (string prefix, Type type)
-               {
-                       object o = Activator.CreateInstance (type, true);
-                       prefixes [prefix] = o;
-               }
-
-               public virtual Task<Stream> GetRequestStreamAsync ()
-               {
-                       return Task<Stream>.Factory.FromAsync (BeginGetRequestStream, EndGetRequestStream, null);
-               }
-
-               public virtual Task<WebResponse> GetResponseAsync ()
-               {
-                       return Task<WebResponse>.Factory.FromAsync (BeginGetResponse, EndGetResponse, null);
-               }
-       }
-}
index 2324fb9b52d788fa461dc816f5670e715711e8cc..7ed24991865d40d873f9eb43f1b3dfdd51770678 100644 (file)
@@ -39,12 +39,12 @@ namespace System.Threading {
        public sealed class Semaphore : WaitHandle {
 
                [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               private static extern IntPtr CreateSemaphore_internal (
+               internal static extern IntPtr CreateSemaphore_internal (
                        int initialCount, int maximumCount, string name,
                        out bool createdNew);
 
                [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               private static extern int ReleaseSemaphore_internal (
+               internal static extern int ReleaseSemaphore_internal (
                        IntPtr handle, int releaseCount, out bool fail);
 
                [MethodImplAttribute (MethodImplOptions.InternalCall)]
index fa119b795cd48f76548a6bff29983504be214fec..b6f12007fa88a2e0d318d4f9dc08cbcab0d093dc 100644 (file)
@@ -247,7 +247,6 @@ System.Net.Configuration/WebRequestModuleElementCollection.cs
 System.Net.Configuration/WebRequestModuleElement.cs
 System.Net.Configuration/WebRequestModuleHandler.cs
 System.Net.Configuration/WebRequestModulesSection.cs
-System.Net/CredentialCache.cs
 System.Net/DecompressionMethods.cs
 System.Net/DefaultCertificatePolicy.cs
 System.Net/DigestClient.cs
@@ -263,7 +262,6 @@ System.Net/FtpRequestCreator.cs
 System.Net/FtpWebRequest.cs
 System.Net/FtpStatus.cs
 System.Net/FtpWebResponse.cs
-System.Net/GlobalProxySelection.cs
 System.Net/HttpConnection.cs
 System.Net/HttpListenerBasicIdentity.cs
 System.Net/HttpListenerContext.cs
@@ -410,8 +408,6 @@ System.Net/WebConnection.cs
 System.Net/WebConnectionData.cs
 System.Net/WebConnectionGroup.cs
 System.Net/WebConnectionStream.cs
-System.Net/WebProxy.cs
-System.Net/WebRequest.cs
 System.Net.WebSockets/ClientWebSocket.cs
 System.Net.WebSockets/ClientWebSocketOptions.cs
 System.Net.WebSockets/HttpListenerWebSocketContext.cs
@@ -556,6 +552,7 @@ Mono.Net.Security/MonoTlsStream.cs
 Mono.Net.Security/NoReflectionHelper.cs
 Mono.Net.Security/SystemCertificateValidator.cs
 
+ReferenceSources/AutoWebProxyScriptEngine.cs
 ReferenceSources/AssertWrapper.cs
 ReferenceSources/BinaryCompatibility.cs
 ReferenceSources/ConfigurationManagerInternalFactory.cs
@@ -566,12 +563,12 @@ ReferenceSources/HttpApi.cs
 ReferenceSources/HttpSysSettings.cs
 ReferenceSources/Logging.cs
 ReferenceSources/NativeMethods.cs
+ReferenceSources/RequestCacheProtocol.cs
 ReferenceSources/SettingsSectionInternal.cs
 ReferenceSources/Socket.cs
 ReferenceSources/SR.cs
 ReferenceSources/SR2.cs
 ReferenceSources/SRCategoryAttribute.cs
-ReferenceSources/SystemNetworkCredential.cs
 ReferenceSources/Win32Exception.cs
 
 ReferenceSources/SSPIConfiguration.cs
@@ -967,6 +964,7 @@ ReferenceSources/_SslStream.cs
 
 ../referencesource/System/net/System/Net/_BufferOffsetSize.cs
 ../referencesource/System/net/System/Net/_Connection.cs
+../referencesource/System/net/System/Net/_emptywebproxy.cs
 ../referencesource/System/net/System/Net/_HeaderInfo.cs
 ../referencesource/System/net/System/Net/_HeaderInfoTable.cs
 ../referencesource/System/net/System/Net/_HTTPDateParse.cs
@@ -974,19 +972,27 @@ ReferenceSources/_SslStream.cs
 ../referencesource/System/net/System/Net/_NetRes.cs
 ../referencesource/System/net/System/Net/_LazyAsyncResult.cs
 ../referencesource/System/net/System/Net/_LoggingObject.cs
+../referencesource/System/net/System/Net/_PooledStream.cs
+../referencesource/System/net/System/Net/_ProxyChain.cs
 ../referencesource/System/net/System/Net/_ScatterGatherBuffers.cs
+../referencesource/System/net/System/Net/_Semaphore.cs
+../referencesource/System/net/System/Net/_TimerThread.cs
+../referencesource/System/net/System/Net/_WebProxyDataBuilder.cs
 ../referencesource/System/net/System/Net/AuthenticationScheme.cs
 ../referencesource/System/net/System/Net/AuthenticationSchemeSelector.cs
 ../referencesource/System/net/System/Net/Authorization.cs
+../referencesource/System/net/System/Net/CredentialCache.cs
 ../referencesource/System/net/System/Net/cookie.cs
 ../referencesource/System/net/System/Net/cookiecollection.cs
 ../referencesource/System/net/System/Net/cookiecontainer.cs
 ../referencesource/System/net/System/Net/cookieexception.cs
+../referencesource/System/net/System/Net/connectionpool.cs
 ../referencesource/System/net/System/Net/DnsEndPoint.cs
 ../referencesource/System/net/System/Net/EndPoint.cs
 ../referencesource/System/net/System/Net/FtpStatusCode.cs
 ../referencesource/System/net/System/Net/filewebrequest.cs
 ../referencesource/System/net/System/Net/filewebresponse.cs
+../referencesource/System/net/System/Net/GlobalProxySelection.cs
 ../referencesource/System/net/System/Net/HttpListenerException.cs
 ../referencesource/System/net/System/Net/HttpListenerRequestUriBuilder.cs
 ../referencesource/System/net/System/Net/HttpRequestHeader.cs
@@ -1002,6 +1008,7 @@ ReferenceSources/_SslStream.cs
 ../referencesource/System/net/System/Net/IPEndPoint.cs
 ../referencesource/System/net/System/Net/IPHostEntry.cs
 ../referencesource/System/net/System/Net/iwebproxy.cs
+../referencesource/System/net/System/Net/IWebProxyFinder.cs
 ../referencesource/System/net/System/Net/IWebRequestCreate.cs
 ../referencesource/System/net/System/Net/NetworkAccess.cs
 ../referencesource/System/net/System/Net/ProtocolViolationException.cs
@@ -1016,12 +1023,19 @@ ReferenceSources/_SslStream.cs
 ../referencesource/System/net/System/Net/WebExceptionStatus.cs
 ../referencesource/System/net/System/Net/WebHeaderCollection.cs
 ../referencesource/System/net/System/Net/WebPermission.cs
+../referencesource/System/net/System/Net/webproxy.cs
 ../referencesource/System/net/System/Net/WebRequestMethods.cs
+../referencesource/System/net/System/Net/WebRequest.cs
 ../referencesource/System/net/System/Net/WebResponse.cs
 ../referencesource/System/net/System/Net/WebUtility.cs
 ../referencesource/System/net/System/Net/WriteStreamClosedEventArgs.cs
 
+../referencesource/System/net/System/Net/Cache/RequestCache.cs
+../referencesource/System/net/System/Net/Cache/RequestCacheEntry.cs
 ../referencesource/System/net/System/Net/Cache/RequestCachePolicy.cs
+../referencesource/System/net/System/Net/Cache/RequestCacheManager.cs
+
+../referencesource/System/net/System/Net/Configuration/DefaultProxySection.cs
 
 ../referencesource/System/net/System/Net/Sockets/IPProtectionLevel.cs
 ../referencesource/System/net/System/Net/Sockets/NetworkStream.cs
index 91c2c168a1fff9bebc9716b855294bf857151d07..2b12d7019bffad7b8ebc05bd816b8e773a684871 100755 (executable)
@@ -4228,7 +4228,22 @@ namespace MonoTests.System.Net.Sockets
                [Test]
                public void SendAsyncFile ()
                {
-                       Socket serverSocket = StartSocketServer ();
+                       Socket serverSocket = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
+
+                       serverSocket.Bind (new IPEndPoint (IPAddress.Loopback, 0));
+                       serverSocket.Listen (1);
+
+                       var mReceived = new ManualResetEvent (false);
+
+                       serverSocket.BeginAccept (AsyncCall => {
+                               byte[] bytes = new byte [1024];
+
+                               Socket listener = (Socket)AsyncCall.AsyncState;
+                               Socket client = listener.EndAccept (AsyncCall);
+                               client.Receive (bytes, bytes.Length, 0);
+                               client.Close ();
+                               mReceived.Set ();
+                       }, serverSocket);
                        
                        Socket clientSocket = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                        clientSocket.Connect (serverSocket.LocalEndPoint);
@@ -4246,18 +4261,19 @@ namespace MonoTests.System.Net.Sockets
                                        sw.Write (buffer);
                                }
 
-                               var m = new ManualResetEvent (false);
+                               var mSent = new ManualResetEvent (false);
 
                                // Async Send File to server
                                clientSocket.BeginSendFile(temp, (ar) => {
                                        Socket client = (Socket) ar.AsyncState;
                                        client.EndSendFile (ar);
-                                       m.Set ();
+                                       mSent.Set ();
                                }, clientSocket);
 
-                               if (!m.WaitOne (1500))
+                               if (!mSent.WaitOne (1500))
+                                       throw new TimeoutException ();
+                               if (!mReceived.WaitOne (1500))
                                        throw new TimeoutException ();
-                               m.Reset ();
                        } finally {
                                if (File.Exists (temp))
                                        File.Delete (temp);
@@ -4317,30 +4333,6 @@ namespace MonoTests.System.Net.Sockets
                        }
                }
 
-               Socket StartSocketServer ()
-               {
-
-                       Socket listenSocket = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
-                       
-                       listenSocket.Bind (new IPEndPoint (IPAddress.Loopback, NetworkHelpers.FindFreePort ()));
-                       listenSocket.Listen (1);
-
-                       listenSocket.BeginAccept (new AsyncCallback (ReceiveCallback), listenSocket);
-                       
-                       return listenSocket;
-               }
-
-               public static void ReceiveCallback (IAsyncResult AsyncCall)
-               {
-                       byte[] bytes = new byte [1024];
-
-                       Socket listener = (Socket)AsyncCall.AsyncState;
-                       Socket client = listener.EndAccept (AsyncCall);
-                       client.Receive (bytes, bytes.Length, 0);
-                       client.Close ();
-               }
-
                [Test]
                public void UdpMulticasTimeToLive ()
                {
index d88c9864e23191eb010c44619bdc5eafabb78ef3..0257ff50fecd19026c2de0e1019aa883ddebb3b0 100644 (file)
@@ -123,11 +123,6 @@ namespace MonoTests.System.Net
                        Assert.AreEqual (1, p.BypassList.Length, "#4");
                }
 
-               [Test]
-               public void GetProxy ()
-               {
-               }
-
                [Test]
                public void IsByPassed ()
                {
index a2562fdb899feb639536aa2d0488b905279bae21..435360525a3a29d3e3fd9e3e37c10da92fb89220 100644 (file)
@@ -143,7 +143,6 @@ System.Net/BasicClient.cs
 System.Net/BindIPEndPoint.cs
 System.Net/ChunkStream.cs
 System.Net/ChunkedInputStream.cs
-System.Net/CredentialCache.cs
 System.Net/DecompressionMethods.cs
 System.Net/DefaultCertificatePolicy.cs
 System.Net/DigestClient.cs
@@ -157,7 +156,6 @@ System.Net/FtpRequestCreator.cs
 System.Net/FtpStatus.cs
 System.Net/FtpWebRequest.cs
 System.Net/FtpWebResponse.cs
-System.Net/GlobalProxySelection.cs
 System.Net/HttpConnection.cs
 System.Net/HttpListener.cs
 System.Net/HttpListenerBasicIdentity.cs
@@ -192,8 +190,6 @@ System.Net/WebConnection.cs
 System.Net/WebConnectionData.cs
 System.Net/WebConnectionGroup.cs
 System.Net/WebConnectionStream.cs
-System.Net/WebProxy.cs
-System.Net/WebRequest.cs
 System.Net.WebSockets/ClientWebSocket.cs
 System.Net.WebSockets/ClientWebSocketOptions.cs
 System.Net.WebSockets/HttpListenerWebSocketContext.cs
@@ -293,6 +289,7 @@ Mono.Net.Security/MonoTlsStream.cs
 Mono.Net.Security/NoReflectionHelper.cs
 Mono.Net.Security/SystemCertificateValidator.cs
 
+ReferenceSources/AutoWebProxyScriptEngine.cs
 ReferenceSources/AssertWrapper.cs
 ReferenceSources/CAPI.cs
 ReferenceSources/EnvironmentHelpers.cs
@@ -301,11 +298,11 @@ ReferenceSources/Internal.cs
 ReferenceSources/HttpSysSettings.cs
 ReferenceSources/Logging.cs
 ReferenceSources/NativeMethods.cs
+ReferenceSources/RequestCacheProtocol.cs
 ReferenceSources/SettingsSectionInternal.cs
 ReferenceSources/Socket.cs
 ReferenceSources/SR.cs
 ReferenceSources/SRCategoryAttribute.cs
-ReferenceSources/SystemNetworkCredential.cs
 ReferenceSources/Win32Exception.cs
 
 ../referencesource/System/regex/system/text/regularexpressions/Regex.cs
@@ -682,6 +679,7 @@ ReferenceSources/Win32Exception.cs
 
 ../referencesource/System/net/System/Net/_BufferOffsetSize.cs
 ../referencesource/System/net/System/Net/_Connection.cs
+../referencesource/System/net/System/Net/_emptywebproxy.cs
 ../referencesource/System/net/System/Net/_HeaderInfo.cs
 ../referencesource/System/net/System/Net/_HeaderInfoTable.cs
 ../referencesource/System/net/System/Net/_HTTPDateParse.cs
@@ -689,24 +687,32 @@ ReferenceSources/Win32Exception.cs
 ../referencesource/System/net/System/Net/_NetRes.cs
 ../referencesource/System/net/System/Net/_LazyAsyncResult.cs
 ../referencesource/System/net/System/Net/_LoggingObject.cs
+../referencesource/System/net/System/Net/_PooledStream.cs
+../referencesource/System/net/System/Net/_ProxyChain.cs
 ../referencesource/System/net/System/Net/_ScatterGatherBuffers.cs
+../referencesource/System/net/System/Net/_Semaphore.cs
+../referencesource/System/net/System/Net/_TimerThread.cs
+../referencesource/System/net/System/Net/_WebProxyDataBuilder.cs
 ../referencesource/System/net/System/Net/AuthenticationScheme.cs
 ../referencesource/System/net/System/Net/AuthenticationSchemeSelector.cs
 ../referencesource/System/net/System/Net/Authorization.cs
+../referencesource/System/net/System/Net/CredentialCache.cs
 ../referencesource/System/net/System/Net/cookie.cs
 ../referencesource/System/net/System/Net/cookiecollection.cs
 ../referencesource/System/net/System/Net/cookiecontainer.cs
 ../referencesource/System/net/System/Net/cookieexception.cs
+../referencesource/System/net/System/Net/connectionpool.cs
 ../referencesource/System/net/System/Net/DnsEndPoint.cs
 ../referencesource/System/net/System/Net/EndPoint.cs
 ../referencesource/System/net/System/Net/FtpStatusCode.cs
 ../referencesource/System/net/System/Net/filewebrequest.cs
 ../referencesource/System/net/System/Net/filewebresponse.cs
+../referencesource/System/net/System/Net/GlobalProxySelection.cs
 ../referencesource/System/net/System/Net/HttpListenerException.cs
+../referencesource/System/net/System/Net/HttpListenerRequestUriBuilder.cs
 ../referencesource/System/net/System/Net/HttpRequestHeader.cs
 ../referencesource/System/net/System/Net/HttpResponseHeader.cs
 ../referencesource/System/net/System/Net/HttpStatusCode.cs
-../referencesource/System/net/System/Net/HttpListenerRequestUriBuilder.cs
 ../referencesource/System/net/System/Net/HttpVersion.cs
 ../referencesource/System/net/System/Net/IAuthenticationModule.cs
 ../referencesource/System/net/System/Net/ICertificatePolicy.cs
@@ -717,6 +723,7 @@ ReferenceSources/Win32Exception.cs
 ../referencesource/System/net/System/Net/IPEndPoint.cs
 ../referencesource/System/net/System/Net/IPHostEntry.cs
 ../referencesource/System/net/System/Net/iwebproxy.cs
+../referencesource/System/net/System/Net/IWebProxyFinder.cs
 ../referencesource/System/net/System/Net/IWebRequestCreate.cs
 ../referencesource/System/net/System/Net/NetworkAccess.cs
 ../referencesource/System/net/System/Net/ProtocolViolationException.cs
@@ -731,12 +738,19 @@ ReferenceSources/Win32Exception.cs
 ../referencesource/System/net/System/Net/WebExceptionStatus.cs
 ../referencesource/System/net/System/Net/WebHeaderCollection.cs
 ../referencesource/System/net/System/Net/WebPermission.cs
+../referencesource/System/net/System/Net/webproxy.cs
 ../referencesource/System/net/System/Net/WebRequestMethods.cs
+../referencesource/System/net/System/Net/WebRequest.cs
 ../referencesource/System/net/System/Net/WebResponse.cs
 ../referencesource/System/net/System/Net/WebUtility.cs
 ../referencesource/System/net/System/Net/WriteStreamClosedEventArgs.cs
 
+../referencesource/System/net/System/Net/Cache/RequestCache.cs
+../referencesource/System/net/System/Net/Cache/RequestCacheEntry.cs
 ../referencesource/System/net/System/Net/Cache/RequestCachePolicy.cs
+../referencesource/System/net/System/Net/Cache/RequestCacheManager.cs
+
+../referencesource/System/net/System/Net/Configuration/DefaultProxySection.cs
 
 ../referencesource/System/net/System/Net/Sockets/IPProtectionLevel.cs
 ../referencesource/System/net/System/Net/Sockets/NetworkStream.cs
diff --git a/mcs/class/System/mobile_static_System_test.dll.exclude.sources b/mcs/class/System/mobile_static_System_test.dll.exclude.sources
new file mode 100644 (file)
index 0000000..8f84347
--- /dev/null
@@ -0,0 +1,190 @@
+Microsoft.CSharp/CodeGeneratorFromCompileUnitTest.cs
+Microsoft.CSharp/CodeGeneratorFromExpressionTest.cs
+Microsoft.CSharp/CodeGeneratorFromNamespaceTest.cs
+Microsoft.CSharp/CodeGeneratorFromStatementTest.cs
+Microsoft.CSharp/CodeGeneratorFromTypeTest.cs
+Microsoft.CSharp/CodeGeneratorIdentifierTest.cs
+Microsoft.CSharp/CodeGeneratorTestBase.cs
+Microsoft.CSharp/CodeGeneratorTypeOutputTest.cs
+Microsoft.CSharp/CSharpCodeProviderCas.cs
+Microsoft.CSharp/CSharpCodeProviderTest.cs
+Microsoft.VisualBasic/CodeGeneratorFromBinaryOperatorTest.cs
+Microsoft.VisualBasic/CodeGeneratorFromCompileUnitTest.cs
+Microsoft.VisualBasic/CodeGeneratorFromExpressionTest.cs
+Microsoft.VisualBasic/CodeGeneratorFromNamespaceTest.cs
+Microsoft.VisualBasic/CodeGeneratorFromStatementTest.cs
+Microsoft.VisualBasic/CodeGeneratorFromTypeTest.cs
+Microsoft.VisualBasic/CodeGeneratorTestBase.cs
+Microsoft.VisualBasic/VBCodeProviderCas.cs
+Microsoft.VisualBasic/VBCodeProviderTest.cs
+System.CodeDom/CodeArgumentReferenceExpressionCas.cs
+System.CodeDom/CodeArgumentReferenceExpressionTest.cs
+System.CodeDom/CodeArrayCreateExpressionCas.cs
+System.CodeDom/CodeArrayCreateExpressionTest.cs
+System.CodeDom/CodeArrayIndexerExpressionCas.cs
+System.CodeDom/CodeAssignStatementCas.cs
+System.CodeDom/CodeAttachEventStatementCas.cs
+System.CodeDom/CodeAttachEventStatementTest.cs
+System.CodeDom/CodeAttributeArgumentCas.cs
+System.CodeDom/CodeAttributeArgumentCollectionCas.cs
+System.CodeDom/CodeAttributeArgumentCollectionTest.cs
+System.CodeDom/CodeAttributeArgumentTest.cs
+System.CodeDom/CodeAttributeDeclarationCas.cs
+System.CodeDom/CodeAttributeDeclarationCollectionCas.cs
+System.CodeDom/CodeAttributeDeclarationCollectionTest.cs
+System.CodeDom/CodeAttributeDeclarationTest.cs
+System.CodeDom/CodeBaseReferenceExpressionCas.cs
+System.CodeDom/CodeBinaryOperatorExpressionCas.cs
+System.CodeDom/CodeCastExpressionCas.cs
+System.CodeDom/CodeCastExpressionTest.cs
+System.CodeDom/CodeCatchClauseCas.cs
+System.CodeDom/CodeCatchClauseCollectionCas.cs
+System.CodeDom/CodeCatchClauseCollectionTest.cs
+System.CodeDom/CodeCatchClauseTest.cs
+System.CodeDom/CodeChecksumPragmaCas.cs
+System.CodeDom/CodeChecksumPragmaTest.cs
+System.CodeDom/CodeCommentStatementCas.cs
+System.CodeDom/CodeCommentStatementCollectionCas.cs
+System.CodeDom/CodeCommentStatementCollectionTest.cs
+System.CodeDom/CodeCompileUnitCas.cs
+System.CodeDom/CodeConditionStatementCas.cs
+System.CodeDom/CodeConstructorCas.cs
+System.CodeDom/CodeConstructorTest.cs
+System.CodeDom/CodeDefaultValueExpressionCas.cs
+System.CodeDom/CodeDefaultValueExpressionTest.cs
+System.CodeDom/CodeDelegateCreateExpressionCas.cs
+System.CodeDom/CodeDelegateCreateExpressionTest.cs
+System.CodeDom/CodeDelegateInvokeExpressionCas.cs
+System.CodeDom/CodeDirectionExpressionCas.cs
+System.CodeDom/CodeDirectiveCas.cs
+System.CodeDom/CodeDirectiveCollectionCas.cs
+System.CodeDom/CodeDirectiveCollectionTest.cs
+System.CodeDom/CodeEntryPointMethodCas.cs
+System.CodeDom/CodeEventReferenceExpressionCas.cs
+System.CodeDom/CodeEventReferenceExpressionTest.cs
+System.CodeDom/CodeExpressionCas.cs
+System.CodeDom/CodeExpressionCollectionCas.cs
+System.CodeDom/CodeExpressionCollectionTest.cs
+System.CodeDom/CodeExpressionStatementCas.cs
+System.CodeDom/CodeFieldReferenceExpressionCas.cs
+System.CodeDom/CodeGotoStatementCas.cs
+System.CodeDom/CodeGotoStatementTest.cs
+System.CodeDom/CodeIndexerExpressionCas.cs
+System.CodeDom/CodeIterationStatementCas.cs
+System.CodeDom/CodeLabeledStatementTest.cs
+System.CodeDom/CodeLinePragmaCas.cs
+System.CodeDom/CodeLinePragmaTest.cs
+System.CodeDom/CodeMemberEventCas.cs
+System.CodeDom/CodeMemberFieldCas.cs
+System.CodeDom/CodeMemberFieldTest.cs
+System.CodeDom/CodeMemberMethodCas.cs
+System.CodeDom/CodeMemberMethodTest.cs
+System.CodeDom/CodeMemberPropertyCas.cs
+System.CodeDom/CodeMemberPropertyTest.cs
+System.CodeDom/CodeMethodInvokeExpressionCas.cs
+System.CodeDom/CodeMethodInvokeExpressionTest.cs
+System.CodeDom/CodeMethodReferenceExpressionCas.cs
+System.CodeDom/CodeMethodReferenceExpressionTest.cs
+System.CodeDom/CodeMethodReturnStatementCas.cs
+System.CodeDom/CodeNamespaceCas.cs
+System.CodeDom/CodeNamespaceCollectionCas.cs
+System.CodeDom/CodeNamespaceCollectionTest.cs
+System.CodeDom/CodeNamespaceImportCas.cs
+System.CodeDom/CodeNamespaceImportCollectionCas.cs
+System.CodeDom/CodeNamespaceImportCollectionTest.cs
+System.CodeDom/CodeNamespaceImportTest.cs
+System.CodeDom/CodeNamespaceTest.cs
+System.CodeDom/CodeObjectCas.cs
+System.CodeDom/CodeObjectCreateExpressionCas.cs
+System.CodeDom/CodeObjectCreateExpressionTest.cs
+System.CodeDom/CodeParameterDeclarationExpressionCas.cs
+System.CodeDom/CodeParameterDeclarationExpressionCollectionCas.cs
+System.CodeDom/CodeParameterDeclarationExpressionCollectionTest.cs
+System.CodeDom/CodeParameterDeclarationExpressionTest.cs
+System.CodeDom/CodePrimitiveExpressionCas.cs
+System.CodeDom/CodePropertyReferenceExpressionCas.cs
+System.CodeDom/CodePropertyReferenceExpressionTest.cs
+System.CodeDom/CodePropertySetValueReferenceExpressionCas.cs
+System.CodeDom/CodeRegionDirectiveCas.cs
+System.CodeDom/CodeRegionDirectiveTest.cs
+System.CodeDom/CodeRemoveEventStatementCas.cs
+System.CodeDom/CodeRemoveEventStatementTest.cs
+System.CodeDom/CodeSnippetCompileUnitCas.cs
+System.CodeDom/CodeSnippetCompileUnitTest.cs
+System.CodeDom/CodeSnippetExpressionCas.cs
+System.CodeDom/CodeSnippetExpressionTest.cs
+System.CodeDom/CodeSnippetStatementCas.cs
+System.CodeDom/CodeSnippetStatementTest.cs
+System.CodeDom/CodeSnippetTypeMemberCas.cs
+System.CodeDom/CodeSnippetTypeMemberTest.cs
+System.CodeDom/CodeStatementCas.cs
+System.CodeDom/CodeStatementCollectionCas.cs
+System.CodeDom/CodeStatementCollectionTest.cs
+System.CodeDom/CodeThisReferenceExpressionCas.cs
+System.CodeDom/CodeThrowExceptionStatementCas.cs
+System.CodeDom/CodeTryCatchFinallyStatementCas.cs
+System.CodeDom/CodeTypeConstructorCas.cs
+System.CodeDom/CodeTypeConstructorTest.cs
+System.CodeDom/CodeTypeDeclarationCas.cs
+System.CodeDom/CodeTypeDeclarationCollectionCas.cs
+System.CodeDom/CodeTypeDeclarationCollectionTest.cs
+System.CodeDom/CodeTypeDelegateCas.cs
+System.CodeDom/CodeTypeDelegateTest.cs
+System.CodeDom/CodeTypeMemberCas.cs
+System.CodeDom/CodeTypeMemberCollectionCas.cs
+System.CodeDom/CodeTypeMemberCollectionTest.cs
+System.CodeDom/CodeTypeOfExpressionCas.cs
+System.CodeDom/CodeTypeOfExpressionTest.cs
+System.CodeDom/CodeTypeParameterCas.cs
+System.CodeDom/CodeTypeParameterCollectionTest.cs
+System.CodeDom/CodeTypeParameterTest.cs
+System.CodeDom/CodeTypeReferenceCas.cs
+System.CodeDom/CodeTypeReferenceCollectionCas.cs
+System.CodeDom/CodeTypeReferenceCollectionTest.cs
+System.CodeDom/CodeTypeReferenceExpressionCas.cs
+System.CodeDom/CodeTypeReferenceExpressionTest.cs
+System.CodeDom/CodeTypeReferenceTest.cs
+System.CodeDom/CodeVariableDeclarationStatementCas.cs
+System.CodeDom/CodeVariableDeclarationStatementTest.cs
+System.CodeDom/CodeVariableReferenceExpressionCas.cs
+System.CodeDom/CodeVariableReferenceExpressionTest.cs
+System.CodeDom.Compiler/CodeCompilerCas.cs
+System.CodeDom.Compiler/CodeDomProviderCas.cs
+System.CodeDom.Compiler/CodeGeneratorCas.cs
+System.CodeDom.Compiler/CodeGeneratorFromTypeTestBase.cs
+System.CodeDom.Compiler/CodeGeneratorGenerateFromCompileUnitTest.cs
+System.CodeDom.Compiler/CodeGeneratorOptionsCas.cs
+System.CodeDom.Compiler/CodeGeneratorOptionsTest.cs
+System.CodeDom.Compiler/CodeGeneratorTest.cs
+System.CodeDom.Compiler/CodeGeneratorTestBase.cs
+System.CodeDom.Compiler/CodeParserCas.cs
+System.CodeDom.Compiler/CompilerErrorCas.cs
+System.CodeDom.Compiler/CompilerErrorCollectionCas.cs
+System.CodeDom.Compiler/CompilerInfoCas.cs
+System.CodeDom.Compiler/CompilerParametersCas.cs
+System.CodeDom.Compiler/CompilerResultsCas.cs
+System.CodeDom.Compiler/ExecutorCas.cs
+System.CodeDom.Compiler/ExecutorTest.cs
+System.CodeDom.Compiler/GeneratedCodeAttributeCas.cs
+System.CodeDom.Compiler/GeneratedCodeAttributeTest.cs
+System.CodeDom.Compiler/IndentedTextWriterCas.cs
+System.CodeDom.Compiler/IndentedTextWriterTest.cs
+System.CodeDom.Compiler/TempFileCollectionCas.cs
+System.CodeDom.Compiler/TempFileCollectionTest.cs
+System.Configuration/ApplicationSettingsBaseTest.cs
+System.Configuration/ConfigurationExceptionTest.cs
+System.Configuration/ConfigXmlDocumentTest.cs
+System.Configuration/LocalFileSettingsProviderTest.cs
+System.Configuration/SettingElementTest.cs
+System.Configuration/SettingsBaseTest.cs
+System.Configuration/SettingsPropertyCollectionTest.cs
+System.Configuration/SettingsPropertyTest.cs
+System.Configuration/SettingsPropertyValueCollectionTest.cs
+System.Configuration/SettingsPropertyValueTest.cs
+System.Configuration.Provider
+System.Configuration.Provider/ProviderBaseTest.cs
+System.IO.Ports/SerialPortTest.cs
+System.Web/AspNetHostingPermissionAttributeCas.cs
+System.Web/AspNetHostingPermissionAttributeTest.cs
+System.Web/AspNetHostingPermissionCas.cs
+System.Web/AspNetHostingPermissionTest.cs
diff --git a/mcs/class/System/mobile_static_System_test.dll.excludes b/mcs/class/System/mobile_static_System_test.dll.excludes
deleted file mode 100644 (file)
index 8f84347..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-Microsoft.CSharp/CodeGeneratorFromCompileUnitTest.cs
-Microsoft.CSharp/CodeGeneratorFromExpressionTest.cs
-Microsoft.CSharp/CodeGeneratorFromNamespaceTest.cs
-Microsoft.CSharp/CodeGeneratorFromStatementTest.cs
-Microsoft.CSharp/CodeGeneratorFromTypeTest.cs
-Microsoft.CSharp/CodeGeneratorIdentifierTest.cs
-Microsoft.CSharp/CodeGeneratorTestBase.cs
-Microsoft.CSharp/CodeGeneratorTypeOutputTest.cs
-Microsoft.CSharp/CSharpCodeProviderCas.cs
-Microsoft.CSharp/CSharpCodeProviderTest.cs
-Microsoft.VisualBasic/CodeGeneratorFromBinaryOperatorTest.cs
-Microsoft.VisualBasic/CodeGeneratorFromCompileUnitTest.cs
-Microsoft.VisualBasic/CodeGeneratorFromExpressionTest.cs
-Microsoft.VisualBasic/CodeGeneratorFromNamespaceTest.cs
-Microsoft.VisualBasic/CodeGeneratorFromStatementTest.cs
-Microsoft.VisualBasic/CodeGeneratorFromTypeTest.cs
-Microsoft.VisualBasic/CodeGeneratorTestBase.cs
-Microsoft.VisualBasic/VBCodeProviderCas.cs
-Microsoft.VisualBasic/VBCodeProviderTest.cs
-System.CodeDom/CodeArgumentReferenceExpressionCas.cs
-System.CodeDom/CodeArgumentReferenceExpressionTest.cs
-System.CodeDom/CodeArrayCreateExpressionCas.cs
-System.CodeDom/CodeArrayCreateExpressionTest.cs
-System.CodeDom/CodeArrayIndexerExpressionCas.cs
-System.CodeDom/CodeAssignStatementCas.cs
-System.CodeDom/CodeAttachEventStatementCas.cs
-System.CodeDom/CodeAttachEventStatementTest.cs
-System.CodeDom/CodeAttributeArgumentCas.cs
-System.CodeDom/CodeAttributeArgumentCollectionCas.cs
-System.CodeDom/CodeAttributeArgumentCollectionTest.cs
-System.CodeDom/CodeAttributeArgumentTest.cs
-System.CodeDom/CodeAttributeDeclarationCas.cs
-System.CodeDom/CodeAttributeDeclarationCollectionCas.cs
-System.CodeDom/CodeAttributeDeclarationCollectionTest.cs
-System.CodeDom/CodeAttributeDeclarationTest.cs
-System.CodeDom/CodeBaseReferenceExpressionCas.cs
-System.CodeDom/CodeBinaryOperatorExpressionCas.cs
-System.CodeDom/CodeCastExpressionCas.cs
-System.CodeDom/CodeCastExpressionTest.cs
-System.CodeDom/CodeCatchClauseCas.cs
-System.CodeDom/CodeCatchClauseCollectionCas.cs
-System.CodeDom/CodeCatchClauseCollectionTest.cs
-System.CodeDom/CodeCatchClauseTest.cs
-System.CodeDom/CodeChecksumPragmaCas.cs
-System.CodeDom/CodeChecksumPragmaTest.cs
-System.CodeDom/CodeCommentStatementCas.cs
-System.CodeDom/CodeCommentStatementCollectionCas.cs
-System.CodeDom/CodeCommentStatementCollectionTest.cs
-System.CodeDom/CodeCompileUnitCas.cs
-System.CodeDom/CodeConditionStatementCas.cs
-System.CodeDom/CodeConstructorCas.cs
-System.CodeDom/CodeConstructorTest.cs
-System.CodeDom/CodeDefaultValueExpressionCas.cs
-System.CodeDom/CodeDefaultValueExpressionTest.cs
-System.CodeDom/CodeDelegateCreateExpressionCas.cs
-System.CodeDom/CodeDelegateCreateExpressionTest.cs
-System.CodeDom/CodeDelegateInvokeExpressionCas.cs
-System.CodeDom/CodeDirectionExpressionCas.cs
-System.CodeDom/CodeDirectiveCas.cs
-System.CodeDom/CodeDirectiveCollectionCas.cs
-System.CodeDom/CodeDirectiveCollectionTest.cs
-System.CodeDom/CodeEntryPointMethodCas.cs
-System.CodeDom/CodeEventReferenceExpressionCas.cs
-System.CodeDom/CodeEventReferenceExpressionTest.cs
-System.CodeDom/CodeExpressionCas.cs
-System.CodeDom/CodeExpressionCollectionCas.cs
-System.CodeDom/CodeExpressionCollectionTest.cs
-System.CodeDom/CodeExpressionStatementCas.cs
-System.CodeDom/CodeFieldReferenceExpressionCas.cs
-System.CodeDom/CodeGotoStatementCas.cs
-System.CodeDom/CodeGotoStatementTest.cs
-System.CodeDom/CodeIndexerExpressionCas.cs
-System.CodeDom/CodeIterationStatementCas.cs
-System.CodeDom/CodeLabeledStatementTest.cs
-System.CodeDom/CodeLinePragmaCas.cs
-System.CodeDom/CodeLinePragmaTest.cs
-System.CodeDom/CodeMemberEventCas.cs
-System.CodeDom/CodeMemberFieldCas.cs
-System.CodeDom/CodeMemberFieldTest.cs
-System.CodeDom/CodeMemberMethodCas.cs
-System.CodeDom/CodeMemberMethodTest.cs
-System.CodeDom/CodeMemberPropertyCas.cs
-System.CodeDom/CodeMemberPropertyTest.cs
-System.CodeDom/CodeMethodInvokeExpressionCas.cs
-System.CodeDom/CodeMethodInvokeExpressionTest.cs
-System.CodeDom/CodeMethodReferenceExpressionCas.cs
-System.CodeDom/CodeMethodReferenceExpressionTest.cs
-System.CodeDom/CodeMethodReturnStatementCas.cs
-System.CodeDom/CodeNamespaceCas.cs
-System.CodeDom/CodeNamespaceCollectionCas.cs
-System.CodeDom/CodeNamespaceCollectionTest.cs
-System.CodeDom/CodeNamespaceImportCas.cs
-System.CodeDom/CodeNamespaceImportCollectionCas.cs
-System.CodeDom/CodeNamespaceImportCollectionTest.cs
-System.CodeDom/CodeNamespaceImportTest.cs
-System.CodeDom/CodeNamespaceTest.cs
-System.CodeDom/CodeObjectCas.cs
-System.CodeDom/CodeObjectCreateExpressionCas.cs
-System.CodeDom/CodeObjectCreateExpressionTest.cs
-System.CodeDom/CodeParameterDeclarationExpressionCas.cs
-System.CodeDom/CodeParameterDeclarationExpressionCollectionCas.cs
-System.CodeDom/CodeParameterDeclarationExpressionCollectionTest.cs
-System.CodeDom/CodeParameterDeclarationExpressionTest.cs
-System.CodeDom/CodePrimitiveExpressionCas.cs
-System.CodeDom/CodePropertyReferenceExpressionCas.cs
-System.CodeDom/CodePropertyReferenceExpressionTest.cs
-System.CodeDom/CodePropertySetValueReferenceExpressionCas.cs
-System.CodeDom/CodeRegionDirectiveCas.cs
-System.CodeDom/CodeRegionDirectiveTest.cs
-System.CodeDom/CodeRemoveEventStatementCas.cs
-System.CodeDom/CodeRemoveEventStatementTest.cs
-System.CodeDom/CodeSnippetCompileUnitCas.cs
-System.CodeDom/CodeSnippetCompileUnitTest.cs
-System.CodeDom/CodeSnippetExpressionCas.cs
-System.CodeDom/CodeSnippetExpressionTest.cs
-System.CodeDom/CodeSnippetStatementCas.cs
-System.CodeDom/CodeSnippetStatementTest.cs
-System.CodeDom/CodeSnippetTypeMemberCas.cs
-System.CodeDom/CodeSnippetTypeMemberTest.cs
-System.CodeDom/CodeStatementCas.cs
-System.CodeDom/CodeStatementCollectionCas.cs
-System.CodeDom/CodeStatementCollectionTest.cs
-System.CodeDom/CodeThisReferenceExpressionCas.cs
-System.CodeDom/CodeThrowExceptionStatementCas.cs
-System.CodeDom/CodeTryCatchFinallyStatementCas.cs
-System.CodeDom/CodeTypeConstructorCas.cs
-System.CodeDom/CodeTypeConstructorTest.cs
-System.CodeDom/CodeTypeDeclarationCas.cs
-System.CodeDom/CodeTypeDeclarationCollectionCas.cs
-System.CodeDom/CodeTypeDeclarationCollectionTest.cs
-System.CodeDom/CodeTypeDelegateCas.cs
-System.CodeDom/CodeTypeDelegateTest.cs
-System.CodeDom/CodeTypeMemberCas.cs
-System.CodeDom/CodeTypeMemberCollectionCas.cs
-System.CodeDom/CodeTypeMemberCollectionTest.cs
-System.CodeDom/CodeTypeOfExpressionCas.cs
-System.CodeDom/CodeTypeOfExpressionTest.cs
-System.CodeDom/CodeTypeParameterCas.cs
-System.CodeDom/CodeTypeParameterCollectionTest.cs
-System.CodeDom/CodeTypeParameterTest.cs
-System.CodeDom/CodeTypeReferenceCas.cs
-System.CodeDom/CodeTypeReferenceCollectionCas.cs
-System.CodeDom/CodeTypeReferenceCollectionTest.cs
-System.CodeDom/CodeTypeReferenceExpressionCas.cs
-System.CodeDom/CodeTypeReferenceExpressionTest.cs
-System.CodeDom/CodeTypeReferenceTest.cs
-System.CodeDom/CodeVariableDeclarationStatementCas.cs
-System.CodeDom/CodeVariableDeclarationStatementTest.cs
-System.CodeDom/CodeVariableReferenceExpressionCas.cs
-System.CodeDom/CodeVariableReferenceExpressionTest.cs
-System.CodeDom.Compiler/CodeCompilerCas.cs
-System.CodeDom.Compiler/CodeDomProviderCas.cs
-System.CodeDom.Compiler/CodeGeneratorCas.cs
-System.CodeDom.Compiler/CodeGeneratorFromTypeTestBase.cs
-System.CodeDom.Compiler/CodeGeneratorGenerateFromCompileUnitTest.cs
-System.CodeDom.Compiler/CodeGeneratorOptionsCas.cs
-System.CodeDom.Compiler/CodeGeneratorOptionsTest.cs
-System.CodeDom.Compiler/CodeGeneratorTest.cs
-System.CodeDom.Compiler/CodeGeneratorTestBase.cs
-System.CodeDom.Compiler/CodeParserCas.cs
-System.CodeDom.Compiler/CompilerErrorCas.cs
-System.CodeDom.Compiler/CompilerErrorCollectionCas.cs
-System.CodeDom.Compiler/CompilerInfoCas.cs
-System.CodeDom.Compiler/CompilerParametersCas.cs
-System.CodeDom.Compiler/CompilerResultsCas.cs
-System.CodeDom.Compiler/ExecutorCas.cs
-System.CodeDom.Compiler/ExecutorTest.cs
-System.CodeDom.Compiler/GeneratedCodeAttributeCas.cs
-System.CodeDom.Compiler/GeneratedCodeAttributeTest.cs
-System.CodeDom.Compiler/IndentedTextWriterCas.cs
-System.CodeDom.Compiler/IndentedTextWriterTest.cs
-System.CodeDom.Compiler/TempFileCollectionCas.cs
-System.CodeDom.Compiler/TempFileCollectionTest.cs
-System.Configuration/ApplicationSettingsBaseTest.cs
-System.Configuration/ConfigurationExceptionTest.cs
-System.Configuration/ConfigXmlDocumentTest.cs
-System.Configuration/LocalFileSettingsProviderTest.cs
-System.Configuration/SettingElementTest.cs
-System.Configuration/SettingsBaseTest.cs
-System.Configuration/SettingsPropertyCollectionTest.cs
-System.Configuration/SettingsPropertyTest.cs
-System.Configuration/SettingsPropertyValueCollectionTest.cs
-System.Configuration/SettingsPropertyValueTest.cs
-System.Configuration.Provider
-System.Configuration.Provider/ProviderBaseTest.cs
-System.IO.Ports/SerialPortTest.cs
-System.Web/AspNetHostingPermissionAttributeCas.cs
-System.Web/AspNetHostingPermissionAttributeTest.cs
-System.Web/AspNetHostingPermissionCas.cs
-System.Web/AspNetHostingPermissionTest.cs
diff --git a/mcs/class/System/monodroid_System_test.dll.exclude.sources b/mcs/class/System/monodroid_System_test.dll.exclude.sources
new file mode 100644 (file)
index 0000000..1aea9da
--- /dev/null
@@ -0,0 +1,83 @@
+#include mobile_static_System_test.dll.exclude.sources
+#include monodroid_System_test.dll.new-exclude.sources
+Microsoft.Win32/IntranetZoneCredentialPolicyCas.cs
+Microsoft.Win32/IntranetZoneCredentialPolicyTest.cs
+Microsoft.Win32/PowerModeChangedEventArgsCas.cs
+Microsoft.Win32/SessionEndedEventArgsCas.cs
+Microsoft.Win32/SessionEndingEventArgsCas.cs
+Microsoft.Win32/SessionSwitchEventArgsCas.cs
+Microsoft.Win32/SessionSwitchEventArgsTest.cs
+Microsoft.Win32/SystemEventsCas.cs
+Microsoft.Win32/TimerElapsedEventArgsCas.cs
+Microsoft.Win32/UserPreferenceChangedEventArgsCas.cs
+Microsoft.Win32/UserPreferenceChangingEventArgsCas.cs
+System.Collections.Concurrent/CollectionStressTestHelper.cs
+System.Collections.Specialized/BitVector32Cas.cs
+System.Collections.Specialized/CollectionsUtilCas.cs
+System.Collections.Specialized/HybridDictionaryCas.cs
+System.Collections.Specialized/ListDictionaryCas.cs
+System.Collections.Specialized/NameObjectCollectionBaseCas.cs
+System.Collections.Specialized/NameValueCollectionCas.cs
+System.Collections.Specialized/OrderedDictionaryCas.cs
+System.Collections.Specialized/StringCollectionCas.cs
+System.Collections.Specialized/StringDictionaryCas.cs
+System.ComponentModel.Design.Serialization/InstanceDescriptorCas.cs
+System/FileStyleUriParserCas.cs
+System/FtpStyleUriParserCas.cs
+System/GenericUriParserCas.cs
+System/GopherStyleUriParserCas.cs
+System/HttpStyleUriParserCas.cs
+System.IO.Compression/DeflateStreamCas.cs
+System.IO.Compression/GZipStreamCas.cs
+System/LdapStyleUriParserCas.cs
+System.Net/DnsCas.cs
+System.Net/FileWebRequestCas.cs
+System.Net/HttpListener2Test.cs
+System.Net/HttpListenerRequestTest.cs
+System.Net/HttpWebRequestCas.cs
+System/NetPipeStyleUriParserCas.cs
+System.Net.Sockets/NetworkStreamCas.cs
+System.Net.Sockets/SocketCas.cs
+System.Net.Sockets/TcpClientCas.cs
+System/NetTcpStyleUriParserCas.cs
+System/NewsStyleUriParserCas.cs
+System.Security.Cryptography.X509Certificates/PublicKeyCas.cs
+System.Security.Cryptography.X509Certificates/X500DistinguishedNameCas.cs
+System.Security.Cryptography.X509Certificates/X509BasicConstraintsExtensionCas.cs
+System.Security.Cryptography.X509Certificates/X509CertificateCollectionCas.cs
+System.Security.Cryptography.X509Certificates/X509ChainCas.cs
+System.Security.Cryptography.X509Certificates/X509ChainPolicyCas.cs
+System.Security.Cryptography.X509Certificates/X509EnhancedKeyUsageExtensionCas.cs
+System.Security.Cryptography.X509Certificates/X509ExtensionCas.cs
+System.Security.Cryptography.X509Certificates/X509KeyUsageExtensionCas.cs
+System.Security.Cryptography.X509Certificates/X509StoreCas.cs
+System.Security.Cryptography.X509Certificates/X509SubjectKeyIdentifierExtensionCas.cs
+System.Security.Permissions/ResourcePermissionBaseCas.cs
+System.Security.Permissions/ResourcePermissionBaseEntryCas.cs
+System.Security.Permissions/ResourcePermissionBaseEntryTest.cs
+System.Security.Permissions/ResourcePermissionBaseTest.cs
+System.Security.Permissions/StorePermissionAttributeCas.cs
+System.Security.Permissions/StorePermissionAttributeTest.cs
+System.Security.Permissions/StorePermissionCas.cs
+System.Security.Permissions/StorePermissionTest.cs
+System.Text.RegularExpressions/CaptureCas.cs
+System.Text.RegularExpressions/CaptureCollectionCas.cs
+System.Text.RegularExpressions/GroupCas.cs
+System.Text.RegularExpressions/GroupCollectionCas.cs
+System.Text.RegularExpressions/MatchCas.cs
+System.Text.RegularExpressions/MatchCollectionCas.cs
+System.Text.RegularExpressions/RegexCas.cs
+System.Text.RegularExpressions/RegexCompilationInfoCas.cs
+System.Text.RegularExpressions/RegexRunnerCas.cs
+System.Text.RegularExpressions/RegexRunnerFactoryCas.cs
+System.Threading/SemaphoreCas.cs
+System.Threading/SemaphoreFullExceptionCas.cs
+System.Threading/ThreadExceptionEventArgsCas.cs
+System.Timers/ElapsedEventArgsCas.cs
+System.Timers/TimerCas.cs
+System.Timers/TimersDescriptionAttributeCas.cs
+System/UriBuilderCas.cs
+System/UriCas.cs
+System/UriFormatExceptionCas.cs
+System/UriParserCas.cs
+System/UriTypeConverterCas.cs
diff --git a/mcs/class/System/monodroid_System_test.dll.new-exclude.sources b/mcs/class/System/monodroid_System_test.dll.new-exclude.sources
new file mode 100644 (file)
index 0000000..5e78519
--- /dev/null
@@ -0,0 +1,2 @@
+System.Net/HttpWebRequestTest.cs
+System.Net.Sockets/SocketAcceptAsyncTest.cs
diff --git a/mcs/class/System/monodroid_System_test.dll.sources b/mcs/class/System/monodroid_System_test.dll.sources
new file mode 100644 (file)
index 0000000..3944a95
--- /dev/null
@@ -0,0 +1 @@
+#include System_test.dll.sources
index 1be22471e607fc0a148c3ec3b00b16387a7a44d5..cff36539f3bee4d78e7a34495ad889df5509b2bd 100644 (file)
@@ -69,9 +69,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index b975e41343291172d96ee901727e81b0c21512d3..ed37cbc38ad5a2b1f4ca4ae9b79219d53b750ec1 100644 (file)
@@ -68,9 +68,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 808aa468d38c0c57dd66a8e8ed838363444ed153..9a1aa2ea4fb7006c4dae06c4b1b1a4bea1a2d3b6 100644 (file)
@@ -432,7 +432,11 @@ namespace MonoTests.System.IO.Packaging {
             using (var archive = new ZipArchive(stream))\r
             {                \r
                 foreach (var entry in archive.Entries)\r
-                    Assert.AreEqual (entry.LastWriteTime.Year, DateTime.Now.Year);\r
+                {\r
+                    Assert.AreEqual (DateTime.Now.Year, entry.LastWriteTime.Year);\r
+                    Assert.AreEqual (DateTime.Now.Month, entry.LastWriteTime.Month);\r
+                    Assert.AreEqual (DateTime.Now.Day, entry.LastWriteTime.Day);\r
+                }\r
             }\r
         }           \r
     }\r
index 5f4a244dce868f8f638ca22580f9693720c23b70..5ac7164723c0f5473c203026edc0d7e2748e3e89 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 2736df9410d31eafd67219677f04fbe3f186166c..e2c3abb66ca539a39524f6c8f9406f9b83755020 100644 (file)
@@ -25,13 +25,13 @@ namespace zipsharp
                        minute = (uint) time.Minute;
                        hour = (uint) time.Hour;
                        day = (uint) time.Day;
-                       month = (uint) time.Month;
+                       month = (uint) time.Month - 1;
                        year = (uint) time.Year;
                }
 
                public DateTime Date
                {
-                       get { return new DateTime ((int) year, (int) month, (int) day, (int) hour, (int) minute, (int) second); }
+                       get { return new DateTime ((int) year, (int) month + 1, (int) day, (int) hour, (int) minute, (int) second); }
                }
        }
 }
index bedcf1af0c14a5bb94af6c4dc4bfc29dc8fc19a8..f577efcd5ca871464b7ed8ca65b028a35086fd98 100644 (file)
@@ -41,14 +41,78 @@ using System.Runtime.Serialization;
 
 namespace System
 {
+       // Contains information about the type which is expensive to compute
+       [StructLayout (LayoutKind.Sequential)]
+       internal class MonoTypeInfo {
+               // this is the displayed form: special characters
+               // ,+*&*[]\ in the identifier portions of the names
+               // have been escaped with a leading backslash (\)
+               public string full_name;
+               public MonoCMethod default_ctor;
+       }
+
+       [StructLayout (LayoutKind.Sequential)]
        partial class RuntimeType
        {
+               [NonSerialized]
+               MonoTypeInfo type_info;
+
                internal Object GenericCache;
 
-               internal virtual MonoCMethod GetDefaultConstructor ()
+               internal RuntimeType (Object obj)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               internal MonoCMethod GetDefaultConstructor ()
+               {
+                       MonoCMethod ctor = null;
+
+                       if (type_info == null)
+                               type_info = new MonoTypeInfo ();
+                       else
+                               ctor = type_info.default_ctor;
+
+                       if (ctor == null) {
+                               var ctors = GetConstructors (BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.DeclaredOnly);
+
+                               for (int i = 0; i < ctors.Length; ++i) {
+                                       if (ctors [i].GetParametersCount () == 0) {
+                                               type_info.default_ctor = ctor = (MonoCMethod) ctors [i];
+                                               break;
+                                       }
+                               }
+                       }
+
+                       return ctor;
+               }
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)]
+               extern MethodInfo GetCorrespondingInflatedMethod (MethodInfo generic);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)]
+               extern ConstructorInfo GetCorrespondingInflatedConstructor (ConstructorInfo generic);
+
+               internal override MethodInfo GetMethod (MethodInfo fromNoninstanciated)
+                {
+                       if (fromNoninstanciated == null)
+                               throw new ArgumentNullException ("fromNoninstanciated");
+                        return GetCorrespondingInflatedMethod (fromNoninstanciated);
+                }
+
+               internal override ConstructorInfo GetConstructor (ConstructorInfo fromNoninstanciated)
                {
-                       // TODO: Requires MonoType
-                       throw new NotSupportedException ();
+                       if (fromNoninstanciated == null)
+                               throw new ArgumentNullException ("fromNoninstanciated");
+                        return GetCorrespondingInflatedConstructor (fromNoninstanciated);
+               }
+
+               internal override FieldInfo GetField (FieldInfo fromNoninstanciated)
+               {
+                       /* create sensible flags from given FieldInfo */
+                       BindingFlags flags = fromNoninstanciated.IsStatic ? BindingFlags.Static : BindingFlags.Instance;
+                       flags |= fromNoninstanciated.IsPublic ? BindingFlags.Public : BindingFlags.NonPublic;
+                       return GetField (fromNoninstanciated.Name, flags);
                }
 
                string GetDefaultMemberName ()
@@ -586,12 +650,6 @@ namespace System
                        get;
                }
 
-               public override string FullName {
-                       get {
-                               throw new NotImplementedException ();
-                       }
-               }
-
                public extern override string Name {
                        [MethodImplAttribute(MethodImplOptions.InternalCall)]
                        get;
@@ -624,5 +682,32 @@ namespace System
                        get { return get_core_clr_security_level () == 1; }
                }
 #endif
+
+               public override int GetHashCode()
+               {
+                       Type t = UnderlyingSystemType;
+                       if (t != null && t != this)
+                               return t.GetHashCode ();
+                       return (int)_impl.Value;
+               }
+
+               public override string FullName {
+                       get {
+                               string fullName;
+                               // This doesn't need locking
+                               if (type_info == null)
+                                       type_info = new MonoTypeInfo ();
+                               if ((fullName = type_info.full_name) == null)
+                                       fullName = type_info.full_name = getFullName (true, false);
+
+                               return fullName;
+                       }
+               }
+
+               internal override bool IsUserType {
+                       get {
+                               return false;
+                       }
+               }
        }
 }
index 34051bd8368e1e1cebe60a5e72d0aa6ad65a4a76..921cf8b2dd67f51cb7c69d80259589791a65f3d9 100644 (file)
@@ -128,9 +128,11 @@ namespace System.Reflection {
 
                 if (!suppressSecurityChecks)
                 {
+#if !DISABLE_CAS_USE
 #pragma warning disable 618
                     new SecurityPermission(SecurityPermissionFlag.ControlEvidence).Demand();
 #pragma warning restore 618
+#endif
                 }
             }
 
index 04c0c5670863215cc7f35d8bec6d2db80fca9b72..c93233dfffb57af19d0eaa9cc7092a2125e01739 100644 (file)
@@ -438,7 +438,7 @@ namespace System.Reflection {
                        foreach (Type type in methodInstantiation) {
                                if (type == null)
                                        throw new ArgumentNullException ();
-                               if (!(type is MonoType))
+                               if (!(type is RuntimeType))
                                        hasUserType = true;
                        }
 
index bc424ce5e2d7d40c6d6a12cc4aa88eec2f7eb76f..1b35fe1ee90b75337e05ce72f68a2e9017a9bc7f 100644 (file)
@@ -477,7 +477,7 @@ namespace System.Runtime.Remoting
                public static bool IsMethodOverloaded(IMethodMessage msg)
                {
                        const BindingFlags bfinst = BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance;
-                       MonoType type = (MonoType) msg.MethodBase.DeclaringType;
+                       RuntimeType type = (RuntimeType) msg.MethodBase.DeclaringType;
                        return type.GetMethodsByName (msg.MethodName, bfinst, false, type).Length > 1;
                }
 
index 15fbb4ad39029df6e511b002241ab9ebc47a0124..9a9a6aaa34e842c3fd6318319c64e4093e2d0200 100644 (file)
@@ -52,7 +52,11 @@ namespace System.Security {
                {
                }
 
+#if MOBILE && DISABLE_CAS_USE
+               [Obsolete ("CAS support is removed by linker", true)]
+#else
                [MonoTODO ("CAS support is experimental (and unsupported). Imperative mode is not implemented.")]
+#endif
                public void Assert ()
                {
                        new PermissionSet (this).Assert ();
@@ -60,6 +64,9 @@ namespace System.Security {
 
                public abstract IPermission Copy ();
 
+#if MOBILE && DISABLE_CAS_USE
+               [Obsolete ("CAS support is removed by linker", true)]
+#endif
                public void Demand ()
                {
                        // note: here we're sure it's a CAS demand
@@ -70,7 +77,11 @@ namespace System.Security {
                        new PermissionSet (this).CasOnlyDemand (3);
                }
 
+#if MOBILE && DISABLE_CAS_USE
+               [Obsolete ("CAS support is removed by linker", true)]
+#else
                [MonoTODO ("CAS support is experimental (and unsupported). Imperative mode is not implemented.")]
+#endif
                public void Deny ()
                {
                        new PermissionSet (this).Deny ();
@@ -114,13 +125,21 @@ namespace System.Security {
                        return null;
                }
 
+#if MOBILE && DISABLE_CAS_USE
+               [Obsolete ("CAS support is removed by linker", true)]
+#else
                [MonoTODO ("CAS support is experimental (and unsupported). Imperative mode is not implemented.")]
+#endif
                public void PermitOnly ()
                {
                        new PermissionSet (this).PermitOnly ();
                }
 
+#if MOBILE && DISABLE_CAS_USE
+               [Obsolete ("CAS support is removed by linker", true)]
+#else
                [MonoTODO ("CAS support is experimental (and unsupported). Imperative mode is not implemented.")]
+#endif
                public static void RevertAll ()
                {
                        if (!SecurityManager.SecurityEnabled)
@@ -128,7 +147,11 @@ namespace System.Security {
                        throw new NotImplementedException ();
                }
 
+#if MOBILE && DISABLE_CAS_USE
+               [Obsolete ("CAS support is removed by linker", true)]
+#else
                [MonoTODO ("CAS support is experimental (and unsupported). Imperative mode is not implemented.")]
+#endif
                public static void RevertAssert ()
                {
                        if (!SecurityManager.SecurityEnabled)
@@ -136,7 +159,11 @@ namespace System.Security {
                        throw new NotImplementedException ();
                }
 
+#if MOBILE && DISABLE_CAS_USE
+               [Obsolete ("CAS support is removed by linker", true)]
+#else
                [MonoTODO ("CAS support is experimental (and unsupported). Imperative mode is not implemented.")]
+#endif
                public static void RevertDeny ()
                {
                        if (!SecurityManager.SecurityEnabled)
@@ -144,7 +171,11 @@ namespace System.Security {
                        throw new NotImplementedException ();
                }
 
+#if MOBILE && DISABLE_CAS_USE
+               [Obsolete ("CAS support is removed by linker", true)]
+#else
                [MonoTODO ("CAS support is experimental (and unsupported). Imperative mode is not implemented.")]
+#endif
                public static void RevertPermitOnly ()
                {
                        if (!SecurityManager.SecurityEnabled)
index 54cc0c1b3607e186cd7fa80511c13b32f6fb082f..605d4dad1a9e31c4d0fd9947c10aa4372502a4b0 100644 (file)
@@ -625,7 +625,9 @@ namespace System.Security {
                // FIXME what's it doing here? There's probably a reason this was added here.
                static public void RevertAssert ()
                {
+#if !DISABLE_CAS_USE
                        CodeAccessPermission.RevertAssert ();
+#endif
                }
 
                // internal
index 0952e5528fc7a39b92ed8a268c67f53bd94fc6f6..1db3482d019ccc57b6e6278a032da87be42b94f8 100644 (file)
@@ -57,7 +57,7 @@ namespace System {
                 * of icalls, do not require an increment.
                 */
 #pragma warning disable 169
-               private const int mono_corlib_version = 147;
+               private const int mono_corlib_version = 148;
 #pragma warning restore 169
 
                [ComVisible (true)]
index 76b5b15e0417f6caa8d12149a8569c9e83d6eca3..8894ec98c98a6508329ec496e6dd3248269c1208 100644 (file)
@@ -49,14 +49,14 @@ namespace System
                [ThreadStatic]
                static Dictionary<Type, AttributeUsageAttribute> usage_cache;
 
-               /* Treat as user types all corlib types extending System.Type that are not MonoType and TypeBuilder */
+               /* Treat as user types all corlib types extending System.Type that are not RuntimeType and TypeBuilder */
                static bool IsUserCattrProvider (object obj)
                {
                        Type type = obj as Type;
 #if !FULL_AOT_RUNTIME
-                       if ((type is MonoType) || (type is TypeBuilder))
+                       if ((type is RuntimeType) || (type is TypeBuilder))
 #else
-                       if (type is MonoType)
+                       if (type is RuntimeType)
 #endif
                                return false;
                        if ((obj is Type))
index 0fd8fa7ec75a560f46db6323a72c2fb252bb92d3..f99efb2b7b5b524483c62255adea1614d940676e 100644 (file)
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-using System.Collections.Generic;
-using System.Globalization;
-using System.Reflection;
-using System.Runtime.InteropServices;
-using System.Runtime.CompilerServices;
-using System.Runtime.Serialization;
-using System.Security;
-using System.Diagnostics.Contracts;
-using System.Threading;
-using System.Diagnostics;
-using System.Security.Permissions;
-using System.Runtime.Remoting.Activation;
-using System.Runtime;
-
 namespace System
 {
-       // Contains information about the type which is expensive to compute
-       [StructLayout (LayoutKind.Sequential)]
-       internal class MonoTypeInfo {
-               // this is the displayed form: special characters
-               // ,+*&*[]\ in the identifier portions of the names
-               // have been escaped with a leading backslash (\)
-               public string full_name;
-               public MonoCMethod default_ctor;
-       }
-
-       [Serializable]
-       [StructLayout (LayoutKind.Sequential)]
-       class MonoType : RuntimeType, ISerializable
+       // Dummy type kept because lots of external code uses
+       // this to check whenever it is running on mono.
+       sealed class MonoType : RuntimeType
        {
-               [NonSerialized]
-               MonoTypeInfo type_info;
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               private static extern void type_from_obj (MonoType type, Object obj);
-               
-               internal MonoType (Object obj)
-               {
-                       // this should not be used - lupus
-                       type_from_obj (this, obj);
-                       
-                       throw new NotImplementedException ();
-               }
-
-               internal override MonoCMethod GetDefaultConstructor ()
+               private MonoType ()
                {
-                       MonoCMethod ctor = null;
-                       
-                       if (type_info == null)
-                               type_info = new MonoTypeInfo ();
-                       else
-                               ctor = type_info.default_ctor;
-
-                       if (ctor == null) {
-                               var ctors = GetConstructors (BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.DeclaredOnly);
-
-                               for (int i = 0; i < ctors.Length; ++i) {
-                                       if (ctors [i].GetParametersCount () == 0) {
-                                               type_info.default_ctor = ctor = (MonoCMethod) ctors [i];
-                                               break;
-                                       }
-                               }
-                       }
-
-                       return ctor;
-               }
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               extern MethodInfo GetCorrespondingInflatedMethod (MethodInfo generic);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               extern ConstructorInfo GetCorrespondingInflatedConstructor (ConstructorInfo generic);
-
-               internal override MethodInfo GetMethod (MethodInfo fromNoninstanciated)
-                {
-                       if (fromNoninstanciated == null)
-                               throw new ArgumentNullException ("fromNoninstanciated");
-                        return GetCorrespondingInflatedMethod (fromNoninstanciated);
-                }
-
-               internal override ConstructorInfo GetConstructor (ConstructorInfo fromNoninstanciated)
-               {
-                       if (fromNoninstanciated == null)
-                               throw new ArgumentNullException ("fromNoninstanciated");
-                        return GetCorrespondingInflatedConstructor (fromNoninstanciated);
-               }
-
-               internal override FieldInfo GetField (FieldInfo fromNoninstanciated)
-               {
-                       /* create sensible flags from given FieldInfo */
-                       BindingFlags flags = fromNoninstanciated.IsStatic ? BindingFlags.Static : BindingFlags.Instance;
-                       flags |= fromNoninstanciated.IsPublic ? BindingFlags.Public : BindingFlags.NonPublic;
-                       return GetField (fromNoninstanciated.Name, flags);
-               }
-
-               public override int GetHashCode()
-               {
-                       Type t = UnderlyingSystemType;
-                       if (t != null && t != this)
-                               return t.GetHashCode ();
-                       return (int)_impl.Value;
-               }
-
-               public override string FullName {
-                       get {
-                               string fullName;
-                               // This doesn't need locking
-                               if (type_info == null)
-                                       type_info = new MonoTypeInfo ();
-                               if ((fullName = type_info.full_name) == null)
-                                       fullName = type_info.full_name = getFullName (true, false);
-
-                               return fullName;
-                       }
-               }
-
-               internal override bool IsUserType {
-                       get {
-                               return false;
-                       }
                }
        }
 }
index 479e867f5016a6fb66aca5ba7fb37274cd0fcc88..eb6c42f097648ff77d290c66f24e2a600768da87 100644 (file)
@@ -62,7 +62,7 @@ namespace System
                        if (info == null)
                                throw new ArgumentNullException ("info");
 
-                       MonoType mt = ((MonoType) info.GetValue ("TypeObj", typeof (MonoType)));
+                       RuntimeType mt = ((RuntimeType) info.GetValue ("TypeObj", typeof (RuntimeType)));
                        value = mt.TypeHandle.Value;
                        if (value == IntPtr.Zero)
                                throw new SerializationException (Locale.GetText ("Insufficient state."));
@@ -82,7 +82,7 @@ namespace System
                        if (value == IntPtr.Zero)
                                throw new SerializationException ("Object fields may not be properly initialized");
 
-                       info.AddValue ("TypeObj", Type.GetTypeHandle (this), typeof (MonoType));
+                       info.AddValue ("TypeObj", Type.GetTypeHandle (this), typeof (RuntimeType));
                }
 
                [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
index 065914a2ed460b40f0f220d2c8e1f47597cb6b39..3fd0d19d994722d588906d74bcf6215acca4c184 100644 (file)
@@ -7,6 +7,8 @@
 // (C) 2004 Motus Technologies Inc. (http://www.motus.com)
 //
 
+#if !DISABLE_CAS_USE
+
 using NUnit.Framework;
 using System;
 using System.Security;
@@ -89,3 +91,5 @@ namespace MonoTests.System.Security {
                }
        }
 }
+
+#endif
index f4ecfb5d46f925eb2286e39817eeefdfe7879532..a75d5d6b8a5e16bc202c0511a268e36525f47c53 100644 (file)
@@ -25,7 +25,7 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-
+#if !DISABLE_CAS_USE
 
 using System;
 using System.Security;
@@ -168,3 +168,4 @@ namespace MonoCasTests.System.Threading {
        }
 }
 
+#endif
\ No newline at end of file
index e532913ff24a2632ef221276cea3ef03e1d96367..a869f7191f7daf9d8ba55795b459e8f909b117a2 100644 (file)
@@ -109,7 +109,7 @@ namespace MonoTests.System.Threading
                        }
 
                        // check a class in mscorlib to determine if we're running on Mono
-                       if (Type.GetType ("System.MonoType", false) != null)
+                       if (Type.GetType ("Mono.Runtime", false) != null)
                                is_mono = true;
                }
 
index edf04b13b37720e748afdb0405e91024901f87f2..95f0db7329cb36a446b037c41d2f4f6a1347bf06 100644 (file)
     <Compile Include="..\referencesource\mscorlib\system\runtime\exceptionservices\corruptingexceptioncommon.cs" />\r
     <Compile Include="..\referencesource\mscorlib\system\runtime\exceptionservices\exceptionnotification.cs" />\r
     <Compile Include="..\referencesource\mscorlib\system\runtime\exceptionservices\exceptionservicescommon.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\arraywithoffset.cs" />\r
     <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\attributes.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\bstrwrapper.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\callingconvention.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\charset.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\comexception.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\commembertype.cs" />\r
     <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\ComTypes\ibindctx.cs" />\r
     <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\ComTypes\iconnectionpoint.cs" />\r
     <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\ComTypes\iconnectionpointcontainer.cs" />\r
     <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\ComTypes\itypeinfo2.cs" />\r
     <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\ComTypes\itypelib.cs" />\r
     <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\ComTypes\itypelib2.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\criticalhandle.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\currencywrapper.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\dispatchwrapper.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\errorwrapper.cs" />\r
     <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\expando\iexpando.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\externalexception.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\handleref.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\icustomadapter.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\icustomfactory.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\icustommarshaler.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\icustomqueryinterface.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\invalidcomobjectexception.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\invalidolevarianttypeexception.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\iregistrationservices.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\layoutkind.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\marshaldirectiveexception.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\objectcreationdelegate.cs" />\r
     <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\runtimeenvironment.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\safearrayrankmismatchexception.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\safearraytypemismatchexception.cs" />\r
     <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\safehandle.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\sehexception.cs" />\r
     <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\ucomienumconnections.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\unknownwrapper.cs" />\r
+    <Compile Include="..\referencesource\mscorlib\system\runtime\interopservices\variantWrapper.cs" />\r
     <Compile Include="..\referencesource\mscorlib\system\runtime\NgenServicingAttributes.cs" />\r
     <Compile Include="..\referencesource\mscorlib\system\runtime\remoting\callcontext.cs" />\r
     <Compile Include="..\referencesource\mscorlib\system\runtime\serialization\deserializationeventhandler.cs" />\r
     <Compile Include="System.Runtime.InteropServices\_Thread.cs" />\r
     <Compile Include="System.Runtime.InteropServices\_Type.cs" />\r
     <Compile Include="System.Runtime.InteropServices\_TypeBuilder.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\ArrayWithOffset.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\AssemblyRegistrationFlags.cs" />\r
     <Compile Include="System.Runtime.InteropServices\BIND_OPTS.cs" />\r
     <Compile Include="System.Runtime.InteropServices\BINDPTR.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\BStrWrapper.cs" />\r
     <Compile Include="System.Runtime.InteropServices\CALLCONV.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\CallingConvention.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\CharSet.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\COMException.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\ComMemberType.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\CriticalHandle.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\CurrencyWrapper.cs" />\r
     <Compile Include="System.Runtime.InteropServices\DESCKIND.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\DispatchWrapper.cs" />\r
     <Compile Include="System.Runtime.InteropServices\DISPPARAMS.cs" />\r
     <Compile Include="System.Runtime.InteropServices\ELEMDESC.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\ErrorWrapper.cs" />\r
     <Compile Include="System.Runtime.InteropServices\EXCEPINFO.cs" />\r
     <Compile Include="System.Runtime.InteropServices\ExporterEventKind.cs" />\r
     <Compile Include="System.Runtime.InteropServices\ExtensibleClassFactory.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\ExternalException.cs" />\r
     <Compile Include="System.Runtime.InteropServices\FILETIME.cs" />\r
     <Compile Include="System.Runtime.InteropServices\FUNCDESC.cs" />\r
     <Compile Include="System.Runtime.InteropServices\FUNCFLAGS.cs" />\r
     <Compile Include="System.Runtime.InteropServices\FUNCKIND.cs" />\r
     <Compile Include="System.Runtime.InteropServices\GCHandle.cs" />\r
     <Compile Include="System.Runtime.InteropServices\GCHandleType.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\HandleRef.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\ICustomAdapter.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\ICustomFactory.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\ICustomMarshaler.cs" />\r
     <Compile Include="System.Runtime.InteropServices\IDLDESC.cs" />\r
     <Compile Include="System.Runtime.InteropServices\IDLFLAG.cs" />\r
     <Compile Include="System.Runtime.InteropServices\IErrorInfo.cs" />\r
     <Compile Include="System.Runtime.InteropServices\IMPLTYPEFLAGS.cs" />\r
     <Compile Include="System.Runtime.InteropServices\ImporterEventKind.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\InvalidComObjectException.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\InvalidOleVariantTypeException.cs" />\r
     <Compile Include="System.Runtime.InteropServices\INVOKEKIND.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\IRegistrationServices.cs" />\r
     <Compile Include="System.Runtime.InteropServices\ITypeLibConverter.cs" />\r
     <Compile Include="System.Runtime.InteropServices\ITypeLibExporterNameProvider.cs" />\r
     <Compile Include="System.Runtime.InteropServices\ITypeLibExporterNotifySink.cs" />\r
     <Compile Include="System.Runtime.InteropServices\ITypeLibImporterNotifySink.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\LayoutKind.cs" />\r
     <Compile Include="System.Runtime.InteropServices\LIBFLAGS.cs" />\r
     <Compile Include="System.Runtime.InteropServices\ManagedErrorInfo.cs" />\r
     <Compile Include="System.Runtime.InteropServices\Marshal.cs" />\r
     <Compile Include="System.Runtime.InteropServices\MarshalAsAttribute.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\MarshalDirectiveException.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\ObjectCreationDelegate.cs" />\r
     <Compile Include="System.Runtime.InteropServices\PARAMDESC.cs" />\r
     <Compile Include="System.Runtime.InteropServices\PARAMFLAG.cs" />\r
     <Compile Include="System.Runtime.InteropServices\RegistrationClassContext.cs" />\r
     <Compile Include="System.Runtime.InteropServices\RegistrationConnectionType.cs" />\r
     <Compile Include="System.Runtime.InteropServices\RegistrationServices.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\SafeArrayRankMismatchException.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\SafeArrayTypeMismatchException.cs" />\r
     <Compile Include="System.Runtime.InteropServices\SafeBuffer.cs" />\r
     <Compile Include="System.Runtime.InteropServices\SafeHandle.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\SEHException.cs" />\r
     <Compile Include="System.Runtime.InteropServices\STATSTG.cs" />\r
     <Compile Include="System.Runtime.InteropServices\SYSKIND.cs" />\r
     <Compile Include="System.Runtime.InteropServices\TYPEATTR.cs" />\r
     <Compile Include="System.Runtime.InteropServices\UCOMITypeComp.cs" />\r
     <Compile Include="System.Runtime.InteropServices\UCOMITypeInfo.cs" />\r
     <Compile Include="System.Runtime.InteropServices\UCOMITypeLib.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\UnknownWrapper.cs" />\r
     <Compile Include="System.Runtime.InteropServices\VARDESC.cs" />\r
     <Compile Include="System.Runtime.InteropServices\VARFLAGS.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\VariantWrapper.cs" />\r
     <Compile Include="System.Runtime.Remoting.Activation\ActivationServices.cs" />\r
     <Compile Include="System.Runtime.Remoting.Activation\ActivatorLevel.cs" />\r
     <Compile Include="System.Runtime.Remoting.Activation\AppDomainLevelActivator.cs" />\r
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
diff --git a/mcs/class/corlib/corlib_cmp.dll.excludes b/mcs/class/corlib/corlib_cmp.dll.excludes
deleted file mode 100644 (file)
index 1ad6431..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-System/Object.cs
-System/ValueType.cs
-System/Enum.cs
-System/Delegate.cs
-System/MulticastDelegate.cs
-System.Runtime.CompilerServices/RuntimeHelpers.cs
-System/Decimal.cs
-System/DecimalFormatter.cs
diff --git a/mcs/class/corlib/mobile_static_corlib_test.dll.exclude.sources b/mcs/class/corlib/mobile_static_corlib_test.dll.exclude.sources
new file mode 100644 (file)
index 0000000..eb17a10
--- /dev/null
@@ -0,0 +1,131 @@
+Microsoft.Win32/RegistryKeyTest.cs
+System.Diagnostics.Contracts/ContractAssertTest.cs
+System.Diagnostics.Contracts/ContractAssumeTest.cs
+System.Diagnostics.Contracts/ContractCollectionMethodsTest.cs
+System.Diagnostics.Contracts/ContractHelperTest.cs
+System.Diagnostics.Contracts/ContractMarkerMethodsTest.cs
+System.Diagnostics.Contracts/ContractMustUseRewriterTest.cs
+System.Diagnostics.Contracts/Helpers/RunAgainstReferenceAttribute.cs
+System.Diagnostics.Contracts/Helpers/TestContractBase.cs
+System.Reflection.Emit/AssemblyBuilderAccessTest.cs
+System.Reflection.Emit/AssemblyBuilderTest.cs
+System.Reflection.Emit/ConstructorBuilderTest.cs
+System.Reflection.Emit/ConstructorOnTypeBuilderInstTest.cs
+System.Reflection.Emit/CustomAttributeBuilderTest.cs
+System.Reflection.Emit/DerivedTypesTest.cs
+System.Reflection.Emit/DynamicILInfoTest.cs
+System.Reflection.Emit/DynamicMethodTest.cs
+System.Reflection.Emit/EnumBuilderTest.cs
+System.Reflection.Emit/EventBuilderTest.cs
+System.Reflection.Emit/FieldBuilderTest.cs
+System.Reflection.Emit/GenericTypeParameterBuilderTest.cs
+System.Reflection.Emit/ILGeneratorTest.cs
+System.Reflection.Emit/MethodBuilderTest.cs
+System.Reflection.Emit/MethodBuilderTestIL.cs
+System.Reflection.Emit/MethodOnTypeBuilderInstTest.cs
+System.Reflection.Emit/MethodRentalCas.cs
+System.Reflection.Emit/MethodRentalTest.cs
+System.Reflection.Emit/ModuleBuilderTest.cs
+System.Reflection.Emit/ParameterBuilderTest.cs
+System.Reflection.Emit/PropertyBuilderTest.cs
+System.Reflection.Emit/SignatureHelperTest.cs
+System.Reflection.Emit/TypeBuilderTest.cs
+System.Runtime.Remoting/ContextTest.cs
+System.Runtime.Remoting/RemotingConfigurationTest.cs
+System.Runtime.Remoting/RemotingServicesTest.cs
+System.Runtime.Remoting/SoapServicesTest.cs
+System.Runtime.Remoting/SynchronizationAttributeTest.cs
+System.Runtime.Remoting.Channels/ChannelServicesTest.cs
+System.Runtime.Remoting.Contexts/SynchronizationAttributeTest.cs
+System.Runtime.Remoting.Messaging/CallContextTest.cs
+System.Runtime.Remoting.Metadata.W3cXsd2001/SoapHexBinaryTest.cs
+System.Security.AccessControl/AuthorizationRuleTest.cs
+System.Security.AccessControl/CommonAceTest.cs
+System.Security.AccessControl/CommonAclTest.cs
+System.Security.AccessControl/CommonObjectSecurityTest.cs
+System.Security.AccessControl/CommonSecurityDescriptorTest.cs
+System.Security.AccessControl/CryptoKeyAccessRuleTest.cs
+System.Security.AccessControl/DirectoryObjectSecurityTest.cs
+System.Security.AccessControl/DirectorySecurityTest.cs
+System.Security.AccessControl/DiscretionaryAclTest.cs
+System.Security.AccessControl/EventWaitHandleSecurityTest.cs
+System.Security.AccessControl/FileSecurityTest.cs
+System.Security.AccessControl/MutexAccessRuleTest.cs
+System.Security.AccessControl/MutexSecurityTest.cs
+System.Security.AccessControl/ObjectAceTest.cs
+System.Security.AccessControl/ObjectSecurity_TTest.cs
+System.Security.AccessControl/ObjectSecurityTest.cs
+System.Security.AccessControl/RawAclTest.cs
+System.Security.AccessControl/RawSecurityDescriptorTest.cs
+System.Security.AccessControl/RegistrySecurityTest.cs
+System.Security.AccessControl/SystemAclTest.cs
+System.Security.Permissions/CodeAccessSecurityAttributeTest.cs
+System.Security.Permissions/EnvironmentPermissionAttributeTest.cs
+System.Security.Permissions/EnvironmentPermissionTest.cs
+System.Security.Permissions/FileDialogPermissionAttributeTest.cs
+System.Security.Permissions/FileDialogPermissionTest.cs
+System.Security.Permissions/FileIOPermissionAttributeTest.cs
+System.Security.Permissions/FileIOPermissionTest.cs
+System.Security.Permissions/GacIdentityPermissionAttributeTest.cs
+System.Security.Permissions/GacIdentityPermissionTest.cs
+System.Security.Permissions/HostProtectionAttributeTest.cs
+System.Security.Permissions/IBuiltInPermissionTest.cs
+System.Security.Permissions/IsolatedStorageFilePermissionAttributeTest.cs
+System.Security.Permissions/IsolatedStorageFilePermissionTest.cs
+System.Security.Permissions/IsolatedStoragePermissionAttributeTest.cs
+System.Security.Permissions/KeyContainerPermissionAttributeTest.cs
+System.Security.Permissions/PermissionSetAttributeTest.cs
+System.Security.Permissions/PrincipalPermissionAttributeTest.cs
+System.Security.Permissions/PrincipalPermissionTest.cs
+System.Security.Permissions/PublisherIdentityPermissionAttributeTest.cs
+System.Security.Permissions/PublisherIdentityPermissionTest.cs
+System.Security.Permissions/ReflectionPermissionAttributeTest.cs
+System.Security.Permissions/ReflectionPermissionTest.cs
+System.Security.Permissions/RegistryPermissionAttributeTest.cs
+System.Security.Permissions/RegistryPermissionTest.cs
+System.Security.Permissions/SecurityAttributeTest.cs
+System.Security.Permissions/SecurityPermissionAttributeTest.cs
+System.Security.Permissions/SecurityPermissionTest.cs
+System.Security.Permissions/SiteIdentityPermissionAttributeTest.cs
+System.Security.Permissions/SiteIdentityPermissionTest.cs
+System.Security.Permissions/StrongNameIdentityPermissionAttributeTest.cs
+System.Security.Permissions/StrongNameIdentityPermissionTest.cs
+System.Security.Permissions/StrongNamePublicKeyBlobTest.cs
+System.Security.Permissions/UIPermissionAttributeTest.cs
+System.Security.Permissions/UIPermissionTest.cs
+System.Security.Permissions/UrlIdentityPermissionAttributeTest.cs
+System.Security.Permissions/UrlIdentityPermissionTest.cs
+System.Security.Permissions/ZoneIdentityPermissionAttributeTest.cs
+System.Security.Permissions/ZoneIdentityPermissionTest.cs
+System.Security.Policy/AllMembershipConditionTest.cs
+System.Security.Policy/ApplicationDirectoryMembershipConditionTest.cs
+System.Security.Policy/ApplicationDirectoryTest.cs
+System.Security.Policy/ApplicationMembershipConditionTest.cs
+System.Security.Policy/ApplicationSecurityManagerCas.cs
+System.Security.Policy/ApplicationSecurityManagerTest.cs
+System.Security.Policy/ApplicationTrustTest.cs
+System.Security.Policy/CodeGroupTest.cs
+System.Security.Policy/DomainApplicationMembershipConditionTest.cs
+System.Security.Policy/EvidenceTest.cs
+System.Security.Policy/FileCodeGroupTest.cs
+System.Security.Policy/FirstMatchCodeGroupTest.cs
+System.Security.Policy/GacMembershipConditionTest.cs
+System.Security.Policy/GacTest.cs
+System.Security.Policy/HashMembershipConditionTest.cs
+System.Security.Policy/HashTest.cs
+System.Security.Policy/IBuiltInEvidenceTest.cs
+System.Security.Policy/NetCodeGroupTest.cs
+System.Security.Policy/PermissionRequestEvidenceTest.cs
+System.Security.Policy/PolicyLevelTest.cs
+System.Security.Policy/PolicyStatementTest.cs
+System.Security.Policy/PublisherMembershipConditionTest.cs
+System.Security.Policy/PublisherTest.cs
+System.Security.Policy/SiteMembershipConditionTest.cs
+System.Security.Policy/SiteTest.cs
+System.Security.Policy/StrongNameMembershipConditionTest.cs
+System.Security.Policy/StrongNameTest.cs
+System.Security.Policy/UnionCodeGroupTest.cs
+System.Security.Policy/UrlMembershipConditionTest.cs
+System.Security.Policy/UrlTest.cs
+System.Security.Policy/ZoneMembershipConditionTest.cs
+System.Security.Policy/ZoneTest.cs
diff --git a/mcs/class/corlib/mobile_static_corlib_test.dll.excludes b/mcs/class/corlib/mobile_static_corlib_test.dll.excludes
deleted file mode 100644 (file)
index eb17a10..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-Microsoft.Win32/RegistryKeyTest.cs
-System.Diagnostics.Contracts/ContractAssertTest.cs
-System.Diagnostics.Contracts/ContractAssumeTest.cs
-System.Diagnostics.Contracts/ContractCollectionMethodsTest.cs
-System.Diagnostics.Contracts/ContractHelperTest.cs
-System.Diagnostics.Contracts/ContractMarkerMethodsTest.cs
-System.Diagnostics.Contracts/ContractMustUseRewriterTest.cs
-System.Diagnostics.Contracts/Helpers/RunAgainstReferenceAttribute.cs
-System.Diagnostics.Contracts/Helpers/TestContractBase.cs
-System.Reflection.Emit/AssemblyBuilderAccessTest.cs
-System.Reflection.Emit/AssemblyBuilderTest.cs
-System.Reflection.Emit/ConstructorBuilderTest.cs
-System.Reflection.Emit/ConstructorOnTypeBuilderInstTest.cs
-System.Reflection.Emit/CustomAttributeBuilderTest.cs
-System.Reflection.Emit/DerivedTypesTest.cs
-System.Reflection.Emit/DynamicILInfoTest.cs
-System.Reflection.Emit/DynamicMethodTest.cs
-System.Reflection.Emit/EnumBuilderTest.cs
-System.Reflection.Emit/EventBuilderTest.cs
-System.Reflection.Emit/FieldBuilderTest.cs
-System.Reflection.Emit/GenericTypeParameterBuilderTest.cs
-System.Reflection.Emit/ILGeneratorTest.cs
-System.Reflection.Emit/MethodBuilderTest.cs
-System.Reflection.Emit/MethodBuilderTestIL.cs
-System.Reflection.Emit/MethodOnTypeBuilderInstTest.cs
-System.Reflection.Emit/MethodRentalCas.cs
-System.Reflection.Emit/MethodRentalTest.cs
-System.Reflection.Emit/ModuleBuilderTest.cs
-System.Reflection.Emit/ParameterBuilderTest.cs
-System.Reflection.Emit/PropertyBuilderTest.cs
-System.Reflection.Emit/SignatureHelperTest.cs
-System.Reflection.Emit/TypeBuilderTest.cs
-System.Runtime.Remoting/ContextTest.cs
-System.Runtime.Remoting/RemotingConfigurationTest.cs
-System.Runtime.Remoting/RemotingServicesTest.cs
-System.Runtime.Remoting/SoapServicesTest.cs
-System.Runtime.Remoting/SynchronizationAttributeTest.cs
-System.Runtime.Remoting.Channels/ChannelServicesTest.cs
-System.Runtime.Remoting.Contexts/SynchronizationAttributeTest.cs
-System.Runtime.Remoting.Messaging/CallContextTest.cs
-System.Runtime.Remoting.Metadata.W3cXsd2001/SoapHexBinaryTest.cs
-System.Security.AccessControl/AuthorizationRuleTest.cs
-System.Security.AccessControl/CommonAceTest.cs
-System.Security.AccessControl/CommonAclTest.cs
-System.Security.AccessControl/CommonObjectSecurityTest.cs
-System.Security.AccessControl/CommonSecurityDescriptorTest.cs
-System.Security.AccessControl/CryptoKeyAccessRuleTest.cs
-System.Security.AccessControl/DirectoryObjectSecurityTest.cs
-System.Security.AccessControl/DirectorySecurityTest.cs
-System.Security.AccessControl/DiscretionaryAclTest.cs
-System.Security.AccessControl/EventWaitHandleSecurityTest.cs
-System.Security.AccessControl/FileSecurityTest.cs
-System.Security.AccessControl/MutexAccessRuleTest.cs
-System.Security.AccessControl/MutexSecurityTest.cs
-System.Security.AccessControl/ObjectAceTest.cs
-System.Security.AccessControl/ObjectSecurity_TTest.cs
-System.Security.AccessControl/ObjectSecurityTest.cs
-System.Security.AccessControl/RawAclTest.cs
-System.Security.AccessControl/RawSecurityDescriptorTest.cs
-System.Security.AccessControl/RegistrySecurityTest.cs
-System.Security.AccessControl/SystemAclTest.cs
-System.Security.Permissions/CodeAccessSecurityAttributeTest.cs
-System.Security.Permissions/EnvironmentPermissionAttributeTest.cs
-System.Security.Permissions/EnvironmentPermissionTest.cs
-System.Security.Permissions/FileDialogPermissionAttributeTest.cs
-System.Security.Permissions/FileDialogPermissionTest.cs
-System.Security.Permissions/FileIOPermissionAttributeTest.cs
-System.Security.Permissions/FileIOPermissionTest.cs
-System.Security.Permissions/GacIdentityPermissionAttributeTest.cs
-System.Security.Permissions/GacIdentityPermissionTest.cs
-System.Security.Permissions/HostProtectionAttributeTest.cs
-System.Security.Permissions/IBuiltInPermissionTest.cs
-System.Security.Permissions/IsolatedStorageFilePermissionAttributeTest.cs
-System.Security.Permissions/IsolatedStorageFilePermissionTest.cs
-System.Security.Permissions/IsolatedStoragePermissionAttributeTest.cs
-System.Security.Permissions/KeyContainerPermissionAttributeTest.cs
-System.Security.Permissions/PermissionSetAttributeTest.cs
-System.Security.Permissions/PrincipalPermissionAttributeTest.cs
-System.Security.Permissions/PrincipalPermissionTest.cs
-System.Security.Permissions/PublisherIdentityPermissionAttributeTest.cs
-System.Security.Permissions/PublisherIdentityPermissionTest.cs
-System.Security.Permissions/ReflectionPermissionAttributeTest.cs
-System.Security.Permissions/ReflectionPermissionTest.cs
-System.Security.Permissions/RegistryPermissionAttributeTest.cs
-System.Security.Permissions/RegistryPermissionTest.cs
-System.Security.Permissions/SecurityAttributeTest.cs
-System.Security.Permissions/SecurityPermissionAttributeTest.cs
-System.Security.Permissions/SecurityPermissionTest.cs
-System.Security.Permissions/SiteIdentityPermissionAttributeTest.cs
-System.Security.Permissions/SiteIdentityPermissionTest.cs
-System.Security.Permissions/StrongNameIdentityPermissionAttributeTest.cs
-System.Security.Permissions/StrongNameIdentityPermissionTest.cs
-System.Security.Permissions/StrongNamePublicKeyBlobTest.cs
-System.Security.Permissions/UIPermissionAttributeTest.cs
-System.Security.Permissions/UIPermissionTest.cs
-System.Security.Permissions/UrlIdentityPermissionAttributeTest.cs
-System.Security.Permissions/UrlIdentityPermissionTest.cs
-System.Security.Permissions/ZoneIdentityPermissionAttributeTest.cs
-System.Security.Permissions/ZoneIdentityPermissionTest.cs
-System.Security.Policy/AllMembershipConditionTest.cs
-System.Security.Policy/ApplicationDirectoryMembershipConditionTest.cs
-System.Security.Policy/ApplicationDirectoryTest.cs
-System.Security.Policy/ApplicationMembershipConditionTest.cs
-System.Security.Policy/ApplicationSecurityManagerCas.cs
-System.Security.Policy/ApplicationSecurityManagerTest.cs
-System.Security.Policy/ApplicationTrustTest.cs
-System.Security.Policy/CodeGroupTest.cs
-System.Security.Policy/DomainApplicationMembershipConditionTest.cs
-System.Security.Policy/EvidenceTest.cs
-System.Security.Policy/FileCodeGroupTest.cs
-System.Security.Policy/FirstMatchCodeGroupTest.cs
-System.Security.Policy/GacMembershipConditionTest.cs
-System.Security.Policy/GacTest.cs
-System.Security.Policy/HashMembershipConditionTest.cs
-System.Security.Policy/HashTest.cs
-System.Security.Policy/IBuiltInEvidenceTest.cs
-System.Security.Policy/NetCodeGroupTest.cs
-System.Security.Policy/PermissionRequestEvidenceTest.cs
-System.Security.Policy/PolicyLevelTest.cs
-System.Security.Policy/PolicyStatementTest.cs
-System.Security.Policy/PublisherMembershipConditionTest.cs
-System.Security.Policy/PublisherTest.cs
-System.Security.Policy/SiteMembershipConditionTest.cs
-System.Security.Policy/SiteTest.cs
-System.Security.Policy/StrongNameMembershipConditionTest.cs
-System.Security.Policy/StrongNameTest.cs
-System.Security.Policy/UnionCodeGroupTest.cs
-System.Security.Policy/UrlMembershipConditionTest.cs
-System.Security.Policy/UrlTest.cs
-System.Security.Policy/ZoneMembershipConditionTest.cs
-System.Security.Policy/ZoneTest.cs
diff --git a/mcs/class/corlib/monodroid_corlib_test.dll.exclude.sources b/mcs/class/corlib/monodroid_corlib_test.dll.exclude.sources
new file mode 100644 (file)
index 0000000..48e7f04
--- /dev/null
@@ -0,0 +1,53 @@
+#include monodroid_corlib_test.dll.new-exclude.sources
+Microsoft.Win32/RegistryKeyTest.cs
+System/ActivatorCas.cs
+System/AppDomainCas.cs
+System/BadImageFormatExceptionCas.cs
+System/ConsoleCas.cs
+System.Diagnostics/StackFrameCas.cs
+System.Diagnostics/StackTraceCas.cs
+System/EnvironmentCas.cs
+System/ExceptionCas.cs
+System.IO/DirectoryCas.cs
+System.IO/FileLoadExceptionCas.cs
+System.IO/FileNotFoundExceptionCas.cs
+System.IO/FileStreamCas.cs
+System.IO.IsolatedStorage/IsolatedStorageFileCas.cs
+System.IO.IsolatedStorage/IsolatedStorageFileStreamCas.cs
+System.IO/PathCas.cs
+System.IO/StreamCas.cs
+System/MarshalByRefObjectCas.cs
+System.Reflection/AssemblyCas.cs
+System.Reflection/AssemblyNameCas.cs
+System.Reflection.Emit/MethodRentalCas.cs
+System.Reflection/ModuleCas.cs
+System.Reflection/StrongNameKeyPairCas.cs
+System.Reflection/VisibilityTest.cs
+System.Resources/ResourceReaderCas.cs
+System.Resources/ResourceSetCas.cs
+System.Runtime.CompilerServices/RuntimeWrappedExceptionCas.cs
+System.Runtime.InteropServices/RuntimeEnvironmentCas.cs
+System/RuntimeMethodHandleCas.cs
+System.Runtime.Serialization.Formatters.Binary/BinaryFormatterCas.cs
+System.Runtime.Versioning/ResourceConsumptionAttributeCas.cs
+System.Runtime.Versioning/ResourceExposureAttributeCas.cs
+System.Runtime.Versioning/VersioningHelperCas.cs
+System.Security.AccessControl/DirectorySecurityTest.cs
+System.Security.AccessControl/EventWaitHandleSecurityTest.cs
+System.Security.AccessControl/FileSecurityTest.cs
+System.Security/CodeAccessPermissionCas.cs
+System.Security.Cryptography/CryptoAPITransformCas.cs
+System.Security.Cryptography/CryptoConfigCas.cs
+System.Security.Cryptography.X509Certificates/X509CertificateCas.cs
+System.Security/PermissionSetCas.cs
+System.Security.Policy/ApplicationSecurityManagerCas.cs
+System.Security/SecureStringCas.cs
+System.Security/SecurityContextCas.cs
+System.Security/SecurityExceptionCas.cs
+System.Security/SecurityManagerCas.cs
+System.Threading/CompressedStackCas.cs
+System.Threading/ExecutionContextCas.cs
+System.Threading/MutexCas.cs
+System.Threading/ThreadCas.cs
+System.Threading/WaitHandleCas.cs
+System/TypedReferenceCas.cs
diff --git a/mcs/class/corlib/monodroid_corlib_test.dll.new-exclude.sources b/mcs/class/corlib/monodroid_corlib_test.dll.new-exclude.sources
new file mode 100644 (file)
index 0000000..90b0082
--- /dev/null
@@ -0,0 +1,28 @@
+System/DateTimeOffsetTestCoreFx.cs
+System.Diagnostics.Contracts/ContractAssertTest.cs
+System.Diagnostics.Contracts/ContractCollectionMethodsTest.cs
+System.Diagnostics.Contracts/ContractHelperTest.cs
+System.Diagnostics.Contracts/ContractMustUseRewriterTest.cs
+System.IO/DirectoryTest.cs
+System.Reflection.Emit/MethodBuilderTestIL.cs
+System.Security.AccessControl/AuthorizationRuleTest.cs
+System.Security.AccessControl/CommonAceTest.cs
+System.Security.AccessControl/CommonAclTest.cs
+System.Security.AccessControl/CommonObjectSecurityTest.cs
+System.Security.AccessControl/CommonSecurityDescriptorTest.cs
+System.Security.AccessControl/CryptoKeyAccessRuleTest.cs
+System.Security.AccessControl/DirectoryObjectSecurityTest.cs
+System.Security.AccessControl/DiscretionaryAclTest.cs
+System.Security.AccessControl/MutexAccessRuleTest.cs
+System.Security.AccessControl/MutexSecurityTest.cs
+System.Security.AccessControl/ObjectAceTest.cs
+System.Security.AccessControl/ObjectSecurityTest.cs
+System.Security.AccessControl/ObjectSecurity_TTest.cs
+System.Security.AccessControl/RawAclTest.cs
+System.Security.AccessControl/RawSecurityDescriptorTest.cs
+System.Security.AccessControl/RegistrySecurityTest.cs
+System.Security.AccessControl/SystemAclTest.cs
+System.Security.Claims/ClaimsIdentityTest.cs
+System.Security.Claims/ClaimsPrincipalTest.cs
+System.Security/CodeAccessPermissionTest.cs
+System/TimeZoneTest.cs
diff --git a/mcs/class/corlib/monodroid_corlib_test.dll.sources b/mcs/class/corlib/monodroid_corlib_test.dll.sources
new file mode 100644 (file)
index 0000000..011effe
--- /dev/null
@@ -0,0 +1 @@
+#include corlib_test.dll.sources
index 773229202a0bf3d85a8c0cba432f098cfd8f809d..92b54f9ccdb4f42dd2102b9cba39fa0f54387372 100644 (file)
   -->\r
   <PropertyGroup>\r
     <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+$(ProjectDir)\..\..\jay\jay -ct &lt; $(ProjectDir)\..\..\jay\skeleton.cs $(ProjectDir)\Monodoc.Ecma\EcmaUrlParser.jay > $(ProjectDir)\Monodoc.Ecma\EcmaUrlParser.cs
+
 
     </PreBuildEvent>\r
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
+$(ProjectDir)\..\..\jay\jay -ct &lt; $(ProjectDir)\..\..\jay\skeleton.cs $(ProjectDir)\Monodoc.Ecma\EcmaUrlParser.jay > $(ProjectDir)\Monodoc.Ecma\EcmaUrlParser.cs\r
 \r
-    </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
 \r
+    </PreBuildEvent>\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 6938ce280f6ea9405ff25143a7b96177a50c076b..8aaea747afdf79cf6b6d60efdfdd31ea8408f805 100644 (file)
@@ -166,15 +166,19 @@ namespace System.ComponentModel.Design {
                     else if(!resourceAssembly.IsDynamic) { // EscapedCodeBase won't be supported by emitted assemblies anyway
                         Debug.WriteLineIf(RuntimeLicenseContextSwitch.TraceVerbose,"resourceAssembly is not null");
                         string fileName;
+#if !DISABLE_CAS_USE
                         FileIOPermission perm = new FileIOPermission(PermissionState.Unrestricted);
                         perm.Assert();
+#endif
                         try
                         {
                             fileName = GetLocalPath(resourceAssembly.EscapedCodeBase);
                         }
                         finally
                         {
+#if !DISABLE_CAS_USE
                             CodeAccessPermission.RevertAssert();
+#endif
                         }
                         fileName = Path.GetFileName(fileName); // we don't want to use FileInfo here... it requests FileIOPermission that we
                         // might now have... see VSWhidbey 527758
index d1927650d7f655b549f9d0143578694722d4d241..198f982db9c73f74a80beb4919dd0311dbfb230d 100644 (file)
@@ -101,11 +101,15 @@ using System.Configuration;
             {
                 if (s_CacheConfigSettings == null)
                 {
+#if MONO
+                    var settings = new RequestCachingSectionInternal();
+#else
                     RequestCachingSectionInternal settings = RequestCachingSectionInternal.GetSection();
 
                     s_DefaultGlobalBinding = new RequestCacheBinding (settings.DefaultCache, settings.DefaultHttpValidator, settings.DefaultCachePolicy);
                     s_DefaultHttpBinding = new RequestCacheBinding (settings.DefaultCache, settings.DefaultHttpValidator, settings.DefaultHttpCachePolicy);
                     s_DefaultFtpBinding = new RequestCacheBinding (settings.DefaultCache, settings.DefaultFtpValidator, settings.DefaultFtpCachePolicy);
+#endif
 
                     s_CacheConfigSettings = settings;
                 }
@@ -113,6 +117,22 @@ using System.Configuration;
         }
     }
 
+#if MONO
+    class RequestCacheValidator
+    {
+        public object CreateValidator ()
+        {
+            throw new NotImplementedException ();
+        }
+    }
+
+    class RequestCachingSectionInternal
+    {
+        // TODO: Implement
+        public readonly bool DisableAllCaching = true;
+    }
+#endif
+
     //
     //
     internal class RequestCacheBinding  {
index 13b735ef54e69e2dd038e17d30d4b352a4943e9b..cee3b6b2eb85a755c5891f1878b577424263d1ae 100644 (file)
@@ -17,7 +17,7 @@ namespace System.Net.Configuration
     using System.Security.Principal;
     using System.ComponentModel;
 
-
+#if !MONO
     public sealed class DefaultProxySection : ConfigurationSection
     {
         public DefaultProxySection()
@@ -134,9 +134,10 @@ namespace System.Net.Configuration
             base.Reset(defaultElement);
         }
     }
-
+#endif
     internal sealed class DefaultProxySectionInternal
     {
+#if !MONO
         [SecurityPermission(SecurityAction.Assert, Flags=SecurityPermissionFlag.ControlPrincipal)]
         internal DefaultProxySectionInternal(DefaultProxySection section)
         {
@@ -274,6 +275,50 @@ namespace System.Net.Configuration
                 this.webProxy.Credentials = SystemNetworkCredential.defaultCredential;
             }
         }
+#else
+
+        static IWebProxy GetDefaultProxy_UsingOldMonoCode()
+        {
+#if CONFIGURATION_DEP
+            DefaultProxySection sec = ConfigurationManager.GetSection ("system.net/defaultProxy") as DefaultProxySection;
+            WebProxy p;
+            
+            if (sec == null)
+                return GetSystemWebProxy ();
+            
+            ProxyElement pe = sec.Proxy;
+            
+            if ((pe.UseSystemDefault != ProxyElement.UseSystemDefaultValues.False) && (pe.ProxyAddress == null)) {
+                IWebProxy proxy = GetSystemWebProxy ();
+                
+                if (!(proxy is WebProxy))
+                    return proxy;
+                
+                p = (WebProxy) proxy;
+            } else
+                p = new WebProxy ();
+            
+            if (pe.ProxyAddress != null)
+                p.Address = pe.ProxyAddress;
+            
+            if (pe.BypassOnLocal != ProxyElement.BypassOnLocalValues.Unspecified)
+                p.BypassProxyOnLocal = (pe.BypassOnLocal == ProxyElement.BypassOnLocalValues.True);
+                
+            foreach(BypassElement elem in sec.BypassList)
+                p.BypassArrayList.Add(elem.Address);
+            
+            return p;
+#else
+            return GetSystemWebProxy ();
+#endif
+        }
+
+        static IWebProxy GetSystemWebProxy()
+        {
+            return System.Net.WebProxy.CreateDefaultProxy ();
+        }
+
+#endif
 
         internal static object ClassSyncObject
         {
@@ -292,6 +337,11 @@ namespace System.Net.Configuration
         {
             lock (DefaultProxySectionInternal.ClassSyncObject)
             {
+#if MONO
+                var res = new DefaultProxySectionInternal();
+                res.webProxy = GetDefaultProxy_UsingOldMonoCode ();
+                return res;
+#else
                 DefaultProxySection section = PrivilegedConfigurationManager.GetSection(ConfigurationStrings.DefaultProxySectionPath) as DefaultProxySection;
                 if (section == null)
                     return null;
@@ -306,6 +356,7 @@ namespace System.Net.Configuration
 
                     throw new ConfigurationErrorsException(SR.GetString(SR.net_config_proxy), exception);
                 }
+#endif
             }
         }
 
index 0df18d001be64a92f9fb759b5f5837e3e05b53c8..d405ca3f657cead1e92f6d19d15248f07e0edd43 100644 (file)
@@ -302,7 +302,9 @@ namespace System.Net {
             get {
                 //This check will not allow to use local user credentials at will.
                 //Hence the username will not be exposed to the network
+#if !DISABLE_CAS_USE
                 new EnvironmentPermission(EnvironmentPermissionAccess.Read, "USERNAME").Demand();
+#endif
                 return SystemNetworkCredential.defaultCredential;
             }
         }
@@ -311,7 +313,9 @@ namespace System.Net {
             get {
                 //This check will not allow to use local user credentials at will.
                 //Hence the username will not be exposed to the network
+#if !DISABLE_CAS_USE
                 new EnvironmentPermission(EnvironmentPermissionAccess.Read, "USERNAME").Demand();
+#endif
                 return SystemNetworkCredential.defaultCredential;
             }
         }
index 10dc8ecfd041a6d45227801b00f950d7217d8ad2..99e10caeaa1084dc04139ada3160e32697f25ead 100644 (file)
@@ -24,6 +24,7 @@ namespace System.Net {
     using System.Net.NetworkInformation;
     using System.Runtime.Serialization;
     using Microsoft.Win32;
+    using System.Collections.Generic;
 
     internal static class IntPtrHelper {
         /*
@@ -142,7 +143,9 @@ namespace System.Net {
 
         private static void DemandCallback(object state)
         {
+#if !DISABLE_CAS_USE
             ((CodeAccessPermission) state).Demand();
+#endif
         }
 
         // This is for checking if a hostname probably refers to this machine without going to DNS.
@@ -172,7 +175,6 @@ namespace System.Net {
         private static volatile IPAddress[] _LocalAddresses;
         private static object _LocalAddressesLock;
 
-#if MONO_NOT_IMPLEMENTED
 #if !FEATURE_PAL
 
         private static volatile NetworkAddressChangePolled s_AddressChange;
@@ -285,6 +287,19 @@ namespace System.Net {
         }
 
 #else // !FEATURE_PAL
+
+        internal static bool IsAddressLocal(IPAddress ipAddress) {
+            IPAddress[] localAddresses = NclUtilities.LocalAddresses;
+            for (int i = 0; i < localAddresses.Length; i++)
+            {
+                if (ipAddress.Equals(localAddresses[i], false))
+                {
+                    return true;
+                }
+            }
+            return false;
+        }
+
         private const int HostNameBufferLength = 256;
         internal static string _LocalDomainName;
 
@@ -293,6 +308,9 @@ namespace System.Net {
         //
         private static IPHostEntry GetLocalHost()
         {
+#if MONO
+            return Dns.GetHostByName (Dns.GetHostName ());
+#else
             //
             // IPv6 Changes: If IPv6 is enabled, we can't simply use the
             //               old IPv4 gethostbyname(null). Instead we need
@@ -335,6 +353,7 @@ namespace System.Net {
 
                 return Dns.NativeToHostEntry(nativePointer);
             }
+#endif
 
         } // GetLocalHost
 
@@ -400,7 +419,6 @@ namespace System.Net {
             }
         }
 #endif // !FEATURE_PAL
-#endif
 
         private static object LocalAddressesLock
         {
index 5f594fdd2cf4b770c4c169802eb739d7e6718468..9fbc8b428b32bfe951fbf2d1f89cb839eb924374 100644 (file)
@@ -8,7 +8,9 @@ namespace System.Net.NetworkInformation
     {
         /// Returns objects that describe the network interfaces on the local computer.
         public static NetworkInterface[] GetAllNetworkInterfaces(){
+#if !DISABLE_CAS_USE
             (new NetworkInformationPermission(NetworkInformationAccess.Read)).Demand();
+#endif
             return SystemNetworkInterface.GetNetworkInterfaces();
         }
 
index 1135be0891ca83a298461452d401ac4bb9d550f3..8567a6861f23536a6ae894576ebfb6a071ceb293 100644 (file)
@@ -4,6 +4,9 @@
 // </copyright>
 //------------------------------------------------------------------------------
 
+#if MONO
+#undef FEATURE_PAL
+#endif
 namespace System.Net {
     using System.Collections;
     using System.Collections.Generic;
@@ -53,6 +56,7 @@ namespace System.Net {
         private  AuthenticationLevel m_AuthenticationLevel;
         private  TokenImpersonationLevel m_ImpersonationLevel;
 #endif
+
         private RequestCachePolicy      m_CachePolicy;
         private RequestCacheProtocol    m_CacheProtocol;
         private RequestCacheBinding     m_CacheBinding;
@@ -361,7 +365,9 @@ namespace System.Net {
                 throw new ArgumentNullException("creator");
             }
 
+#if !DISABLE_CAS_USE
             ExceptionHelper.WebPermissionUnrestricted.Demand();
+#endif
 
             // Lock this object, then walk down PrefixList looking for a place to
             // to insert this prefix.
@@ -523,7 +529,11 @@ namespace System.Net {
                     lock (InternalSyncObject) {
                         if (s_PrefixList == null) {
                             GlobalLog.Print("WebRequest::Initialize(): calling ConfigurationManager.GetSection()");
+#if MONO
+                            s_PrefixList = PopulatePrefixList ();
+#else
                             s_PrefixList = WebRequestModulesSectionInternal.GetSection().WebRequestModules;
+#endif
                         }
                     }
                 }
@@ -535,6 +545,30 @@ namespace System.Net {
             }
         }
 
+#if MONO
+        static ArrayList PopulatePrefixList ()
+        {
+            var res = new ArrayList();
+
+#if MOBILE || !CONFIGURATION_DEP
+            IWebRequestCreate http = new HttpRequestCreator ();
+            res.Add(new WebRequestPrefixElement("http", http));
+            res.Add(new WebRequestPrefixElement("https", http));
+            res.Add(new WebRequestPrefixElement("file", new FileWebRequestCreator ()));
+            res.Add(new WebRequestPrefixElement("ftp", new FtpRequestCreator ()));
+#else
+            object cfg = ConfigurationManager.GetSection ("system.net/webRequestModules");
+            WebRequestModulesSection s = cfg as WebRequestModulesSection;
+            if (s != null) {
+                foreach (WebRequestModuleElement el in s.WebRequestModules)
+                    res.Add (new WebRequestPrefixElement(el.Prefix, el.Type));
+            }
+#endif
+            return res;
+        }
+#endif
+
+
         // constructors
 
         /// <devdoc>
@@ -588,8 +622,10 @@ namespace System.Net {
                 return RequestCacheManager.GetBinding(string.Empty).Policy;
             }
             set {
+#if !DISABLE_CAS_USE
                 // This is a replacement of RequestCachePermission demand since we are not including the latest in the product.
                 ExceptionHelper.WebPermissionUnrestricted.Demand();
+#endif
 
                 RequestCacheBinding binding = RequestCacheManager.GetBinding(string.Empty);
                 RequestCacheManager.SetBinding(string.Empty, new RequestCacheBinding(binding.Cache, binding.Validator, value));
@@ -975,7 +1011,7 @@ namespace System.Net {
             }
         }
 
-
+#if !MONO
         // Methods to retrieve the context of the "reading phase" and of the "writing phase" of the request.
         // Each request type can define what goes into what phase.  Typically, the writing phase corresponds to
         // GetRequestStream() and the reading phase to GetResponse(), but if there's no request body, both phases
@@ -996,7 +1032,7 @@ namespace System.Net {
         {
             throw ExceptionHelper.MethodNotImplementedException;
         }
-
+#endif
 
         //
         //
@@ -1072,13 +1108,17 @@ namespace System.Net {
         {
             get
             {
+#if !DISABLE_CAS_USE
                 ExceptionHelper.WebPermissionUnrestricted.Demand();
+#endif
                 return InternalDefaultWebProxy;
             }
 
             set
             {
+#if !DISABLE_CAS_USE
                 ExceptionHelper.WebPermissionUnrestricted.Demand();
+#endif
                 InternalDefaultWebProxy = value;
             }
         }
@@ -1088,13 +1128,20 @@ namespace System.Net {
         //
         public static IWebProxy GetSystemWebProxy()
         {
+#if !DISABLE_CAS_USE
             ExceptionHelper.WebPermissionUnrestricted.Demand();
+#endif
             return InternalGetSystemWebProxy();
         }
 
         internal static IWebProxy InternalGetSystemWebProxy()
         {
+#if MONO
+            // FIXME: Need to break mobile internal API
+            return WebProxy.CreateDefaultProxy();
+#else
             return new WebProxyWrapperOpaque(new WebProxy(true));
+#endif
         }
 
         //
@@ -1162,7 +1209,7 @@ namespace System.Net {
             }
         }
 
-
+#if !MONO
         //
         internal void SetupCacheProtocol(Uri uri)
         {
@@ -1242,5 +1289,6 @@ namespace System.Net {
                 s_EtwFireEndGetRequestStream(this, success, synchronous);
             }
         }
+#endif
     } // class WebRequest
 } // namespace System.Net
index 4d289ac7bc974be051af38c24b23102e412ac5a3..6ad9cbe9f415da661f409592584cf94c08d82230 100644 (file)
@@ -20,8 +20,13 @@ namespace System.Net
     {
         internal Semaphore(int initialCount, int maxCount) : base() {
             lock (this) {
+#if MONO
+                bool created;
+                Handle = System.Threading.Semaphore.CreateSemaphore_internal(initialCount, maxCount, null, out created);
+#else
                 // 
                 Handle = UnsafeNclNativeMethods.CreateSemaphore(IntPtr.Zero, initialCount, maxCount, IntPtr.Zero);
+#endif
             }
         }
 
@@ -36,14 +41,20 @@ namespace System.Net
 */
 
         internal bool ReleaseSemaphore() {
-#if DEBUG        
+#if MONO
+            bool fail;
+            var ret = System.Threading.Semaphore.ReleaseSemaphore_internal (Handle, 1, out fail);
+            return !fail;
+#else
+#if DEBUG
             int previousCount;
             bool success = UnsafeNclNativeMethods.ReleaseSemaphore(Handle, 1, out previousCount);        
             GlobalLog.Print("ReleaseSemaphore#"+ValidationHelper.HashString(this)+" success:"+success+" previousCount:"+previousCount.ToString());
             return success;
 #else            
             return UnsafeNclNativeMethods.ReleaseSemaphore(Handle, 1, IntPtr.Zero);
-#endif            
+#endif
+#endif
         }
 
         /*
index 059e88d5bcde16c8e502e603def82720c600ed11..c75a7136694cc52e0e2a78f7a3675fb631d843df 100644 (file)
@@ -182,7 +182,9 @@ namespace System.Net {
 
         static TimerThread() {
             s_ThreadEvents = new WaitHandle[] { s_ThreadShutdownEvent, s_ThreadReadyEvent };
+#if MONO_FEATURE_MULTIPLE_APPDOMAINS
             AppDomain.CurrentDomain.DomainUnload += new EventHandler(OnDomainUnload);
+#endif
         }
 
         /// <summary>
index ca05e1355e561793915794b0bdb735542ee2df37..dc7fdb26301b4cf69be900eb6bfd5857bb92cb6c 100644 (file)
@@ -414,7 +414,9 @@ namespace System.Net {
         /// </devdoc>
         [Obsolete("This method has been deprecated. Please use the proxy selected for you by default. http://go.microsoft.com/fwlink/?linkid=14202")]
         public static WebProxy GetDefaultProxy() {
+#if !DISABLE_CAS_USE
             ExceptionHelper.WebPermissionUnrestricted.Demand();
+#endif
             return new WebProxy(true);
         }
 
@@ -435,7 +437,9 @@ namespace System.Net {
             if (useRegistry) {
                 // just make the proxy advanced, don't populate with any settings
                 // note - this will happen in the context of the user performing the deserialization (their proxy settings get read)
+#if !DISABLE_CAS_USE
                 ExceptionHelper.WebPermissionUnrestricted.Demand();
+#endif
                 UnsafeUpdateFromRegistry();
                 return;
             }
@@ -497,6 +501,28 @@ namespace System.Net {
             }
         }
 
+#if MONO
+        public static IWebProxy CreateDefaultProxy ()
+        {
+#if MONOTOUCH
+            return Mono.Net.CFNetwork.GetDefaultProxy ();
+#elif MONODROID
+            // Return the system web proxy.  This only works for ICS+.
+            var data = AndroidPlatform.GetDefaultProxy ();
+            if (data != null)
+                return data;
+#else
+            if (Platform.IsMacOS) {
+                var data = Mono.Net.CFNetwork.GetDefaultProxy ();
+                if (data != null)
+                    return data;
+            }
+#endif
+
+            return new WebProxy (true);
+        }
+#endif
+
         // This constructor is used internally to make WebProxies that read their state from the registry.
         // 
         internal WebProxy(bool enableAutoproxy)
@@ -515,7 +541,7 @@ namespace System.Net {
         internal void UnsafeUpdateFromRegistry() {
             GlobalLog.Assert(!_UseRegistry, "WebProxy#{0}::UnsafeUpdateFromRegistry()|_UseRegistry ScriptEngine#{1}", ValidationHelper.HashString(this), ValidationHelper.HashString(m_ScriptEngine));
             _UseRegistry = true;
-#if !FEATURE_PAL
+#if !FEATURE_PAL || !MOBILE
             ScriptEngine = new AutoWebProxyScriptEngine(this, true);
             WebProxyData webProxyData = ScriptEngine.GetWebProxyData();
 
index 69fcc04a1eafc1b79bb484f7ad806712e6adc5a2..df2d72e1f830bd7cc0a9e1dabf166261c089e47d 100644 (file)
@@ -172,7 +172,9 @@ namespace System.Text.RegularExpressions {
 #endif
             }
             finally {
+#if !DISABLE_CAS_USE 
                 CodeAccessPermission.RevertAssert();
+#endif
             }
         }
 
@@ -202,7 +204,9 @@ namespace System.Text.RegularExpressions {
                 factory = c.FactoryInstanceFromCode(code, options);
             }
             finally {
+#if !DISABLE_CAS_USE
                 CodeAccessPermission.RevertAssert();
+#endif
             }
             return factory;
         }
@@ -243,7 +247,9 @@ namespace System.Text.RegularExpressions {
                     c.GenerateRegexType(pattern, options, fullname, regexes[i].IsPublic, code, tree, factory, mTimeout);
                 }
                 finally {
+#if !DISABLE_CAS_USE
                     CodeAccessPermission.RevertAssert();
+#endif
                 }
             }
         
@@ -3081,7 +3087,9 @@ namespace System.Text.RegularExpressions {
                 }
             }
             finally {
+#if !DISABLE_CAS_USE
                 CodeAccessPermission.RevertAssert();
+#endif
             }
         }
 
index 6f5e71e5eefde5f2c6a02b2b3c3a1c0952f226e9..f3cd61e2702157660b2e4507680d7e91da8e817d 100644 (file)
@@ -989,6 +989,7 @@ namespace System {
         [System.Security.SecurityCritical]  // auto-generated
         internal virtual String InternalToString()
         {
+#if !DISABLE_CAS_USE
             try 
             {
 #pragma warning disable 618
@@ -1001,6 +1002,7 @@ namespace System {
                 //under normal conditions there should be no exceptions
                 //however if something wrong happens we still can call the usual ToString
             }
+#endif
 
             // Get the current stack trace string.  On CoreCLR we don't bother
             // to try and include file/line-number information because all AppDomains
index 176fef96c62f09214d81dfd1d262182e3f8501a0..5e3d732b8e237f2a3852d83b798ff2b15eb6bea3 100644 (file)
@@ -5028,10 +5028,12 @@ namespace System
             return obj == (object)this;
         }
 
+#if !MONO
         public override int GetHashCode() 
         {
             return RuntimeHelpers.GetHashCode(this);
         }
+#endif
 
 #if !FEATURE_CORECLR
         public static bool operator ==(RuntimeType left, RuntimeType right)
index 3cb5f677d4b26dc517d32b85672fe3461ef733a2..cf8834c52c7388a4c1206e7cbc210442c2126415 100644 (file)
   -->\r
   <PropertyGroup>\r
     <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+$(ProjectDir)\..\jay\jay -ct &lt; $(ProjectDir)\..\jay\skeleton.cs $(ProjectDir)\parser\ILParser.jay > $(ProjectDir)\ILParser.cs
+
 
     </PreBuildEvent>\r
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
+$(ProjectDir)\..\jay\jay -ct &lt; $(ProjectDir)\..\jay\skeleton.cs $(ProjectDir)\parser\ILParser.jay > $(ProjectDir)\ILParser.cs
+
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 99759aac984fc441816824303b28c8c9a0879d25..cd7ce1ac68fe34b998cd241d6f2d6783873866ea 100644 (file)
@@ -2523,7 +2523,6 @@ namespace Mono.CSharp
 
                int TokenizePragmaWarningIdentifier (ref int c, ref bool identifier)
                {
-
                        if ((c >= '0' && c <= '9') || is_identifier_start_character (c)) {
                                int number;
 
@@ -2588,6 +2587,9 @@ namespace Mono.CSharp
                                while (c == ' ' || c == '\t')
                                        c = get_char ();
 
+                               if (c == '\n' || c == UnicodeLS || c == UnicodePS)
+                                       advance_line ();
+
                                return number;
                        }
 
index 63d6367309d7150bc430e8da642c61072b66a955..127df271c794c073834a48f79eb922e6c569c6da 100644 (file)
@@ -4482,8 +4482,8 @@ namespace Mono.CSharp {
                                        //
                                        // Uwrap delegate from Expression<T>
                                        //
-                                       q = TypeManager.GetTypeArguments (q)[0];
-                                       p = TypeManager.GetTypeArguments (p)[0];
+                                       q = TypeManager.GetTypeArguments (q) [0];
+                                       p = TypeManager.GetTypeArguments (p) [0];
                                }
 
                                var p_m = Delegate.GetInvokeMethod (p);
@@ -4510,10 +4510,10 @@ namespace Mono.CSharp {
                                // if p has a return type Y, and q is void returning, then C1 is the better conversion.
                                //
                                if (q.Kind == MemberKind.Void) {
-                                       return p.Kind != MemberKind.Void ? 1: 0;
+                                       return p.Kind != MemberKind.Void ? 1 : 0;
                                }
 
-                               var am = (AnonymousMethodExpression) a.Expr;
+                               var am = (AnonymousMethodExpression)a.Expr;
 
                                //
                                // When anonymous method is an asynchronous, and P has a return type Task<Y1>, and Q has a return type Task<Y2>
@@ -4521,8 +4521,8 @@ namespace Mono.CSharp {
                                //
                                if (p.IsGenericTask || q.IsGenericTask) {
                                        if (am.Block.IsAsync && p.IsGenericTask && q.IsGenericTask) {
-                                               q = q.TypeArguments[0];
-                                               p = p.TypeArguments[0];
+                                               q = q.TypeArguments [0];
+                                               p = p.TypeArguments [0];
                                        }
                                }
 
@@ -4548,11 +4548,63 @@ namespace Mono.CSharp {
                        if (argument_type == q)
                                return 2;
 
-                       //
-                       // The parameters are identicial and return type is not void, use better type conversion
-                       // on return type to determine better one
-                       //
-                       return BetterTypeConversion (ec, p, q);
+                       return IsBetterConversionTarget (ec, p, q);
+               }
+
+               static int IsBetterConversionTarget (ResolveContext rc, TypeSpec p, TypeSpec q)
+               {
+                       if ((p.Kind == MemberKind.Delegate || p.IsExpressionTreeType) && (q.Kind == MemberKind.Delegate || q.IsExpressionTreeType)) {
+
+                               if (p.Kind != MemberKind.Delegate) {
+                                       p = TypeManager.GetTypeArguments (p) [0];
+                               }
+
+                               if (q.Kind != MemberKind.Delegate) {
+                                       q = TypeManager.GetTypeArguments (q) [0];
+                               }
+
+                               var p_m = Delegate.GetInvokeMethod (p);
+                               var q_m = Delegate.GetInvokeMethod (q);
+
+                               p = p_m.ReturnType;
+                               q = q_m.ReturnType;
+
+                               //
+                               // if p is void returning, and q has a return type Y, then C2 is the better conversion.
+                               //
+                               if (p.Kind == MemberKind.Void) {
+                                       return q.Kind != MemberKind.Void ? 2 : 0;
+                               }
+
+                               //
+                               // if p has a return type Y, and q is void returning, then C1 is the better conversion.
+                               //
+                               if (q.Kind == MemberKind.Void) {
+                                       return p.Kind != MemberKind.Void ? 1 : 0;
+                               }
+
+                               return IsBetterConversionTarget (rc, p, q);
+                       }
+
+                       if (p.IsGenericTask && q.IsGenericTask) {
+                               q = q.TypeArguments [0];
+                               p = p.TypeArguments [0];
+                               return IsBetterConversionTarget (rc, p, q);
+                       }
+
+                       if (p.IsNullableType) {
+                               p = Nullable.NullableInfo.GetUnderlyingType (p);
+                               if (!BuiltinTypeSpec.IsPrimitiveType (p))
+                                       return 0;
+                       }
+
+                       if (q.IsNullableType) {
+                               q = Nullable.NullableInfo.GetUnderlyingType (q);
+                               if (!BuiltinTypeSpec.IsPrimitiveType (q))
+                                       return 0;
+                       }
+
+                       return BetterTypeConversion (rc, p, q);
                }
 
                //
@@ -4625,8 +4677,6 @@ namespace Mono.CSharp {
                                return 1;
                        }
 
-                       // FIXME: handle lifted operators
-
                        // TODO: this is expensive
                        Expression p_tmp = new EmptyExpression (p);
                        Expression q_tmp = new EmptyExpression (q);
index 1d781cde60f12caa2af4b5f9a35b1496bde53ea1..1190d549eb4fb10ef015db52f72d52f68fd2c1c6 100644 (file)
@@ -257,7 +257,7 @@ namespace Mono.CSharp
                        this.importer = importer;
                        domain = new Universe (UniverseOptions.MetadataOnly | UniverseOptions.ResolveMissingMembers | 
                                UniverseOptions.DisableFusion | UniverseOptions.DecodeVersionInfoAttributeBlobs |
-                               UniverseOptions.DeterministicOutput);
+                               UniverseOptions.DeterministicOutput | UniverseOptions.DisableDefaultAssembliesLookup);
                        
                        domain.AssemblyResolve += AssemblyReferenceResolver;
                        loaded_names = new List<Tuple<AssemblyName, string, Assembly>> ();
index 8ccdc6048167d21446df9c1c1f4bc5e1ecd055e3..46bedb4861240da0ed221219b55b8388781c1602 100644 (file)
   -->\r
   <PropertyGroup>\r
     <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
-$(ProjectDir)\..\jay\jay -ct &lt; $(ProjectDir)\..\jay\skeleton.cs $(ProjectDir)\cs-parser.jay > $(ProjectDir)\cs-parser.cs\r
+$(ProjectDir)\..\jay\jay -ct &lt; $(ProjectDir)\..\jay\skeleton.cs $(ProjectDir)\cs-parser.jay > $(ProjectDir)\cs-parser.cs
+
 
     </PreBuildEvent>\r
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
-$(ProjectDir)\..\jay\jay.exe -ct &lt; $(ProjectDir)\..\jay\skeleton.cs $(ProjectDir)\cs-parser.jay > $(ProjectDir)\cs-parser.cs\r
-\r
-    </PreBuildEvent>\r
+$(ProjectDir)\..\jay\jay -ct &lt; $(ProjectDir)\..\jay\skeleton.cs $(ProjectDir)\cs-parser.jay > $(ProjectDir)\cs-parser.cs\r
 \r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
 \r
+    </PreBuildEvent>\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index c56737e4394a42767e16c8815bec8e03e304a2ca..23eed1ddb29e9f237ace718da60a5a71f6db7c75 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 1c6b9d347850882f6bd6db0e76f3e4090d20b090..83cb5607a2e41b979e4c805593641f4627d2554b 100644 (file)
@@ -65,9 +65,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 17c30aa701d09d590e93a149d6607278854a4374..ed6ee53d3849be09e094d8c8987e8eb0c8c562b1 100644 (file)
@@ -68,9 +68,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 1f10b1f1dbd995c0b8b9326b297e83c86ad88b1b..e6b70afdcba4369a7a4ecdb09baea2eb89a16d2d 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 0acf13bae72a51f946136a837feec2c7912dd219..93d549db2a077a0030573e6f8cf9f82419d68074 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index af6fe461fb017091bb76e25379ef88d56edbb779..c7352101e5e015f53e45d6a9c4cbc9ed08e20c03 100644 (file)
@@ -72,9 +72,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 283425fdcba98b54cc3d6e07ac31c951c2b40a39..dc02b28ebcb10437a80bcda33a0ca7f9a55aeec7 100644 (file)
@@ -71,9 +71,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 93524351c73e2a528baf6ee2f22d228c3e768e45..fae60ac6a975c31f1e5b200ff265de11e6803773 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index de8e0e938b714a086a902c07c6fbc32a8547f3df..a032cb9bf230fadf6355f10ee48e6ac07f57003e 100644 (file)
@@ -75,9 +75,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
diff --git a/mcs/tests/test-935.cs b/mcs/tests/test-935.cs
new file mode 100644 (file)
index 0000000..c47d89d
--- /dev/null
@@ -0,0 +1,74 @@
+using System;
+using System.Threading.Tasks;
+using System.Linq.Expressions;
+
+public static class Program
+{
+       public delegate void DelegateVoid (int arg);
+       public delegate int DelegateInt (string arg);
+
+       public static int Main () 
+       { 
+               Foo (Bar);
+
+               TT (null);
+               NN (0);
+               NN2 (1);
+               Complex (null);
+               return 0;
+       }
+
+       static void TT (Task<string> a)
+       {
+       }
+
+       static void TT (Task<object> b)
+       {
+               throw new ApplicationException ("wrong overload");
+       }
+
+       static void NN (sbyte a)
+       {
+       }
+
+       static void NN (uint? b)
+       {
+               throw new ApplicationException ("wrong overload");
+       }
+
+       static void NN2 (sbyte? a)
+       {
+       }
+
+       static void NN2 (uint? b)
+       {
+               throw new ApplicationException ("wrong overload");
+       }
+
+       public static void Bar (int arg) 
+       {
+       }
+
+       public static int Bar (string arg)
+       { 
+               return  2;
+       }
+
+       public static void Foo (DelegateVoid input)
+       {
+               throw new ApplicationException ("wrong overload");
+       }
+
+       public static void Foo (DelegateInt input)
+       {
+       }
+
+       static void Complex (Expression<Func<Task<short>>> arg)
+       {
+       }
+
+       static void Complex (Expression<Func<Task<ulong>>> arg)
+       {
+               throw new ApplicationException ("wrong overload");
+       }
+}
\ No newline at end of file
diff --git a/mcs/tests/test-debug-30-ref.xml b/mcs/tests/test-debug-30-ref.xml
new file mode 100644 (file)
index 0000000..461f657
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<symbols>
+  <files>
+    <file id="1" name="test-debug-30.cs" checksum="d3addfa69f16faf00991ef839451a975" />
+  </files>
+  <methods>
+    <method token="0x6000001">
+      <sequencepoints />
+      <locals />
+      <scopes />
+    </method>
+    <method token="0x6000002">
+      <sequencepoints>
+        <entry il="0x0" row="7" col="2" file_ref="1" hidden="false" />
+        <entry il="0x1" row="8" col="3" file_ref="1" hidden="false" />
+        <entry il="0x6" row="9" col="2" file_ref="1" hidden="false" />
+      </sequencepoints>
+      <locals />
+      <scopes />
+    </method>
+    <method token="0x6000003">
+      <sequencepoints>
+        <entry il="0x0" row="15" col="2" file_ref="1" hidden="false" />
+        <entry il="0x1" row="16" col="3" file_ref="1" hidden="false" />
+        <entry il="0x6" row="17" col="2" file_ref="1" hidden="false" />
+      </sequencepoints>
+      <locals />
+      <scopes />
+    </method>
+  </methods>
+</symbols>
\ No newline at end of file
diff --git a/mcs/tests/test-debug-30.cs b/mcs/tests/test-debug-30.cs
new file mode 100644 (file)
index 0000000..78f0cdf
--- /dev/null
@@ -0,0 +1,18 @@
+class PragmaNewLinesParsing
+{
+#pragma warning disable RECS0029
+#pragma warning restore RECS0029
+
+       void Foo ()
+       {
+               return;
+       }
+
+#pragma warning disable RECS0029 // here
+#pragma warning restore RECS0029 /* end */
+
+       public static void Main ()
+       {
+               return;
+       }
+}
\ No newline at end of file
index 7ba3329b35d0b6ec07745f7a19c895346b2b589b..77762b44440ecdb2fbca11401b8f5ccae5aa0c96 100644 (file)
       </method>
     </type>
   </test>
+  <test name="test-935.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>73</size>
+      </method>
+      <method name="Void TT(System.Threading.Tasks.Task`1[System.String])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void TT(System.Threading.Tasks.Task`1[System.Object])" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="Void NN(SByte)" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void NN(System.Nullable`1[System.UInt32])" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="Void NN2(System.Nullable`1[System.SByte])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void NN2(System.Nullable`1[System.UInt32])" attrs="145">
+        <size>12</size>
+      </method>
+      <method name="Void Bar(Int32)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Int32 Bar(System.String)" attrs="150">
+        <size>10</size>
+      </method>
+      <method name="Void Foo(DelegateVoid)" attrs="150">
+        <size>12</size>
+      </method>
+      <method name="Void Foo(DelegateInt)" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void Complex(System.Linq.Expressions.Expression`1[System.Func`1[System.Threading.Tasks.Task`1[System.Int16]]])" attrs="145">
+        <size>2</size>
+      </method>
+      <method name="Void Complex(System.Linq.Expressions.Expression`1[System.Func`1[System.Threading.Tasks.Task`1[System.UInt64]]])" attrs="145">
+        <size>12</size>
+      </method>
+    </type>
+    <type name="Program+DelegateVoid">
+      <method name="Void Invoke(Int32)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+    <type name="Program+DelegateInt">
+      <method name="Int32 Invoke(System.String)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
+  </test>
   <test name="test-94.cs">
     <type name="Base">
       <method name="Int32 IVehicle.Start()" attrs="481">
       </method>
     </type>
   </test>
+  <test name="test-debug-30.cs">
+    <type name="PragmaNewLinesParsing">
+      <method name="Void Foo()" attrs="129">
+        <size>7</size>
+      </method>
+      <method name="Void Main()" attrs="150">
+        <size>7</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="test-decl-expr-01.cs">
     <type name="DeclarationExpression">
       <method name="Int32 Main()" attrs="150">
index 13b211ef6f82a6e579f356d1fa57d435dbf46043..2657ba32963f0bd34039d77c93976da8c731b50f 100644 (file)
@@ -71,9 +71,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 2e65b25556599b0164792ab96164f8e8b5f562b3..40cc077a60fe2237de9af9afc8975635a5f449a8 100644 (file)
@@ -63,9 +63,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index a68ba2c6e93071d2f4d9df208a93beb3bbca4006..ef7c94e26a1775d6b45fec208903de06233f35a6 100644 (file)
@@ -65,9 +65,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index f32acbaf025ee58108dc1b0d4999f3606c0f9026..69b39b8665abe053fd1ce5a29c940a3e20918f0b 100644 (file)
@@ -65,9 +65,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index d1ad68ece44401d5d9882ce0492767e3281ec1dd..fcac823667655241540db30c26a85efff866f638 100644 (file)
@@ -64,9 +64,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 9aecb586ec20f4eaf61579621a11fcf9df48afe7..7a24a4cd46a1863b4142b92f75ab495efdde10d2 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 75fa9f231dc941b5c85525b89ee1df08646c0faa..f33343cf5e6ebf08b04253e00df407d6df093393 100644 (file)
@@ -65,9 +65,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 85124b57703556d86bbd485acee9f2e3e0f48af4..22ebee6b91de23e5fedadfe4aca0d5bd1b3f156b 100644 (file)
@@ -66,9 +66,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 95e678069b123c261649fdd60f34f8bfb4ee7462..5fcf051eccfd77fdf17f66ecda420adea0893e56 100644 (file)
@@ -67,9 +67,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 8b1ad945095c64d208ea0ce2d8626209b6c68709..55c2aeb4283b7e621624cbb808044cac3accf1ab 100644 (file)
@@ -1571,6 +1571,15 @@ namespace CorCompare
                        if (res != 0)
                                return res;
 
+                       if (ma.HasGenericParameters != mb.HasGenericParameters)
+                               return ma.HasGenericParameters ? -1 : 1;
+
+                       if (ma.HasGenericParameters && mb.HasGenericParameters) {
+                               res = ma.GenericParameters.Count - mb.GenericParameters.Count;
+                               if (res != 0)
+                                       return res;
+                       }
+
                        // operators can differ by only return type
                        return string.CompareOrdinal (ma.ReturnType.FullName, mb.ReturnType.FullName);
                }
index 71c7097d0077661b012d0dcb7c1244f2b60a3363..1da92c6446f91a190544a38785d58861cbee36a1 100644 (file)
@@ -65,9 +65,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 54549acb43e4aed4c5973b8032c245dffa70483d..c28f23987fcefec757b937845481b8ebe524463c 100644 (file)
@@ -63,9 +63,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index f846bfba6fc9764572804f67287cca003a08fb60..28c7350a7c95ef0f55ade2a1a785e2cfc2a900cd 100644 (file)
@@ -64,9 +64,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index ae747a2deb1afc40f01454d678f20a5c0f3964eb..4d15a18b0e9200cfd4431aba39e22241984a82ce 100644 (file)
@@ -63,9 +63,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index cbad50967717b22005207f8ec1e69aaf7f6bea79..01da80aef2a12309fc8c123653817e9414e96448 100644 (file)
@@ -63,9 +63,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 20db328a8af770f21de63e10fa40cf34b6092414..fb1472e31a3e280e4fd0c6ad4daeff130b542f04 100644 (file)
@@ -64,9 +64,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 84ac75ad8a9a338aedd7b785ed27002557a61266..508aee2f63b8809b1a3c395b65e24bdff7352d26 100644 (file)
@@ -63,9 +63,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index bbde4e73c934f2501b20ba361b7b7fe478c4c41d..7c3ce2b390a7111af0811ec2649f88d0bdaacc23 100644 (file)
@@ -65,9 +65,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 8be8be14c97f9f5e9a8c4ad7e02c0411fec9912f..f8aa6becff009e0dcfece71045761a8231257b6a 100644 (file)
@@ -80,9 +80,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index bcc2fae33aec5795fbd2d8c09f6ea106c92cc8ad..2dfe29a9fa23cf5c6f99f7ddfc90143b2f319f12 100644 (file)
@@ -63,9 +63,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index d836e6dcf5dcfb744784d863aa8d4b52dc15caab..01cd3e394e3ef1f9be3fe5423bc3377b20729234 100644 (file)
@@ -63,9 +63,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index ce1500aa710b86ebefa2e6851fcb33b41d7d543e..2c8b983ec80361220d93fd99f10066c3bc2a28fe 100644 (file)
@@ -65,9 +65,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 24bb7435759cd7d3990c9cce6f609653a111b2d4..c417ab01240d00cfaf6f12f99339d9df3647f10f 100644 (file)
@@ -66,9 +66,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 80d259a2355f7068d273bf819cb95ff380249cad..cfff038a83180de83a050e8ef3cf71352ff92d37 100644 (file)
@@ -89,9 +89,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index e8c7b70322c6845f98fc71aa5598e185cd465a34..7d1897587fe4b05a0060720fa1fd32666d7ed0fd 100644 (file)
@@ -65,9 +65,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 92fc95c91f12e5a9cb6264dbda65c233aba2ab30..48b315986db977ce8296989159c35500806bc031 100644 (file)
@@ -6,17 +6,12 @@ LOCAL_MCS_FLAGS =
 LIB_REFS = System.Xml System
 PROGRAM = mconfig.exe
 
-BUILT_SOURCES=Mono.MonoConfig/consts.cs
-
-Mono.MonoConfig/consts.cs: Mono.MonoConfig/consts.cs.in
-       sed -e "s;@MONO_SYSCONFDIR@;$(sysconfdir);g" < $< > $@
-
 install-local: install-local-data
 
 install-local-data:
        $(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/mono/mconfig/
        $(INSTALL_DATA) data/config.xml $(DESTDIR)$(sysconfdir)/mono/mconfig
 
-EXTRA_DISTFILES = TODO data/config.xml Mono.MonoConfig/consts.cs.in
+EXTRA_DISTFILES = TODO data/config.xml 
 
 include ../../build/executable.make
diff --git a/mcs/tools/mconfig/Mono.MonoConfig/consts.cs.in b/mcs/tools/mconfig/Mono.MonoConfig/consts.cs.in
deleted file mode 100644 (file)
index 8b7cbbe..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-//
-// Authors:
-//   Marek Habersack (mhabersack@novell.com)
-//
-// (C) 2007 Novell, Inc
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.IO;
-
-namespace Mono.MonoConfig
-{
-       public class Constants
-       {
-               public static readonly string GlobalConfigPath;
-
-               static Constants ()
-               {
-                       GlobalConfigPath = String.Format ("@MONO_SYSCONFDIR@{0}mono{0}mconfig{0}config.xml",
-                                                         Path.DirectorySeparatorChar);
-               }
-       }
-}
index 975f95d5aa1a3e89632be2f8cc137d472ea9c366..b7d609413570369bb804b5d8fa7a9a1dde28f182 100644 (file)
@@ -67,8 +67,7 @@
     <Compile Include="Mono.MonoConfig\IDocumentNodeHandler.cs" />\r
     <Compile Include="Mono.MonoConfig\IFeatureGenerator.cs" />\r
     <Compile Include="Mono.MonoConfig\IStorageConsumer.cs" />\r
-    <Compile Include="Mono.MonoConfig\Section.cs" />\r
-    <Compile Include="Mono.MonoConfig\consts.cs" />\r  </ItemGroup>\r
+    <Compile Include="Mono.MonoConfig\Section.cs" />\r  </ItemGroup>\r
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r
        Other similar extension points exist, see Microsoft.Common.targets.\r
   <Target Name="BeforeBuild">\r
@@ -83,9 +82,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 5887f739dbbfb43b1102445f635a313867e17be3..7fc9f0bc97b62be945c9724e047fbd6a871b3248 100644 (file)
@@ -270,7 +270,7 @@ namespace Mono.MonoConfig
        class MConfig
        {
                static string[] configPaths = {
-                       Constants.GlobalConfigPath,
+                       Path.GetFullPath (Path.Combine (Environment.CommandLine, "..", "..", "..","..", "etc", "mono", "mconfig", "config.xml")),
                        Path.Combine (ConfigPath, "config.xml"),
                        Path.Combine (".", "mconfig.xml"),
                        null
index ccc17d9e157696cdf1440fb46639d54ee4eb81ac..31f5f4795db9f1253db4ca688d58a0fdec746ba6 100644 (file)
@@ -64,9 +64,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index efb76cbf9e0dea90c21deeae424c932d5d57c504..c319f54ecfcd67efb50bdd224b2bcdbfbb9df41c 100644 (file)
@@ -183,12 +183,12 @@ check-monodocer-dropns-multi: $(PROGRAM)
        $(MAKE) Test/DocTest-DropNS-unified-multitest.dll
 
        # mdoc update for both classic and unified
-       $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-CLASSIC) --api-style=classic -multiassembly
-       $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-UNIFIED) --api-style=unified --dropns Test/DocTest-DropNS-unified.dll=MyFramework --dropns Test/DocTest-DropNS-unified-multitest.dll=MyFramework -multiassembly
+       $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-CLASSIC) --api-style=classic 
+       $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-UNIFIED) --api-style=unified --dropns Test/DocTest-DropNS-unified.dll=MyFramework --dropns Test/DocTest-DropNS-unified-multitest.dll=MyFramework 
        
        # now run it again to verify idempotency
-       $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-CLASSIC) --api-style=classic -multiassembly
-       $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-UNIFIED) --api-style=unified --dropns Test/DocTest-DropNS-unified.dll=MyFramework --dropns Test/DocTest-DropNS-unified-multitest.dll=MyFramework -multiassembly
+       $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-CLASSIC) --api-style=classic 
+       $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-UNIFIED) --api-style=unified --dropns Test/DocTest-DropNS-unified.dll=MyFramework --dropns Test/DocTest-DropNS-unified-multitest.dll=MyFramework 
        
        diff --exclude=.svn -rup Test/en.expected-dropns-multi Test/en.actual
 
@@ -205,8 +205,8 @@ check-monodocer-dropns-multi-withexisting: $(PROGRAM)
        $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual Test/DocTest-DropNS-unified.dll --api-style=unified --dropns Test/DocTest-DropNS-unified.dll=MyFramework 
        
        # mdoc update for both classic and unified
-       $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-CLASSIC) --api-style=classic -multiassembly
-       $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-UNIFIED) --api-style=unified --dropns Test/DocTest-DropNS-unified.dll=MyFramework --dropns Test/DocTest-DropNS-unified-multitest.dll=MyFramework -multiassembly
+       $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-CLASSIC) --api-style=classic 
+       $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-UNIFIED) --api-style=unified --dropns Test/DocTest-DropNS-unified.dll=MyFramework --dropns Test/DocTest-DropNS-unified-multitest.dll=MyFramework 
        
        diff --exclude=.svn -rup Test/en.expected-dropns-multi-withexisting Test/en.actual
 
index a8f1ccc50290aeeeb70422e0aec4a93274f6528b..dc94c3a50b827a931eeae57f6e891f0428fef047 100644 (file)
@@ -135,7 +135,7 @@ class MDocUpdater : MDocCommand
        
        string apistyle = string.Empty;
        bool isClassicRun;
-       bool multiassembly;
+       
        bool delete;
        bool show_exceptions;
        bool no_assembly_versions, ignore_missing_types;
@@ -194,7 +194,14 @@ class MDocUpdater : MDocCommand
        {
                return !string.IsNullOrWhiteSpace (droppedNamespace);
        }
-
+       
+       /// <summary>Logic flag to signify that we should list assemblies at the method level, since there are multiple
+       /// assemblies for a given type/method.</summary>
+       public bool IsMultiAssembly {
+               get { 
+                       return apistyle == "classic" || apistyle == "unified";
+               }
+       }
        
        static List<string> droppedAssemblies = new List<string>();
 
@@ -281,12 +288,9 @@ class MDocUpdater : MDocCommand
                        { "preserve",
                                "Do not delete members that don't exist in the assembly, but rather mark them as preserved.",
                                v => PreserveTag = "true" },
-                       { "multiassembly",
-                               "Allow types to be in multiple assemblies.",
-                               v => multiassembly = true },
                        { "api-style=",
                                "Denotes the apistyle. Currently, only `classic` and `unified` are supported. `classic` set of assemblies should be run first, immediately followed by 'unified' assemblies with the `dropns` parameter.",
-                               v => apistyle = v.ToLowerInvariant ()},
+                               v => { apistyle = v.ToLowerInvariant (); }},
                };
                var assemblies = Parse (p, args, "update", 
                                "[OPTIONS]+ ASSEMBLIES",
@@ -787,7 +791,7 @@ class MDocUpdater : MDocCommand
        private void AddIndexAssembly (AssemblyDefinition assembly, XmlElement parent)
        {
                XmlElement index_assembly = null;
-               if (multiassembly) 
+               if (IsMultiAssembly) 
                        index_assembly = (XmlElement)parent.SelectSingleNode ("Assembly[@Name='"+ assembly.Name.Name +"']");
                
                if (index_assembly == null) 
@@ -867,7 +871,7 @@ class MDocUpdater : MDocCommand
                
                XmlElement index_types = WriteElement(index.DocumentElement, "Types");
                XmlElement index_assemblies = WriteElement(index.DocumentElement, "Assemblies");
-               if (!multiassembly) 
+               if (!IsMultiAssembly) 
                        index_assemblies.RemoveAll ();
 
 
@@ -1765,7 +1769,7 @@ class MDocUpdater : MDocCommand
                WriteElementText(me, "MemberType", GetMemberType(mi));
 
                if (!no_assembly_versions) {
-                       if (!multiassembly)
+                       if (!IsMultiAssembly)
                                UpdateAssemblyVersions (me, mi, true);
                        else {
                                var node = AddAssemblyNameToNode (me, mi.Module);
@@ -2013,7 +2017,10 @@ class MDocUpdater : MDocCommand
                member.AppendChild (link);
                AddTargets (em, info);
 
-               extensionMethods.Add (em);
+               var sig = em.SelectSingleNode ("Member/MemberSignature[@Language='C#']/@Value");
+               if (!IsMultiAssembly || (IsMultiAssembly && sig != null && !extensionMethods.Any (ex => ex.SelectSingleNode ("Member/MemberSignature[@Language='C#']/@Value").Value == sig.Value))) {
+                       extensionMethods.Add (em);
+               }
        }
 
        private static void RemoveExcept (XmlNode node, string[] except)
@@ -2404,7 +2411,7 @@ class MDocUpdater : MDocCommand
        
        private bool UpdateAssemblyVersions(XmlElement root, AssemblyDefinition assembly, string[] assemblyVersions, bool add)
        {
-               if (multiassembly)
+               if (IsMultiAssembly)
                        return false;
                        
                XmlElement av = (XmlElement) root.SelectSingleNode ("AssemblyVersions");
index 303c58e8882b0a65ea59086460b6763f8e6ede12..b9cbce549bf5c6f2c2d614cea5c67465bbba1022 100644 (file)
@@ -21,6 +21,9 @@ namespace MyFramework.MyNamespace {
                public string WillDeleteInV2Classic {get;set;}
                #endif
        }
+       public static class MyClassExtensions {
+               public static bool AnExtension (this MyClass value) { return false; }
+       }
 
        #if DELETETEST 
        public class TypeOnlyInClassic {}
index b4fcc9ea01b867f443912233f6fffcf06d8e53b1..a11dcb9c2c870c8b3c73c2bf2e195a6065100b37 100644 (file)
@@ -22,6 +22,9 @@ namespace MyNamespace {
                #endif
        }
 
+       public static class MyClassExtensions {
+               public static bool AnExtension (this MyClass value) { return false; }
+       }
        #if DELETETEST
        public struct nint {
 
index 77388be8815e6d2dd07ddcf53b72fdc006852272..317b6a61848439d00608f98cb1a02be2166c40c7 100644 (file)
       <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
       <MemberType>Constructor</MemberType>
       <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <Parameters />
       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(int32 value) cil managed" />
       <MemberType>Method</MemberType>
       <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <ReturnValue>
       <MemberSignature Language="ILAsm" Value=".property instance string MyProperty" />
       <MemberType>Property</MemberType>
       <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <ReturnValue>
@@ -81,6 +87,7 @@
       <MemberSignature Language="ILAsm" Value=".property instance float64 OnlyInClassic" />
       <MemberType>Property</MemberType>
       <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <ReturnValue>
       <MemberSignature Language="ILAsm" Value=".property instance char OnlyInUnified" />
       <MemberType>Property</MemberType>
       <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <ReturnValue>
diff --git a/mcs/tools/mdoc/Test/en.expected-dropns-classic-v1/MyFramework.MyNamespace/MyClassExtensions.xml b/mcs/tools/mdoc/Test/en.expected-dropns-classic-v1/MyFramework.MyNamespace/MyClassExtensions.xml
new file mode 100644 (file)
index 0000000..a11fafe
--- /dev/null
@@ -0,0 +1,47 @@
+<Type Name="MyClassExtensions" FullName="MyFramework.MyNamespace.MyClassExtensions">
+  <TypeSignature Language="C#" Value="public static class MyClassExtensions" />
+  <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit MyClassExtensions extends System.Object" />
+  <AssemblyInfo apistyle="classic">
+    <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+    <AssemblyVersion>0.0.0.0</AssemblyVersion>
+  </AssemblyInfo>
+  <AssemblyInfo apistyle="unified">
+    <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+    <AssemblyVersion>0.0.0.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Base>
+    <BaseTypeName>System.Object</BaseTypeName>
+  </Base>
+  <Interfaces />
+  <Docs>
+    <summary>To be added.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+  <Members>
+    <Member MemberName="AnExtension">
+      <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+      <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Boolean</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+      </Parameters>
+      <Docs>
+        <param name="value">To be added.</param>
+        <summary>To be added.</summary>
+        <returns>To be added.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+  </Members>
+</Type>
index edacc723f54ac08993c55589023916a935d329c6..330a3895e2d6f820093a061b0a24f8bf32323fb5 100644 (file)
@@ -1,5 +1,15 @@
 <Overview>
   <Assemblies>
+    <Assembly Name="DocTest-DropNS-classic" Version="0.0.0.0">
+      <Attributes>
+        <Attribute>
+          <AttributeName>System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute+DebuggingModes.IgnoreSymbolStoreSequencePoints)</AttributeName>
+        </Attribute>
+        <Attribute>
+          <AttributeName>System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)</AttributeName>
+        </Attribute>
+      </Attributes>
+    </Assembly>
     <Assembly Name="DocTest-DropNS-unified" Version="0.0.0.0">
       <Attributes>
         <Attribute>
   <Types>
     <Namespace Name="MyFramework.MyNamespace">
       <Type Name="MyClass" Kind="Class" />
+      <Type Name="MyClassExtensions" Kind="Class" />
     </Namespace>
   </Types>
   <Title>DocTest-DropNS-classic</Title>
+  <ExtensionMethods>
+    <ExtensionMethod>
+      <Targets>
+        <Target Type="T:MyFramework.MyNamespace.MyClass" />
+      </Targets>
+      <Member MemberName="AnExtension">
+        <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+        <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+        <MemberType>ExtensionMethod</MemberType>
+        <ReturnValue>
+          <ReturnType>System.Boolean</ReturnType>
+        </ReturnValue>
+        <Parameters>
+          <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+        </Parameters>
+        <Docs>
+          <param name="value">To be added.</param>
+          <summary>To be added.</summary>
+        </Docs>
+        <Link Type="MyFramework.MyNamespace.MyClassExtensions" Member="M:MyFramework.MyNamespace.MyClassExtensions.AnExtension(MyFramework.MyNamespace.MyClass)" />
+      </Member>
+    </ExtensionMethod>
+  </ExtensionMethods>
 </Overview>
index 77388be8815e6d2dd07ddcf53b72fdc006852272..317b6a61848439d00608f98cb1a02be2166c40c7 100644 (file)
       <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
       <MemberType>Constructor</MemberType>
       <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <Parameters />
       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(int32 value) cil managed" />
       <MemberType>Method</MemberType>
       <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <ReturnValue>
       <MemberSignature Language="ILAsm" Value=".property instance string MyProperty" />
       <MemberType>Property</MemberType>
       <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <ReturnValue>
@@ -81,6 +87,7 @@
       <MemberSignature Language="ILAsm" Value=".property instance float64 OnlyInClassic" />
       <MemberType>Property</MemberType>
       <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <ReturnValue>
       <MemberSignature Language="ILAsm" Value=".property instance char OnlyInUnified" />
       <MemberType>Property</MemberType>
       <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <ReturnValue>
diff --git a/mcs/tools/mdoc/Test/en.expected-dropns-classic-withsecondary/MyFramework.MyNamespace/MyClassExtensions.xml b/mcs/tools/mdoc/Test/en.expected-dropns-classic-withsecondary/MyFramework.MyNamespace/MyClassExtensions.xml
new file mode 100644 (file)
index 0000000..a11fafe
--- /dev/null
@@ -0,0 +1,47 @@
+<Type Name="MyClassExtensions" FullName="MyFramework.MyNamespace.MyClassExtensions">
+  <TypeSignature Language="C#" Value="public static class MyClassExtensions" />
+  <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit MyClassExtensions extends System.Object" />
+  <AssemblyInfo apistyle="classic">
+    <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+    <AssemblyVersion>0.0.0.0</AssemblyVersion>
+  </AssemblyInfo>
+  <AssemblyInfo apistyle="unified">
+    <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+    <AssemblyVersion>0.0.0.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Base>
+    <BaseTypeName>System.Object</BaseTypeName>
+  </Base>
+  <Interfaces />
+  <Docs>
+    <summary>To be added.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+  <Members>
+    <Member MemberName="AnExtension">
+      <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+      <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Boolean</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+      </Parameters>
+      <Docs>
+        <param name="value">To be added.</param>
+        <summary>To be added.</summary>
+        <returns>To be added.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+  </Members>
+</Type>
index a920ce2f499be95356c1c871a34f1ad37f34f4ce..0e02038a020f0effe409983a68c7745ef17c4236 100644 (file)
     <remarks>To be added.</remarks>
   </Docs>
   <Members>
-    <Member MemberName=".ctor">
+    <Member MemberName=".ctor" apistyle="classic">
       <MemberSignature Language="C#" Value="public MyOtherClass ();" />
       <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
       <MemberType>Constructor</MemberType>
-      <AssemblyInfo>
+      <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <Parameters />
         <remarks>To be added.</remarks>
       </Docs>
     </Member>
-    <Member MemberName="Hello">
+    <Member MemberName="Hello" apistyle="classic">
       <MemberSignature Language="C#" Value="public float Hello (int value);" />
       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(int32 value) cil managed" />
       <MemberType>Method</MemberType>
-      <AssemblyInfo>
+      <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <ReturnValue>
         <remarks>To be added.</remarks>
       </Docs>
     </Member>
-    <Member MemberName="MyProperty">
+    <Member MemberName="MyProperty" apistyle="classic">
       <MemberSignature Language="C#" Value="public string MyProperty { get; set; }" />
       <MemberSignature Language="ILAsm" Value=".property instance string MyProperty" />
       <MemberType>Property</MemberType>
-      <AssemblyInfo>
+      <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <ReturnValue>
index d0fb593627f3766e62c6fd348e6b96841a4b892d..3620aa8d0aa62ee29fff4c171fa457b5bdd67289 100644 (file)
@@ -1,5 +1,15 @@
 <Overview>
   <Assemblies>
+    <Assembly Name="DocTest-DropNS-classic" Version="0.0.0.0">
+      <Attributes>
+        <Attribute>
+          <AttributeName>System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute+DebuggingModes.IgnoreSymbolStoreSequencePoints)</AttributeName>
+        </Attribute>
+        <Attribute>
+          <AttributeName>System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)</AttributeName>
+        </Attribute>
+      </Attributes>
+    </Assembly>
     <Assembly Name="DocTest-DropNS-unified" Version="0.0.0.0">
       <Attributes>
         <Attribute>
   <Types>
     <Namespace Name="MyFramework.MyNamespace">
       <Type Name="MyClass" Kind="Class" />
+      <Type Name="MyClassExtensions" Kind="Class" />
     </Namespace>
     <Namespace Name="MyFramework.MyOtherNamespace">
       <Type Name="MyOtherClass" Kind="Class" />
     </Namespace>
   </Types>
   <Title>Untitled</Title>
+  <ExtensionMethods>
+    <ExtensionMethod>
+      <Targets>
+        <Target Type="T:MyFramework.MyNamespace.MyClass" />
+      </Targets>
+      <Member MemberName="AnExtension">
+        <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+        <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+        <MemberType>ExtensionMethod</MemberType>
+        <ReturnValue>
+          <ReturnType>System.Boolean</ReturnType>
+        </ReturnValue>
+        <Parameters>
+          <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+        </Parameters>
+        <Docs>
+          <param name="value">To be added.</param>
+          <summary>To be added.</summary>
+        </Docs>
+        <Link Type="MyFramework.MyNamespace.MyClassExtensions" Member="M:MyFramework.MyNamespace.MyClassExtensions.AnExtension(MyFramework.MyNamespace.MyClass)" />
+      </Member>
+    </ExtensionMethod>
+  </ExtensionMethods>
 </Overview>
index 1ff3447bab2cbf2ea7bed3a8c06f5337bffa4352..13e6364a07b37b639c9c073dd7eac088da3594c4 100644 (file)
       <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
       <MemberType>Constructor</MemberType>
       <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <Parameters />
       <MemberSignature Language="ILAsm" Value=".property instance string AddedInV2" />
       <MemberType>Property</MemberType>
       <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <ReturnValue>
@@ -58,6 +62,7 @@
       <MemberSignature Language="ILAsm" Value=".property instance string AddedInV2Classic" />
       <MemberType>Property</MemberType>
       <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <ReturnValue>
@@ -74,6 +79,7 @@
       <MemberSignature Language="ILAsm" Value=".property instance string AddedInV2Unified" />
       <MemberType>Property</MemberType>
       <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <ReturnValue>
       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(int32 value) cil managed" />
       <MemberType>Method</MemberType>
       <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <ReturnValue>
       <MemberSignature Language="ILAsm" Value=".property instance string InBoth" />
       <MemberType>Property</MemberType>
       <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <ReturnValue>
       <MemberSignature Language="ILAsm" Value=".property instance string InBothClassic" />
       <MemberType>Property</MemberType>
       <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <ReturnValue>
       <MemberSignature Language="ILAsm" Value=".property instance valuetype MyFramework.MyNamespace.nint InBothMagicType" apistyle="unified" />
       <MemberType>Property</MemberType>
       <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <ReturnValue>
       <MemberSignature Language="ILAsm" Value=".property instance string InBothUnified" />
       <MemberType>Property</MemberType>
       <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <ReturnValue>
       <MemberSignature Language="ILAsm" Value=".property instance string MyProperty" />
       <MemberType>Property</MemberType>
       <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <ReturnValue>
       <MemberSignature Language="ILAsm" Value=".property instance float64 OnlyInClassic" />
       <MemberType>Property</MemberType>
       <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <ReturnValue>
       <MemberSignature Language="ILAsm" Value=".property instance char OnlyInUnified" />
       <MemberType>Property</MemberType>
       <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <ReturnValue>
diff --git a/mcs/tools/mdoc/Test/en.expected-dropns-delete/MyFramework.MyNamespace/MyClassExtensions.xml b/mcs/tools/mdoc/Test/en.expected-dropns-delete/MyFramework.MyNamespace/MyClassExtensions.xml
new file mode 100644 (file)
index 0000000..3edb15b
--- /dev/null
@@ -0,0 +1,47 @@
+<Type Name="MyClassExtensions" FullName="MyFramework.MyNamespace.MyClassExtensions">
+  <TypeSignature Language="C#" Value="public static class MyClassExtensions" />
+  <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit MyClassExtensions extends System.Object" />
+  <AssemblyInfo apistyle="classic">
+    <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
+    <AssemblyVersion>0.0.0.0</AssemblyVersion>
+  </AssemblyInfo>
+  <AssemblyInfo apistyle="unified">
+    <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
+    <AssemblyVersion>0.0.0.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Base>
+    <BaseTypeName>System.Object</BaseTypeName>
+  </Base>
+  <Interfaces />
+  <Docs>
+    <summary>To be added.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+  <Members>
+    <Member MemberName="AnExtension">
+      <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+      <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Boolean</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+      </Parameters>
+      <Docs>
+        <param name="value">To be added.</param>
+        <summary>To be added.</summary>
+        <returns>To be added.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+  </Members>
+</Type>
index 7e6adf24eb3cabbef8a1b7267c9d36e811c6147e..442a2d7c543c3c068fbf6ee29852c6975e0c668e 100644 (file)
     <remarks>To be added.</remarks>
   </Docs>
   <Members>
-    <Member MemberName=".ctor">
+    <Member MemberName=".ctor" apistyle="classic">
       <MemberSignature Language="C#" Value="public TypeOnlyInClassic ();" />
       <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
       <MemberType>Constructor</MemberType>
-      <AssemblyInfo>
+      <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <Parameters />
index ac5394fb6d1a2335bb5aba753001a5ba8b08c94a..07c03dcff7698b5fa71ecbf634f2603e513aacc4 100644 (file)
@@ -1,6 +1,10 @@
 <Type Name="WillDelete" FullName="MyFramework.MyNamespace.WillDelete">
   <TypeSignature Language="C#" Value="public class WillDelete" />
   <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit WillDelete extends System.Object" />
+  <AssemblyInfo apistyle="unified">
+    <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
+    <AssemblyVersion>0.0.0.0</AssemblyVersion>
+  </AssemblyInfo>
   <Base>
     <BaseTypeName>System.Object</BaseTypeName>
   </Base>
@@ -15,6 +19,7 @@
       <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
       <MemberType>Constructor</MemberType>
       <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <Parameters />
@@ -28,6 +33,7 @@
       <MemberSignature Language="ILAsm" Value=".property instance string Name" />
       <MemberType>Property</MemberType>
       <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
         <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <ReturnValue>
index 0988450d779f6a8d4525b843aa6582e611a9c05a..02836fe971389cfac70a04298c3a339d704f6d1b 100644 (file)
@@ -1,5 +1,15 @@
 <Overview>
   <Assemblies>
+    <Assembly Name="DocTest-DropNS-classic-deletetest" Version="0.0.0.0">
+      <Attributes>
+        <Attribute>
+          <AttributeName>System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute+DebuggingModes.IgnoreSymbolStoreSequencePoints)</AttributeName>
+        </Attribute>
+        <Attribute>
+          <AttributeName>System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)</AttributeName>
+        </Attribute>
+      </Attributes>
+    </Assembly>
     <Assembly Name="DocTest-DropNS-unified-deletetest" Version="0.0.0.0">
       <Attributes>
         <Attribute>
   <Types>
     <Namespace Name="MyFramework.MyNamespace">
       <Type Name="MyClass" Kind="Class" />
+      <Type Name="MyClassExtensions" Kind="Class" />
       <Type Name="nint" Kind="Structure" />
     </Namespace>
   </Types>
   <Title>DocTest-DropNS-classic-deletetest</Title>
+  <ExtensionMethods>
+    <ExtensionMethod>
+      <Targets>
+        <Target Type="T:MyFramework.MyNamespace.MyClass" />
+      </Targets>
+      <Member MemberName="AnExtension">
+        <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+        <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+        <MemberType>ExtensionMethod</MemberType>
+        <ReturnValue>
+          <ReturnType>System.Boolean</ReturnType>
+        </ReturnValue>
+        <Parameters>
+          <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+        </Parameters>
+        <Docs>
+          <param name="value">To be added.</param>
+          <summary>To be added.</summary>
+        </Docs>
+        <Link Type="MyFramework.MyNamespace.MyClassExtensions" Member="M:MyFramework.MyNamespace.MyClassExtensions.AnExtension(MyFramework.MyNamespace.MyClass)" />
+      </Member>
+    </ExtensionMethod>
+  </ExtensionMethods>
 </Overview>
index e73f7d55ff31f2a434f8c8296f6ae479c3237a7e..a88b428a94eb9e51ac7924e677e6caa81369ea9c 100644 (file)
       <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
       <MemberType>Constructor</MemberType>
       <AssemblyInfo apistyle="classic">
-        <AssemblyVersion>0.0.0.0</AssemblyVersion>
         <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <AssemblyInfo apistyle="unified">
-        <AssemblyVersion>0.0.0.0</AssemblyVersion>
         <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <AssemblyInfo apistyle="classic">
         <AssemblyName>DocTest-DropNS-classic-multitest</AssemblyName>
       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(int32 value) cil managed" />
       <MemberType>Method</MemberType>
       <AssemblyInfo apistyle="classic">
-        <AssemblyVersion>0.0.0.0</AssemblyVersion>
         <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <AssemblyInfo apistyle="unified">
-        <AssemblyVersion>0.0.0.0</AssemblyVersion>
         <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <AssemblyInfo apistyle="classic">
         <AssemblyName>DocTest-DropNS-classic-multitest</AssemblyName>
       <MemberSignature Language="ILAsm" Value=".property instance string MyProperty" />
       <MemberType>Property</MemberType>
       <AssemblyInfo apistyle="classic">
-        <AssemblyVersion>0.0.0.0</AssemblyVersion>
         <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <AssemblyInfo apistyle="unified">
-        <AssemblyVersion>0.0.0.0</AssemblyVersion>
         <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <AssemblyInfo apistyle="classic">
         <AssemblyName>DocTest-DropNS-classic-multitest</AssemblyName>
       <MemberSignature Language="ILAsm" Value=".property instance float64 OnlyInClassic" />
       <MemberType>Property</MemberType>
       <AssemblyInfo apistyle="classic">
-        <AssemblyVersion>0.0.0.0</AssemblyVersion>
         <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <AssemblyInfo apistyle="classic">
         <AssemblyName>DocTest-DropNS-classic-multitest</AssemblyName>
       <MemberSignature Language="ILAsm" Value=".property instance char OnlyInUnified" />
       <MemberType>Property</MemberType>
       <AssemblyInfo apistyle="unified">
-        <AssemblyVersion>0.0.0.0</AssemblyVersion>
         <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
       </AssemblyInfo>
       <AssemblyInfo apistyle="unified">
         <AssemblyName>DocTest-DropNS-unified-multitest</AssemblyName>
diff --git a/mcs/tools/mdoc/Test/en.expected-dropns-multi-withexisting/MyFramework.MyNamespace/MyClassExtensions.xml b/mcs/tools/mdoc/Test/en.expected-dropns-multi-withexisting/MyFramework.MyNamespace/MyClassExtensions.xml
new file mode 100644 (file)
index 0000000..7a504e2
--- /dev/null
@@ -0,0 +1,63 @@
+<Type Name="MyClassExtensions" FullName="MyFramework.MyNamespace.MyClassExtensions">
+  <TypeSignature Language="C#" Value="public static class MyClassExtensions" />
+  <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit MyClassExtensions extends System.Object" />
+  <AssemblyInfo apistyle="classic">
+    <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+    <AssemblyVersion>0.0.0.0</AssemblyVersion>
+  </AssemblyInfo>
+  <AssemblyInfo apistyle="unified">
+    <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+    <AssemblyVersion>0.0.0.0</AssemblyVersion>
+  </AssemblyInfo>
+  <AssemblyInfo apistyle="classic">
+    <AssemblyName>DocTest-DropNS-classic-multitest</AssemblyName>
+    <AssemblyVersion>0.0.0.0</AssemblyVersion>
+  </AssemblyInfo>
+  <AssemblyInfo apistyle="unified">
+    <AssemblyName>DocTest-DropNS-unified-multitest</AssemblyName>
+    <AssemblyVersion>0.0.0.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Base>
+    <BaseTypeName>System.Object</BaseTypeName>
+  </Base>
+  <Interfaces />
+  <Docs>
+    <summary>To be added.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+  <Members>
+    <Member MemberName="AnExtension">
+      <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+      <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic-multitest</AssemblyName>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified-multitest</AssemblyName>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Boolean</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+      </Parameters>
+      <Docs>
+        <param name="value">To be added.</param>
+        <summary>To be added.</summary>
+        <returns>To be added.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+  </Members>
+</Type>
index 6b5124ac28c21ac75ee214219b4f4c569e84a21b..734bd3da1a49741887d2e6155e3fe8926033e35b 100644 (file)
   <Types>
     <Namespace Name="MyFramework.MyNamespace">
       <Type Name="MyClass" Kind="Class" />
+      <Type Name="MyClassExtensions" Kind="Class" />
       <Type Name="OnlyInMulti" Kind="Class" />
     </Namespace>
   </Types>
   <Title>DocTest-DropNS-classic</Title>
+  <ExtensionMethods>
+    <ExtensionMethod>
+      <Targets>
+        <Target Type="T:MyFramework.MyNamespace.MyClass" />
+      </Targets>
+      <Member MemberName="AnExtension">
+        <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+        <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+        <MemberType>ExtensionMethod</MemberType>
+        <ReturnValue>
+          <ReturnType>System.Boolean</ReturnType>
+        </ReturnValue>
+        <Parameters>
+          <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+        </Parameters>
+        <Docs>
+          <param name="value">To be added.</param>
+          <summary>To be added.</summary>
+        </Docs>
+        <Link Type="MyFramework.MyNamespace.MyClassExtensions" Member="M:MyFramework.MyNamespace.MyClassExtensions.AnExtension(MyFramework.MyNamespace.MyClass)" />
+      </Member>
+    </ExtensionMethod>
+  </ExtensionMethods>
 </Overview>
diff --git a/mcs/tools/mdoc/Test/en.expected-dropns-multi/MyFramework.MyNamespace/MyClassExtensions.xml b/mcs/tools/mdoc/Test/en.expected-dropns-multi/MyFramework.MyNamespace/MyClassExtensions.xml
new file mode 100644 (file)
index 0000000..c3e0ca7
--- /dev/null
@@ -0,0 +1,63 @@
+<Type Name="MyClassExtensions" FullName="MyFramework.MyNamespace.MyClassExtensions">
+  <TypeSignature Language="C#" Value="public static class MyClassExtensions" />
+  <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit MyClassExtensions extends System.Object" />
+  <AssemblyInfo apistyle="classic">
+    <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+    <AssemblyVersion>0.0.0.0</AssemblyVersion>
+  </AssemblyInfo>
+  <AssemblyInfo apistyle="classic">
+    <AssemblyName>DocTest-DropNS-classic-multitest</AssemblyName>
+    <AssemblyVersion>0.0.0.0</AssemblyVersion>
+  </AssemblyInfo>
+  <AssemblyInfo apistyle="unified">
+    <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+    <AssemblyVersion>0.0.0.0</AssemblyVersion>
+  </AssemblyInfo>
+  <AssemblyInfo apistyle="unified">
+    <AssemblyName>DocTest-DropNS-unified-multitest</AssemblyName>
+    <AssemblyVersion>0.0.0.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Base>
+    <BaseTypeName>System.Object</BaseTypeName>
+  </Base>
+  <Interfaces />
+  <Docs>
+    <summary>To be added.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+  <Members>
+    <Member MemberName="AnExtension">
+      <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+      <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <AssemblyInfo apistyle="classic">
+        <AssemblyName>DocTest-DropNS-classic-multitest</AssemblyName>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <AssemblyInfo apistyle="unified">
+        <AssemblyName>DocTest-DropNS-unified-multitest</AssemblyName>
+        <AssemblyVersion>0.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Boolean</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+      </Parameters>
+      <Docs>
+        <param name="value">To be added.</param>
+        <summary>To be added.</summary>
+        <returns>To be added.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+  </Members>
+</Type>
index 3baf401ce5b0908025e2a0ba9a5f654267f5100f..b8345d02166fae8199680b18a2cd85dcf9b4f4c4 100644 (file)
   <Types>
     <Namespace Name="MyFramework.MyNamespace">
       <Type Name="MyClass" Kind="Class" />
+      <Type Name="MyClassExtensions" Kind="Class" />
       <Type Name="OnlyInMulti" Kind="Class" />
     </Namespace>
   </Types>
   <Title>Untitled</Title>
+  <ExtensionMethods>
+    <ExtensionMethod>
+      <Targets>
+        <Target Type="T:MyFramework.MyNamespace.MyClass" />
+      </Targets>
+      <Member MemberName="AnExtension">
+        <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+        <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+        <MemberType>ExtensionMethod</MemberType>
+        <ReturnValue>
+          <ReturnType>System.Boolean</ReturnType>
+        </ReturnValue>
+        <Parameters>
+          <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+        </Parameters>
+        <Docs>
+          <param name="value">To be added.</param>
+          <summary>To be added.</summary>
+        </Docs>
+        <Link Type="MyFramework.MyNamespace.MyClassExtensions" Member="M:MyFramework.MyNamespace.MyClassExtensions.AnExtension(MyFramework.MyNamespace.MyClass)" />
+      </Member>
+    </ExtensionMethod>
+  </ExtensionMethods>
 </Overview>
index eb05940a7b4f533cabb7c6ae3721cb91325698c3..17a06f060891da064887df3eab273b3662e1a723 100644 (file)
@@ -82,9 +82,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 6b0488a8b380ccd71cea3789eb036e9580d4ffeb..d8ea3865287329a901f2ff209de6d760d85386d8 100644 (file)
@@ -70,9 +70,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index f49fdf37419d7f50ad42375219994af690da941a..ad6b3cdb6f7f042af085c6259ebd40c197137980 100644 (file)
@@ -63,9 +63,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index bbfb5b190ba17dbf90685bb262f147013b45aca4..904e60cd013cd2e206b5ccb682ce0a64e63c3df7 100644 (file)
@@ -77,9 +77,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 597190e44212e53b76578ef90342f6ad131fbfde..30aa8d24d05f25349eee168088262798ed01b5ac 100644 (file)
@@ -66,9 +66,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index a8ea4d074e282c48e3976319a13f5886fbfb15c6..53a205e88542fdfec979d9744923fcccc960b7fc 100644 (file)
@@ -68,9 +68,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index afc722ab8fdef0227a0ab0393cfd172076ab9603..0969190f2e3e149e4e77fee92128084a5bd20ea2 100644 (file)
@@ -65,9 +65,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index fea8988e6e64ecda3fb48cc1d8c203f53e6f81ac..7c9c21434c0c1521b12622537999ccd1bd938b38 100644 (file)
@@ -64,9 +64,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 0eff964f908ff7cae22103937faf3bd25648d0e7..b147f4866415d828e994703500372f05b750025a 100644 (file)
@@ -65,9 +65,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index eff49f6ab7c8f2a5e42ca6f69206cf77807ccbe9..6aa1cc35a1226279787c4bf35fa2a93e9d5e2302 100644 (file)
@@ -63,9 +63,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index f17ba300947c5ebb1cf9e934dc8ee7db04f0d53c..d5f58360be6ba77590a8d426cc0c61e728e66d78 100644 (file)
@@ -63,9 +63,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index b04f7e843679569ba439c48cac87d4038bd3a231..35ca4e79637f49eeaacf88c7c9cc3ce0ebc4fef9 100644 (file)
@@ -77,9 +77,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index a061ad02ba8c1ecbf89d389da6f97b67d5fa6e20..4228feb10cfc9dd4400cf2c0304ed7f8d6c455dd 100644 (file)
@@ -64,9 +64,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index c36ec5380c2832efbf022494dd64e2e6e688f9e0..94a03d663e6e02df1c869f91a0869c4cbed95537 100644 (file)
@@ -88,9 +88,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 316457af6d6591602614bc5f570cfb9bf9edd59c..fef287ac0901dbf844782504e03650b799b5e022 100644 (file)
@@ -66,9 +66,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 4b2c3e3c88dac1fcc3b21d12ce7300e79c28c446..90679a7418624d880f598b0c654a0da6304c0095 100644 (file)
@@ -63,9 +63,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 8953d634d61df56dbc2f6e3a06fb05d19302ac80..117a92802b906d3fab1af01815789b0619d9390e 100644 (file)
@@ -63,9 +63,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index d582f68a05325d02d108b85887d647031fedd1c7..048153eee248817194fc46d37b367b48fd2a386d 100644 (file)
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 9725c1a22789e2790ebd3659fbe2b8e5c90c6e84..81e68230553252a3bfb7b98a1ac9bc6b3aa9ed0e 100644 (file)
@@ -63,9 +63,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 6c917d61156da13d6b022d36506b18f2dbef90d0..ad7320b3108770e61cd4f605cd11d7d2c597f715 100644 (file)
@@ -66,9 +66,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 98345781be95a1380a5d8ade9c40fe770fdea155..0afcefa783ca784755c8749329a4bfe58c15d520 100644 (file)
@@ -75,9 +75,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 947efba7ba0f05336ce413131b82a84b06591973..72659db89401563655154dfe935af7591ab178d6 100644 (file)
@@ -64,9 +64,8 @@
     <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\r
+    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+
     </PostBuildEvent>\r
     <PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
 \r
index 3155861850469b91e0902c7dc8c015dc59b091d9..26096cb1e6f27187bccbeb3a17b3e07a0eb54d01 100644 (file)
@@ -81,7 +81,7 @@
  * Changes which are already detected at runtime, like the addition
  * of icalls, do not require an increment.
  */
-#define MONO_CORLIB_VERSION 147
+#define MONO_CORLIB_VERSION 148
 
 typedef struct
 {
@@ -706,6 +706,7 @@ mono_domain_set (MonoDomain *domain, gboolean force)
 MonoObject *
 ves_icall_System_AppDomain_GetData (MonoAppDomain *ad, MonoString *name)
 {
+       MonoError error;
        MonoDomain *add;
        MonoObject *o;
        char *str;
@@ -716,7 +717,9 @@ ves_icall_System_AppDomain_GetData (MonoAppDomain *ad, MonoString *name)
        add = ad->data;
        g_assert (add);
 
-       str = mono_string_to_utf8 (name);
+       str = mono_string_to_utf8_checked (name, &error);
+       if (mono_error_set_pending_exception (&error))
+               return NULL;
 
        mono_domain_lock (add);
 
@@ -959,7 +962,9 @@ ves_icall_System_AppDomain_createDomain (MonoString *friendly_name, MonoAppDomai
 #else
        char *fname;
 
-       fname = mono_string_to_utf8 (friendly_name);
+       fname = mono_string_to_utf8_checked (friendly_name, &error);
+       if (mono_error_set_pending_exception (&error))
+               return NULL;
        ad = mono_domain_create_appdomain_internal (fname, setup, &error);
 
        g_free (fname);
@@ -2029,7 +2034,9 @@ ves_icall_System_Reflection_Assembly_LoadFrom (MonoString *fname, MonoBoolean re
                return NULL;
        }
                
-       name = filename = mono_string_to_utf8 (fname);
+       name = filename = mono_string_to_utf8_checked (fname, &error);
+       if (mono_error_set_pending_exception (&error))
+               return NULL;
        
        ass = mono_assembly_open_full (filename, &status, refOnly);
        
@@ -2106,7 +2113,9 @@ ves_icall_System_AppDomain_LoadAssembly (MonoAppDomain *ad,  MonoString *assRef,
 
        g_assert (assRef);
 
-       name = mono_string_to_utf8 (assRef);
+       name = mono_string_to_utf8_checked (assRef, &error);
+       if (mono_error_set_pending_exception (&error))
+               return NULL;
        parsed = mono_assembly_name_parse (name, &aname);
        g_free (name);
 
index 7f2b5fdb6a62e11741c63c09f4ba5098835219de..9c435d27b50df9b3775470b1137c1f087b7b74cd 100644 (file)
@@ -2888,6 +2888,7 @@ get_per_domain_assembly_binding_info (MonoDomain *domain, MonoAssemblyName *anam
 static MonoAssemblyName*
 mono_assembly_apply_binding (MonoAssemblyName *aname, MonoAssemblyName *dest_name)
 {
+       MonoError error;
        MonoAssemblyBindingInfo *info, *info2;
        MonoImage *ppimage;
        MonoDomain *domain;
@@ -2918,7 +2919,11 @@ mono_assembly_apply_binding (MonoAssemblyName *aname, MonoAssemblyName *dest_nam
        if (domain && domain->setup && domain->setup->configuration_file) {
                mono_domain_lock (domain);
                if (!domain->assembly_bindings_parsed) {
-                       gchar *domain_config_file_name = mono_string_to_utf8 (domain->setup->configuration_file);
+                       gchar *domain_config_file_name = mono_string_to_utf8_checked (domain->setup->configuration_file, &error);
+                       /* expect this to succeed because mono_domain_set_options_from_config () did
+                        * the same thing when the domain was created. */
+                       mono_error_assert_ok (&error);
+
                        gchar *domain_config_file_path = mono_portability_find_file (domain_config_file_name, TRUE);
 
                        if (!domain_config_file_path)
index dcd856692c28b2d71ab285e5d336f2118cffd8be..b8f4aca8f8e091ad0aad3cd9c60628a61c5a5327 100644 (file)
@@ -1097,7 +1097,6 @@ typedef struct {
        MonoClass *fieldhandle_class;
        MonoClass *methodhandle_class;
        MonoClass *systemtype_class;
-       MonoClass *monotype_class;
        MonoClass *runtimetype_class;
        MonoClass *exception_class;
        MonoClass *threadabortexception_class;
index 6123396fa8d4b94af71c605ba1102cfcdeeb5f49..38a82c92e957f3cb76cde6f66bd2031f6009c881 100644 (file)
@@ -498,13 +498,21 @@ ves_icall_System_ConsoleDriver_TtySetup (MonoString *keypad, MonoString *teardow
        if (setup_finished)
                return TRUE;
 
-       keypad_xmit_str = keypad != NULL ? mono_string_to_utf8 (keypad) : NULL;
+       keypad_xmit_str = NULL;
+       if (keypad != NULL) {
+               keypad_xmit_str = mono_string_to_utf8_checked (keypad, &error);
+               if (mono_error_set_pending_exception (&error))
+                       return FALSE;
+       }
        
        console_set_signal_handlers ();
        setup_finished = TRUE;
        if (!atexit_called) {
-               if (teardown != NULL)
-                       teardown_str = mono_string_to_utf8 (teardown);
+               if (teardown != NULL) {
+                       teardown_str = mono_string_to_utf8_checked (teardown, &error);
+                       if (mono_error_set_pending_exception (&error))
+                               return FALSE;
+               }
 
                mono_atexit (tty_teardown);
        }
index f8cbb0744a2d5c19af1ba8eb8cb70219e71b372c..449895a56106a2a0e3efbbc97230cd3bfe938712 100644 (file)
@@ -918,6 +918,7 @@ print_name_space (MonoClass *klass)
 void
 mono_object_describe (MonoObject *obj)
 {
+       MonoError error;
        MonoClass* klass;
        const char* sep;
        if (!obj) {
@@ -926,14 +927,19 @@ mono_object_describe (MonoObject *obj)
        }
        klass = mono_object_class (obj);
        if (klass == mono_defaults.string_class) {
-               char *utf8 = mono_string_to_utf8 ((MonoString*)obj);
-               if (strlen (utf8) > 60) {
+               char *utf8 = mono_string_to_utf8_checked ((MonoString*)obj, &error);
+               mono_error_cleanup (&error); /* FIXME don't swallow the error */
+               if (utf8 && strlen (utf8) > 60) {
                        utf8 [57] = '.';
                        utf8 [58] = '.';
                        utf8 [59] = '.';
                        utf8 [60] = 0;
                }
-               g_print ("String at %p, length: %d, '%s'\n", obj, mono_string_length ((MonoString*) obj), utf8);
+               if (utf8) {
+                       g_print ("String at %p, length: %d, '%s'\n", obj, mono_string_length ((MonoString*) obj), utf8);
+               } else {
+                       g_print ("String at %p, length: %d, unable to decode UTF16\n", obj, mono_string_length ((MonoString*) obj));
+               }
                g_free (utf8);
        } else if (klass->rank) {
                MonoArray *array = (MonoArray*)obj;
index 26ab2d2d9b55a1d96d1d3360ecb4c6c484779824..a3ba4a76e0492b35533b95791df77c3eab1a235c 100644 (file)
@@ -707,9 +707,6 @@ mono_init_internal (const char *filename, const char *exe_filename, const char *
        mono_defaults.systemtype_class = mono_class_load_from_name (
                 mono_defaults.corlib, "System", "Type");
 
-       mono_defaults.monotype_class = mono_class_load_from_name (
-                mono_defaults.corlib, "System", "MonoType");
-
        mono_defaults.runtimetype_class = mono_class_load_from_name (
                 mono_defaults.corlib, "System", "RuntimeType");
 
@@ -1054,7 +1051,7 @@ unregister_vtable_reflection_type (MonoVTable *vtable)
 {
        MonoObject *type = (MonoObject *)vtable->type;
 
-       if (type->vtable->klass != mono_defaults.monotype_class)
+       if (type->vtable->klass != mono_defaults.runtimetype_class)
                MONO_GC_UNREGISTER_ROOT_IF_MOVING (vtable->type);
 }
 
index 0ee01d806d2675dcbed94d83deefe255c12820ff..a871337ee36d15cd920d5edc8997f67a7d32d350 100644 (file)
@@ -461,15 +461,16 @@ incremental_find_check_match (IncrementalFind *handle, WIN32_FIND_DATA *data, Mo
 MonoString *
 ves_icall_System_IO_MonoIO_FindFirst (MonoString *path,
                                      MonoString *path_with_pattern,
-                                     gint32 *result_attr, gint32 *error,
+                                     gint32 *result_attr, gint32 *ioerror,
                                      gpointer *handle)
 {
+       MonoError error;
        WIN32_FIND_DATA data;
        HANDLE find_handle;
        IncrementalFind *ifh;
        MonoString *result;
        
-       *error = ERROR_SUCCESS;
+       *ioerror = ERROR_SUCCESS;
        
        find_handle = FindFirstFile (mono_string_chars (path_with_pattern), &data);
        
@@ -480,13 +481,15 @@ ves_icall_System_IO_MonoIO_FindFirst (MonoString *path,
                if (find_error == ERROR_FILE_NOT_FOUND) 
                        return NULL;
                
-               *error = find_error;
+               *ioerror = find_error;
                return NULL;
        }
 
        ifh = g_new (IncrementalFind, 1);
        ifh->find_handle = find_handle;
-       ifh->utf8_path = mono_string_to_utf8 (path);
+       ifh->utf8_path = mono_string_to_utf8_checked (path, &error);
+       if (mono_error_set_pending_exception (&error))
+               return NULL;
        ifh->domain = mono_domain_get ();
        *handle = ifh;
 
@@ -494,7 +497,7 @@ ves_icall_System_IO_MonoIO_FindFirst (MonoString *path,
                if (FindNextFile (find_handle, &data) == FALSE){
                        int e = GetLastError ();
                        if (e != ERROR_NO_MORE_FILES)
-                               *error = e;
+                               *ioerror = e;
                        return NULL;
                }
        }
@@ -1233,9 +1236,11 @@ void ves_icall_System_IO_MonoIO_Unlock (HANDLE handle, gint64 position,
 gint64
 mono_filesize_from_path (MonoString *string)
 {
+       MonoError error;
        struct stat buf;
        gint64 res;
-       char *path = mono_string_to_utf8 (string);
+       char *path = mono_string_to_utf8_checked (string, &error);
+       mono_error_raise_exception (&error); /* OK to throw, external only without a good alternative */
 
        MONO_ENTER_GC_SAFE;
        if (stat (path, &buf) == -1)
index ab10f929173b4413ac188294374ce56a9447406d..0d798ed6a0d85108891df8140579b169196de909 100644 (file)
@@ -248,6 +248,7 @@ ves_icall_System_IO_MonoIO_ReplaceFile (MonoString *sourceFileName, MonoString *
                                        MonoString *destinationBackupFileName, MonoBoolean ignoreMetadataErrors,
                                        gint32 *error);
 
+MONO_RT_EXTERNAL_ONLY
 extern gint64
 mono_filesize_from_path (MonoString *path);
 
index efa5547f6e485fa3a5f81522dc9fddc2153194c9..84e3b4aa68d75000fbec036787887c36f1fe8930 100644 (file)
@@ -227,27 +227,26 @@ is_special_zero_size_file (struct stat *buf)
 XXX implement options
 */
 static void*
-open_file_map (MonoString *path, int input_fd, int mode, gint64 *capacity, int access, int options, int *error)
+open_file_map (const char *c_path, int input_fd, int mode, gint64 *capacity, int access, int options, int *ioerror)
 {
        struct stat buf;
-       char *c_path = path ? mono_string_to_utf8 (path) : NULL;
        MmapHandle *handle = NULL;
        int result, fd;
 
-       if (path)
+       if (c_path)
                result = stat (c_path, &buf);
        else
                result = fstat (input_fd, &buf);
 
        if (mode == FILE_MODE_TRUNCATE || mode == FILE_MODE_APPEND || mode == FILE_MODE_OPEN) {
                if (result == -1) { //XXX translate errno?
-                       *error = FILE_NOT_FOUND;
+                       *ioerror = FILE_NOT_FOUND;
                        goto done;
                }
        }
 
        if (mode == FILE_MODE_CREATE_NEW && result == 0) {
-               *error = FILE_ALREADY_EXISTS;
+               *ioerror = FILE_ALREADY_EXISTS;
                goto done;
        }
 
@@ -258,28 +257,28 @@ open_file_map (MonoString *path, int input_fd, int mode, gint64 *capacity, int a
                         * also makes little sense, so don't do the check if th file is one of these.
                         */
                        if (buf.st_size == 0 && !is_special_zero_size_file (&buf)) {
-                               *error = CAPACITY_SMALLER_THAN_FILE_SIZE;
+                               *ioerror = CAPACITY_SMALLER_THAN_FILE_SIZE;
                                goto done;
                        }
                        *capacity = buf.st_size;
                } else if (*capacity < buf.st_size) {
-                       *error = CAPACITY_SMALLER_THAN_FILE_SIZE;
+                       *ioerror = CAPACITY_SMALLER_THAN_FILE_SIZE;
                        goto done;
                }
        } else {
                if (mode == FILE_MODE_CREATE_NEW && *capacity == 0) {
-                       *error = CAPACITY_SMALLER_THAN_FILE_SIZE;
+                       *ioerror = CAPACITY_SMALLER_THAN_FILE_SIZE;
                        goto done;
                }
        }
 
-       if (path) //FIXME use io portability?
+       if (c_path) //FIXME use io portability?
                fd = open (c_path, file_mode_to_unix (mode) | access_mode_to_unix (access), DEFAULT_FILEMODE);
        else
                fd = dup (input_fd);
 
        if (fd == -1) { //XXX translate errno?
-               *error = COULD_NOT_OPEN;
+               *ioerror = COULD_NOT_OPEN;
                goto done;
        }
 
@@ -293,33 +292,29 @@ open_file_map (MonoString *path, int input_fd, int mode, gint64 *capacity, int a
        handle->fd = fd;
 
 done:
-       g_free (c_path);
        return (void*)handle;
 }
 
 #define MONO_ANON_FILE_TEMPLATE "/mono.anonmap.XXXXXXXXX"
 static void*
-open_memory_map (MonoString *mapName, int mode, gint64 *capacity, int access, int options, int *error)
+open_memory_map (const char *c_mapName, int mode, gint64 *capacity, int access, int options, int *ioerror)
 {
-       char *c_mapName;
        MmapHandle *handle;
        if (*capacity <= 1) {
-               *error = CAPACITY_MUST_BE_POSITIVE;
+               *ioerror = CAPACITY_MUST_BE_POSITIVE;
                return NULL;
        }
 
        if (!(mode == FILE_MODE_CREATE_NEW || mode == FILE_MODE_OPEN_OR_CREATE || mode == FILE_MODE_OPEN)) {
-               *error = INVALID_FILE_MODE;
+               *ioerror = INVALID_FILE_MODE;
                return NULL;
        }
 
-       c_mapName = mono_string_to_utf8 (mapName);
-
        named_regions_lock ();
        handle = (MmapHandle*)g_hash_table_lookup (named_regions, c_mapName);
        if (handle) {
                if (mode == FILE_MODE_CREATE_NEW) {
-                       *error = FILE_ALREADY_EXISTS;
+                       *ioerror = FILE_ALREADY_EXISTS;
                        goto done;
                }
 
@@ -332,7 +327,7 @@ open_memory_map (MonoString *mapName, int mode, gint64 *capacity, int access, in
                int unused G_GNUC_UNUSED, alloc_size;
 
                if (mode == FILE_MODE_OPEN) {
-                       *error = FILE_NOT_FOUND;
+                       *ioerror = FILE_NOT_FOUND;
                        goto done;
                }
                *capacity = align_up_to_page_size (*capacity);
@@ -340,7 +335,7 @@ open_memory_map (MonoString *mapName, int mode, gint64 *capacity, int access, in
                tmp_dir = g_get_tmp_dir ();
                alloc_size = strlen (tmp_dir) + strlen (MONO_ANON_FILE_TEMPLATE) + 1;
                if (alloc_size > 1024) {//rather fail that stack overflow
-                       *error = COULD_NOT_MAP_MEMORY;
+                       *ioerror = COULD_NOT_MAP_MEMORY;
                        goto done;
                }
                file_name = (char *)alloca (alloc_size);
@@ -349,7 +344,7 @@ open_memory_map (MonoString *mapName, int mode, gint64 *capacity, int access, in
 
                fd = mkstemp (file_name);
                if (fd == -1) {
-                       *error = COULD_NOT_MAP_MEMORY;
+                       *ioerror = COULD_NOT_MAP_MEMORY;
                        goto done;
                }
 
@@ -369,61 +364,79 @@ open_memory_map (MonoString *mapName, int mode, gint64 *capacity, int access, in
 done:
        named_regions_unlock ();
 
-       g_free (c_mapName);
        return handle;
 }
 
 
+/* This is an icall */
 void *
-mono_mmap_open_file (MonoString *path, int mode, MonoString *mapName, gint64 *capacity, int access, int options, int *error)
+mono_mmap_open_file (MonoString *path, int mode, MonoString *mapName, gint64 *capacity, int access, int options, int *ioerror)
 {
+       MonoError error;
+       MmapHandle *handle = NULL;
        g_assert (path || mapName);
 
-       if (!mapName)
-               return open_file_map (path, -1, mode, capacity, access, options, error);
+       if (!mapName) {
+               char * c_path = mono_string_to_utf8_checked (path, &error);
+               if (mono_error_set_pending_exception (&error))
+                       return NULL;
+               handle = open_file_map (c_path, -1, mode, capacity, access, options, ioerror);
+               g_free (c_path);
+               return handle;
+       }
 
-       if (path) {
-               MmapHandle *handle;
-               char *c_mapName = mono_string_to_utf8 (mapName);
+       char *c_mapName = mono_string_to_utf8_checked (mapName, &error);
+       if (mono_error_set_pending_exception (&error))
+               return NULL;
 
+       if (path) {
                named_regions_lock ();
                handle = (MmapHandle*)g_hash_table_lookup (named_regions, c_mapName);
                if (handle) {
-                       *error = FILE_ALREADY_EXISTS;
+                       *ioerror = FILE_ALREADY_EXISTS;
                        handle = NULL;
                } else {
-                       handle = (MmapHandle *)open_file_map (path, -1, mode, capacity, access, options, error);
-                       if (handle) {
-                               handle->name = g_strdup (c_mapName);
-                               g_hash_table_insert (named_regions, handle->name, handle);
+                       char *c_path = mono_string_to_utf8_checked (path, &error);
+                       if (is_ok (&error)) {
+                               handle = (MmapHandle *)open_file_map (c_path, -1, mode, capacity, access, options, ioerror);
+                               if (handle) {
+                                       handle->name = g_strdup (c_mapName);
+                                       g_hash_table_insert (named_regions, handle->name, handle);
+                               }
+                       } else {
+                               handle = NULL;
                        }
+                       g_free (c_path);
                }
                named_regions_unlock ();
+       } else
+               handle = open_memory_map (c_mapName, mode, capacity, access, options, ioerror);
 
-               g_free (c_mapName);
-               return handle;
-       }
-
-       return open_memory_map (mapName, mode, capacity, access, options, error);
+       g_free (c_mapName);
+       return handle;
 }
 
+/* this is an icall */
 void *
-mono_mmap_open_handle (void *input_fd, MonoString *mapName, gint64 *capacity, int access, int options, int *error)
+mono_mmap_open_handle (void *input_fd, MonoString *mapName, gint64 *capacity, int access, int options, int *ioerror)
 {
+       MonoError error;
        MmapHandle *handle;
        if (!mapName) {
-               handle = (MmapHandle *)open_file_map (NULL, GPOINTER_TO_INT (input_fd), FILE_MODE_OPEN, capacity, access, options, error);
+               handle = (MmapHandle *)open_file_map (NULL, GPOINTER_TO_INT (input_fd), FILE_MODE_OPEN, capacity, access, options, ioerror);
        } else {
-               char *c_mapName = mono_string_to_utf8 (mapName);
+               char *c_mapName = mono_string_to_utf8_checked (mapName, &error);
+               if (mono_error_set_pending_exception (&error))
+                       return NULL;
 
                named_regions_lock ();
                handle = (MmapHandle*)g_hash_table_lookup (named_regions, c_mapName);
                if (handle) {
-                       *error = FILE_ALREADY_EXISTS;
+                       *ioerror = FILE_ALREADY_EXISTS;
                        handle = NULL;
                } else {
                        //XXX we're exploiting wapi HANDLE == FD equivalence. THIS IS FRAGILE, create a _wapi_handle_to_fd call
-                       handle = (MmapHandle *)open_file_map (NULL, GPOINTER_TO_INT (input_fd), FILE_MODE_OPEN, capacity, access, options, error);
+                       handle = (MmapHandle *)open_file_map (NULL, GPOINTER_TO_INT (input_fd), FILE_MODE_OPEN, capacity, access, options, ioerror);
                        handle->name = g_strdup (c_mapName);
                        g_hash_table_insert (named_regions, handle->name, handle);
                }
index d87e158776704977c890c70bbce699ab8854ff53..e6902c6caa394157f7ec2c223980bc84f42df8cd 100644 (file)
@@ -149,13 +149,16 @@ ves_icall_System_IO_InotifyWatcher_GetInotifyInstance ()
 int
 ves_icall_System_IO_InotifyWatcher_AddWatch (int fd, MonoString *name, gint32 mask)
 {
+       MonoError error;
        char *str, *path;
        int retval;
 
        if (name == NULL)
                return -1;
 
-       str = mono_string_to_utf8 (name);
+       str = mono_string_to_utf8_checked (name, &error);
+       if (mono_error_set_pending_exception (&error))
+               return -1;
        path = mono_portability_find_file (str, TRUE);
        if (!path)
                path = str;
index c659b843ce27cddc9d068c12de977128c45fef2d..e50dae52ae78539cc9d84b980d53eaad8c026f8f 100644 (file)
@@ -398,11 +398,6 @@ ICALL(MCATTR_1, "GetCustomAttributesDataInternal", ves_icall_MonoCustomAttrs_Get
 ICALL(MCATTR_2, "GetCustomAttributesInternal", custom_attrs_get_by_type)
 ICALL(MCATTR_3, "IsDefinedInternal", custom_attrs_defined_internal)
 
-ICALL_TYPE(MTYPE, "System.MonoType", MTYPE_1)
-ICALL(MTYPE_1, "GetCorrespondingInflatedConstructor", ves_icall_MonoType_GetCorrespondingInflatedMethod)
-ICALL(MTYPE_2, "GetCorrespondingInflatedMethod", ves_icall_MonoType_GetCorrespondingInflatedMethod)
-ICALL(MTYPE_3, "type_from_obj", ves_icall_MonoType_type_from_obj)
-
 #ifndef DISABLE_SOCKETS
 ICALL_TYPE(NDNS, "System.Net.Dns", NDNS_1)
 ICALL(NDNS_1, "GetHostByAddr_internal(string,string&,string[]&,string[]&)", ves_icall_System_Net_Dns_GetHostByAddr_internal)
@@ -737,32 +732,34 @@ ICALL(MHAN_1, "GetFunctionPointer", ves_icall_RuntimeMethodHandle_GetFunctionPoi
 
 ICALL_TYPE(RT, "System.RuntimeType", RT_1)
 ICALL(RT_1, "CreateInstanceInternal", ves_icall_System_Activator_CreateInstanceInternal)
-ICALL(RT_2, "GetConstructors_internal", ves_icall_Type_GetConstructors_internal)
-ICALL(RT_3, "GetEvents_internal", ves_icall_Type_GetEvents_internal)
-ICALL(RT_5, "GetFields_internal", ves_icall_Type_GetFields_internal)
-ICALL(RT_6, "GetGenericArgumentsInternal", ves_icall_MonoType_GetGenericArguments)
-ICALL(RT_7, "GetGenericParameterAttributes", ves_icall_Type_GetGenericParameterAttributes)
-ICALL(RT_8, "GetGenericParameterConstraints_impl", ves_icall_Type_GetGenericParameterConstraints)
-ICALL(RT_9, "GetGenericParameterPosition", ves_icall_Type_GetGenericParameterPosition)
-ICALL(RT_10, "GetInterfaceMapData", ves_icall_Type_GetInterfaceMapData)
-ICALL(RT_11, "GetInterfaces", ves_icall_Type_GetInterfaces)
-ICALL(RT_12, "GetMethodsByName", ves_icall_Type_GetMethodsByName)
-ICALL(RT_13, "GetNestedTypes_internal", ves_icall_Type_GetNestedTypes)
-ICALL(RT_14, "GetPacking", ves_icall_Type_GetPacking)
-ICALL(RT_15, "GetPropertiesByName", ves_icall_Type_GetPropertiesByName)
+ICALL(RT_2, "GetConstructors_internal", ves_icall_RuntimeType_GetConstructors_internal)
+ICALL(RT_30, "GetCorrespondingInflatedConstructor", ves_icall_RuntimeType_GetCorrespondingInflatedMethod)
+ICALL(RT_31, "GetCorrespondingInflatedMethod", ves_icall_RuntimeType_GetCorrespondingInflatedMethod)
+ICALL(RT_3, "GetEvents_internal", ves_icall_RuntimeType_GetEvents_internal)
+ICALL(RT_5, "GetFields_internal", ves_icall_RuntimeType_GetFields_internal)
+ICALL(RT_6, "GetGenericArgumentsInternal", ves_icall_RuntimeType_GetGenericArguments)
+ICALL(RT_7, "GetGenericParameterAttributes", ves_icall_RuntimeType_GetGenericParameterAttributes)
+ICALL(RT_8, "GetGenericParameterConstraints_impl", ves_icall_RuntimeType_GetGenericParameterConstraints)
+ICALL(RT_9, "GetGenericParameterPosition", ves_icall_RuntimeType_GetGenericParameterPosition)
+ICALL(RT_10, "GetInterfaceMapData", ves_icall_RuntimeType_GetInterfaceMapData)
+ICALL(RT_11, "GetInterfaces", ves_icall_RuntimeType_GetInterfaces)
+ICALL(RT_12, "GetMethodsByName", ves_icall_RuntimeType_GetMethodsByName)
+ICALL(RT_13, "GetNestedTypes_internal", ves_icall_RuntimeType_GetNestedTypes)
+ICALL(RT_14, "GetPacking", ves_icall_RuntimeType_GetPacking)
+ICALL(RT_15, "GetPropertiesByName", ves_icall_RuntimeType_GetPropertiesByName)
 ICALL(RT_16, "GetTypeCodeImplInternal", ves_icall_type_GetTypeCodeInternal)
 ICALL(RT_28, "IsTypeExportedToWindowsRuntime", ves_icall_System_RuntimeType_IsTypeExportedToWindowsRuntime)
 ICALL(RT_29, "IsWindowsRuntimeObjectType", ves_icall_System_RuntimeType_IsWindowsRuntimeObjectType)
-ICALL(RT_17, "MakeGenericType", ves_icall_Type_MakeGenericType)
-ICALL(RT_18, "MakePointerType", ves_icall_Type_MakePointerType)
+ICALL(RT_17, "MakeGenericType", ves_icall_RuntimeType_MakeGenericType)
+ICALL(RT_18, "MakePointerType", ves_icall_RuntimeType_MakePointerType)
 ICALL(RT_19, "getFullName", ves_icall_System_MonoType_getFullName)
-ICALL(RT_21, "get_DeclaringMethod", ves_icall_MonoType_get_DeclaringMethod)
-ICALL(RT_22, "get_DeclaringType", ves_icall_MonoType_get_DeclaringType)
-ICALL(RT_23, "get_Name", ves_icall_MonoType_get_Name)
-ICALL(RT_24, "get_Namespace", ves_icall_MonoType_get_Namespace)
-ICALL(RT_25, "get_core_clr_security_level", vell_icall_MonoType_get_core_clr_security_level)
-ICALL(RT_26, "make_array_type", ves_icall_Type_make_array_type)
-ICALL(RT_27, "make_byref_type", ves_icall_Type_make_byref_type)
+ICALL(RT_21, "get_DeclaringMethod", ves_icall_RuntimeType_get_DeclaringMethod)
+ICALL(RT_22, "get_DeclaringType", ves_icall_RuntimeType_get_DeclaringType)
+ICALL(RT_23, "get_Name", ves_icall_RuntimeType_get_Name)
+ICALL(RT_24, "get_Namespace", ves_icall_RuntimeType_get_Namespace)
+ICALL(RT_25, "get_core_clr_security_level", vell_icall_RuntimeType_get_core_clr_security_level)
+ICALL(RT_26, "make_array_type", ves_icall_RuntimeType_make_array_type)
+ICALL(RT_27, "make_byref_type", ves_icall_RuntimeType_make_byref_type)
 
 ICALL_TYPE(RTH, "System.RuntimeTypeHandle", RTH_1)
 ICALL(RTH_1, "GetArrayRank", ves_icall_RuntimeTypeHandle_GetArrayRank)
index 8d13d5c5d53f9ee22aa857169c83b67b156711e5..5f9cabfc9e8d4a39ef68a917a57c7a06a64c5b23 100644 (file)
@@ -1210,13 +1210,6 @@ ves_icall_System_Object_GetType (MonoObject *obj)
        return ret;
 }
 
-ICALL_EXPORT void
-ves_icall_MonoType_type_from_obj (MonoReflectionType *mtype, MonoObject *obj)
-{
-       mtype->type = &obj->vtable->klass->byval_arg;
-       g_assert (mtype->type->type);
-}
-
 ICALL_EXPORT gint32
 ves_icall_ModuleBuilder_getToken (MonoReflectionModuleBuilder *mb, MonoObject *obj, gboolean create_open_instance)
 {
@@ -1477,31 +1470,41 @@ ves_icall_System_Type_internal_from_name (MonoString *name,
                                                                                  MonoBoolean ignoreCase)
 {
        MonoError error;
-       char *str = mono_string_to_utf8 (name);
        MonoTypeNameParse info;
-       MonoReflectionType *type;
+       MonoReflectionType *type = NULL;
        gboolean parsedOk;
 
+       char *str = mono_string_to_utf8_checked (name, &error);
+       if (!is_ok (&error))
+               goto leave;
+
        parsedOk = mono_reflection_parse_type (str, &info);
 
        /* mono_reflection_parse_type() mangles the string */
        if (!parsedOk) {
                mono_reflection_free_type_info (&info);
-               if (throwOnError) {
-                       mono_error_init (&error);
+               if (throwOnError)
                        mono_error_set_argument (&error, "typeName", "failed parse: %s", str);
-                       mono_error_set_pending_exception (&error);
-               }
-               g_free (str);
-               return NULL;
+               goto leave;
        }
 
        type = type_from_parsed_name (&info, ignoreCase, &error);
 
        mono_reflection_free_type_info (&info);
-       g_free (str);
 
-       if (!mono_error_ok (&error)) {
+       if (!is_ok (&error))
+               goto leave;
+
+       if (type == NULL){
+               if (throwOnError) {
+                       mono_error_set_type_load_name (&error, g_strdup (str), NULL, "");
+                       goto leave;
+               }
+       }
+       
+leave:
+       g_free (str);
+       if (!is_ok (&error)) {
                if (throwOnError)
                        mono_error_set_pending_exception (&error);
                else
@@ -1509,18 +1512,6 @@ ves_icall_System_Type_internal_from_name (MonoString *name,
                return NULL;
        }
 
-       if (type == NULL){
-               MonoException *e = NULL;
-               
-               if (throwOnError)
-                       e = mono_get_exception_type_load (name, NULL);
-
-               if (e) {
-                       mono_set_pending_exception (e);
-                       return NULL;
-               }
-       }
-       
        return type;
 }
 
@@ -2401,7 +2392,7 @@ get_interfaces_hash (gconstpointer v1)
 }
 
 ICALL_EXPORT MonoArray*
-ves_icall_Type_GetInterfaces (MonoReflectionType* type)
+ves_icall_RuntimeType_GetInterfaces (MonoReflectionType* type)
 {
        MonoError error;
        MonoClass *klass = mono_class_from_mono_type (type->type);
@@ -2432,14 +2423,14 @@ ves_icall_Type_GetInterfaces (MonoReflectionType* type)
        if (len == 0) {
                g_hash_table_destroy (iface_hash);
                if (!data.domain->empty_types) {
-                       data.domain->empty_types = mono_array_new_cached (data.domain, mono_defaults.monotype_class, 0, &error);
+                       data.domain->empty_types = mono_array_new_cached (data.domain, mono_defaults.runtimetype_class, 0, &error);
                        if (!is_ok (&error))
                                goto fail;
                }
                return data.domain->empty_types;
        }
 
-       data.iface_array = mono_array_new_cached (data.domain, mono_defaults.monotype_class, len, &error);
+       data.iface_array = mono_array_new_cached (data.domain, mono_defaults.runtimetype_class, len, &error);
        if (!is_ok (&error))
                goto fail;
        g_hash_table_foreach (iface_hash, fill_iface_array, &data);
@@ -2456,7 +2447,7 @@ fail:
 }
 
 ICALL_EXPORT void
-ves_icall_Type_GetInterfaceMapData (MonoReflectionType *type, MonoReflectionType *iface, MonoArray **targets, MonoArray **methods)
+ves_icall_RuntimeType_GetInterfaceMapData (MonoReflectionType *type, MonoReflectionType *iface, MonoArray **targets, MonoArray **methods)
 {
        gboolean variance_used;
        MonoClass *klass = mono_class_from_mono_type (type->type);
@@ -2507,7 +2498,7 @@ ves_icall_Type_GetInterfaceMapData (MonoReflectionType *type, MonoReflectionType
 }
 
 ICALL_EXPORT void
-ves_icall_Type_GetPacking (MonoReflectionType *type, guint32 *packing, guint32 *size)
+ves_icall_RuntimeType_GetPacking (MonoReflectionType *type, guint32 *packing, guint32 *size)
 {
        MonoError error;
        MonoClass *klass = mono_class_from_mono_type (type->type);
@@ -2641,7 +2632,7 @@ ves_icall_RuntimeTypeHandle_GetAssembly (MonoReflectionType *type)
 }
 
 ICALL_EXPORT MonoReflectionType*
-ves_icall_MonoType_get_DeclaringType (MonoReflectionType *type)
+ves_icall_RuntimeType_get_DeclaringType (MonoReflectionType *type)
 {
        MonoError error;
        MonoReflectionType *ret;
@@ -2670,7 +2661,7 @@ ves_icall_MonoType_get_DeclaringType (MonoReflectionType *type)
 }
 
 ICALL_EXPORT MonoString*
-ves_icall_MonoType_get_Name (MonoReflectionType *type)
+ves_icall_RuntimeType_get_Name (MonoReflectionType *type)
 {
        MonoDomain *domain = mono_domain_get (); 
        MonoClass *klass = mono_class_from_mono_type (type->type);
@@ -2688,7 +2679,7 @@ ves_icall_MonoType_get_Name (MonoReflectionType *type)
 }
 
 ICALL_EXPORT MonoString*
-ves_icall_MonoType_get_Namespace (MonoReflectionType *type)
+ves_icall_RuntimeType_get_Namespace (MonoReflectionType *type)
 {
        MonoDomain *domain = mono_domain_get (); 
        MonoClass *klass = mono_class_from_mono_type (type->type);
@@ -2724,7 +2715,7 @@ create_type_array (MonoDomain *domain, MonoBoolean runtimeTypeArray, int count,
 }
 
 ICALL_EXPORT MonoArray*
-ves_icall_MonoType_GetGenericArguments (MonoReflectionType *type, MonoBoolean runtimeTypeArray)
+ves_icall_RuntimeType_GetGenericArguments (MonoReflectionType *type, MonoBoolean runtimeTypeArray)
 {
        MonoError error;
        MonoReflectionType *rt;
@@ -2816,7 +2807,7 @@ ves_icall_RuntimeTypeHandle_GetGenericTypeDefinition_impl (MonoReflectionType *t
 }
 
 ICALL_EXPORT MonoReflectionType*
-ves_icall_Type_MakeGenericType (MonoReflectionType *type, MonoArray *type_array)
+ves_icall_RuntimeType_MakeGenericType (MonoReflectionType *type, MonoArray *type_array)
 {
        MonoError error;
        MonoReflectionType *ret;
@@ -2874,7 +2865,7 @@ ves_icall_RuntimeTypeHandle_HasInstantiation (MonoReflectionType *type)
 }
 
 ICALL_EXPORT gint32
-ves_icall_Type_GetGenericParameterPosition (MonoReflectionType *type)
+ves_icall_RuntimeType_GetGenericParameterPosition (MonoReflectionType *type)
 {
        if (!IS_MONOTYPE (type))
                return -1;
@@ -2885,7 +2876,7 @@ ves_icall_Type_GetGenericParameterPosition (MonoReflectionType *type)
 }
 
 ICALL_EXPORT GenericParameterAttributes
-ves_icall_Type_GetGenericParameterAttributes (MonoReflectionType *type)
+ves_icall_RuntimeType_GetGenericParameterAttributes (MonoReflectionType *type)
 {
        g_assert (IS_MONOTYPE (type));
        g_assert (is_generic_parameter (type->type));
@@ -2893,7 +2884,7 @@ ves_icall_Type_GetGenericParameterAttributes (MonoReflectionType *type)
 }
 
 ICALL_EXPORT MonoArray *
-ves_icall_Type_GetGenericParameterConstraints (MonoReflectionType *type)
+ves_icall_RuntimeType_GetGenericParameterConstraints (MonoReflectionType *type)
 {
        MonoError error;
        MonoReflectionType *rt;
@@ -2910,7 +2901,7 @@ ves_icall_Type_GetGenericParameterConstraints (MonoReflectionType *type)
        for (count = 0, ptr = param_info->constraints; ptr && *ptr; ptr++, count++)
                ;
 
-       res = mono_array_new_checked (domain, mono_defaults.monotype_class, count, &error);
+       res = mono_array_new_checked (domain, mono_defaults.runtimetype_class, count, &error);
        if (mono_error_set_pending_exception (&error))
                return NULL;
        for (i = 0; i < count; i++) {
@@ -2945,7 +2936,7 @@ ves_icall_EnumBuilder_setup_enum_type (MonoReflectionType *enumtype,
 }
 
 ICALL_EXPORT MonoReflectionMethod*
-ves_icall_MonoType_GetCorrespondingInflatedMethod (MonoReflectionType *type, 
+ves_icall_RuntimeType_GetCorrespondingInflatedMethod (MonoReflectionType *type, 
                                                    MonoReflectionMethod* generic)
 {
        MonoDomain *domain; 
@@ -2975,7 +2966,7 @@ ves_icall_MonoType_GetCorrespondingInflatedMethod (MonoReflectionType *type,
 }
 
 ICALL_EXPORT MonoReflectionMethod *
-ves_icall_MonoType_get_DeclaringMethod (MonoReflectionType *ref_type)
+ves_icall_RuntimeType_get_DeclaringMethod (MonoReflectionType *ref_type)
 {
        MonoMethod *method;
        MonoType *type = ref_type->type;
@@ -3345,7 +3336,9 @@ ves_icall_InternalExecute (MonoReflectionMethod *method, MonoObject *this_arg, M
                        }
                        
                        name = mono_array_get (params, MonoString *, 1);
-                       str = mono_string_to_utf8 (name);
+                       str = mono_string_to_utf8_checked (name, &error);
+                       if (mono_error_set_pending_exception (&error))
+                               return NULL;
                
                        do {
                                MonoClassField* field = mono_class_get_field_from_name (k, str);
@@ -3388,7 +3381,9 @@ ves_icall_InternalExecute (MonoReflectionMethod *method, MonoObject *this_arg, M
                        }
                        
                        name = mono_array_get (params, MonoString *, 1);
-                       str = mono_string_to_utf8 (name);
+                       str = mono_string_to_utf8_checked (name, &error);
+                       if (mono_error_set_pending_exception (&error))
+                               return NULL;
                
                        do {
                                MonoClassField* field = mono_class_get_field_from_name (k, str);
@@ -3776,7 +3771,7 @@ enum {
 };
 
 ICALL_EXPORT MonoArray*
-ves_icall_Type_GetFields_internal (MonoReflectionType *type, MonoString *name, guint32 bflags, MonoReflectionType *reftype)
+ves_icall_RuntimeType_GetFields_internal (MonoReflectionType *type, MonoString *name, guint32 bflags, MonoReflectionType *reftype)
 {
        MonoError error;
        MonoDomain *domain; 
@@ -3840,7 +3835,9 @@ handle_parent:
 
                if (name != NULL) {
                        if (utf8_name == NULL) {
-                               utf8_name = mono_string_to_utf8 (name);
+                               utf8_name = mono_string_to_utf8_checked (name, &error);
+                               if (!is_ok (&error))
+                                       goto fail;
                                compare_func = (bflags & BFLAGS_IgnoreCase) ? mono_utf8_strcasecmp : strcmp;
                        }
 
@@ -4003,7 +4000,7 @@ loader_error:
 }
 
 ICALL_EXPORT MonoArray*
-ves_icall_Type_GetMethodsByName (MonoReflectionType *type, MonoString *name, guint32 bflags, MonoBoolean ignore_case, MonoReflectionType *reftype)
+ves_icall_RuntimeType_GetMethodsByName (MonoReflectionType *type, MonoString *name, guint32 bflags, MonoBoolean ignore_case, MonoReflectionType *reftype)
 {
        static MonoClass *MethodInfo_array;
        MonoError error;
@@ -4039,8 +4036,11 @@ ves_icall_Type_GetMethodsByName (MonoReflectionType *type, MonoString *name, gui
                return res;
        }
 
-       if (name)
-               mname = mono_string_to_utf8 (name);
+       if (name) {
+               mname = mono_string_to_utf8_checked (name, &error);
+               if (mono_error_set_pending_exception (&error))
+                   return NULL;
+       }
 
        method_array = mono_class_get_methods_by_name (klass, mname, bflags, ignore_case, FALSE, &ex);
        g_free ((char*)mname);
@@ -4071,7 +4071,7 @@ failure:
 }
 
 ICALL_EXPORT MonoArray*
-ves_icall_Type_GetConstructors_internal (MonoReflectionType *type, guint32 bflags, MonoReflectionType *reftype)
+ves_icall_RuntimeType_GetConstructors_internal (MonoReflectionType *type, guint32 bflags, MonoReflectionType *reftype)
 {
        MonoDomain *domain; 
        MonoClass *startklass, *klass, *refklass;
@@ -4207,7 +4207,7 @@ property_accessor_nonpublic (MonoMethod* accessor, gboolean start_klass)
 }
 
 ICALL_EXPORT MonoArray*
-ves_icall_Type_GetPropertiesByName (MonoReflectionType *type, MonoString *name, guint32 bflags, MonoBoolean ignore_case, MonoReflectionType *reftype)
+ves_icall_RuntimeType_GetPropertiesByName (MonoReflectionType *type, MonoString *name, guint32 bflags, MonoBoolean ignore_case, MonoReflectionType *reftype)
 {
        MonoError error;
        MonoDomain *domain; 
@@ -4237,7 +4237,9 @@ ves_icall_Type_GetPropertiesByName (MonoReflectionType *type, MonoString *name,
        klass = startklass = mono_class_from_mono_type (type->type);
 
        if (name != NULL) {
-               propname = mono_string_to_utf8 (name);
+               propname = mono_string_to_utf8_checked (name, &error);
+               if (mono_error_set_pending_exception (&error))
+                       return NULL;
                compare_func = (ignore_case) ? mono_utf8_strcasecmp : strcmp;
        }
 
@@ -4350,7 +4352,7 @@ event_equal (MonoEvent *event1, MonoEvent *event2)
 }
 
 ICALL_EXPORT MonoArray*
-ves_icall_Type_GetEvents_internal (MonoReflectionType *type, MonoString *name, guint32 bflags, MonoReflectionType *reftype)
+ves_icall_RuntimeType_GetEvents_internal (MonoReflectionType *type, MonoString *name, guint32 bflags, MonoReflectionType *reftype)
 {
        MonoError error;
        MonoDomain *domain; 
@@ -4426,7 +4428,9 @@ handle_parent:
 
                if (name != NULL) {
                        if (utf8_name == NULL) {
-                               utf8_name = mono_string_to_utf8 (name);
+                               utf8_name = mono_string_to_utf8_checked (name, &error);
+                               if (!is_ok (&error))
+                                       goto failure;
                                compare_func = (bflags & BFLAGS_IgnoreCase) ? mono_utf8_strcasecmp : strcmp;
                        }
 
@@ -4483,7 +4487,7 @@ failure:
 }
 
 ICALL_EXPORT MonoArray*
-ves_icall_Type_GetNestedTypes (MonoReflectionType *type, MonoString *name, guint32 bflags)
+ves_icall_RuntimeType_GetNestedTypes (MonoReflectionType *type, MonoString *name, guint32 bflags)
 {
        MonoError error;
        MonoReflectionType *rt;
@@ -4500,7 +4504,7 @@ ves_icall_Type_GetNestedTypes (MonoReflectionType *type, MonoString *name, guint
 
        domain = ((MonoObject *)type)->vtable->domain;
        if (type->type->byref) {
-               MonoArray *result = mono_array_new_cached (domain, mono_defaults.monotype_class, 0, &error);
+               MonoArray *result = mono_array_new_cached (domain, mono_defaults.runtimetype_class, 0, &error);
                mono_error_set_pending_exception (&error);
                return result;
        }
@@ -4534,7 +4538,9 @@ ves_icall_Type_GetNestedTypes (MonoReflectionType *type, MonoString *name, guint
 
                if (name != NULL) {
                        if (str == NULL) {
-                               str = mono_string_to_utf8 (name);
+                               str = mono_string_to_utf8_checked (name, &error);
+                               if (!is_ok (&error))
+                                       goto leave;
                                mono_identifier_unescape_type_name_chars (str);
                        }
 
@@ -4549,7 +4555,7 @@ ves_icall_Type_GetNestedTypes (MonoReflectionType *type, MonoString *name, guint
                mono_ptr_array_append (tmp_array, (MonoObject*) rt);
        }
 
-       res = mono_array_new_cached (domain, mono_defaults.monotype_class, mono_ptr_array_size (tmp_array), &error);
+       res = mono_array_new_cached (domain, mono_defaults.runtimetype_class, mono_ptr_array_size (tmp_array), &error);
        if (!is_ok (&error))
                goto leave;
 
@@ -4577,7 +4583,9 @@ ves_icall_System_Reflection_Assembly_InternalGetType (MonoReflectionAssembly *as
 
        /* On MS.NET, this does not fire a TypeResolve event */
        type_resolve = TRUE;
-       str = mono_string_to_utf8 (name);
+       str = mono_string_to_utf8_checked (name, &error);
+       if (mono_error_set_pending_exception (&error))
+               return NULL;
        /*g_print ("requested type %s in %s\n", str, assembly->assembly->aname.name);*/
        if (!mono_reflection_parse_type (str, &info)) {
                g_free (str);
@@ -4790,7 +4798,9 @@ ves_icall_System_Reflection_Assembly_load_with_partial_name (MonoString *mname,
        MonoImageOpenStatus status;
        MonoReflectionAssembly* result = NULL;
        
-       name = mono_string_to_utf8 (mname);
+       name = mono_string_to_utf8_checked (mname, &error);
+       if (mono_error_set_pending_exception (&error))
+               return NULL;
        res = mono_assembly_load_with_partial_name (name, &status);
 
        g_free (name);
@@ -5037,7 +5047,6 @@ ICALL_EXPORT void *
 ves_icall_System_Reflection_Assembly_GetManifestResourceInternal (MonoReflectionAssembly *assembly, MonoString *name, gint32 *size, MonoReflectionModule **ref_module) 
 {
        MonoError error;
-       char *n = mono_string_to_utf8 (name);
        MonoTableInfo *table = &assembly->assembly->image->tables [MONO_TABLE_MANIFESTRESOURCE];
        guint32 i;
        guint32 cols [MONO_MANIFEST_SIZE];
@@ -5045,6 +5054,10 @@ ves_icall_System_Reflection_Assembly_GetManifestResourceInternal (MonoReflection
        const char *val;
        MonoImage *module;
 
+       char *n = mono_string_to_utf8_checked (name, &error);
+       if (mono_error_set_pending_exception (&error))
+               return NULL;
+
        for (i = 0; i < table->rows; ++i) {
                mono_metadata_decode_row (table, i, cols, MONO_MANIFEST_SIZE);
                val = mono_metadata_string_heap (assembly->assembly->image, cols [MONO_MANIFEST_NAME]);
@@ -5091,7 +5104,9 @@ ves_icall_System_Reflection_Assembly_GetManifestResourceInfoInternal (MonoReflec
        const char *val;
        char *n;
 
-       n = mono_string_to_utf8 (name);
+       n = mono_string_to_utf8_checked (name, &error);
+       if (mono_error_set_pending_exception (&error))
+               return FALSE;
        for (i = 0; i < table->rows; ++i) {
                mono_metadata_decode_row (table, i, cols, MONO_MANIFEST_SIZE);
                val = mono_metadata_string_heap (assembly->assembly->image, cols [MONO_MANIFEST_NAME]);
@@ -5163,7 +5178,10 @@ ves_icall_System_Reflection_Assembly_GetFilesInternal (MonoReflectionAssembly *a
 
        /* check hash if needed */
        if (name) {
-               n = mono_string_to_utf8 (name);
+               n = mono_string_to_utf8_checked (name, &error);
+               if (mono_error_set_pending_exception (&error))
+                       return NULL;
+
                for (i = 0; i < table->rows; ++i) {
                        val = mono_metadata_string_heap (assembly->assembly->image, mono_metadata_decode_row_col (table, i, MONO_FILE_NAME));
                        if (strcmp (val, n) == 0) {
@@ -5454,7 +5472,7 @@ ves_icall_System_MonoType_getFullName (MonoReflectionType *object, gboolean full
 }
 
 ICALL_EXPORT int
-vell_icall_MonoType_get_core_clr_security_level (MonoReflectionType *rfield)
+vell_icall_RuntimeType_get_core_clr_security_level (MonoReflectionType *rfield)
 {
        MonoError error;
        MonoClass *klass = mono_class_from_mono_type (rfield->type);
@@ -5643,7 +5661,9 @@ ves_icall_System_Reflection_Assembly_InternalGetAssemblyName (MonoString *fname,
        MonoAssemblyName name;
        char *dirname;
 
-       filename = mono_string_to_utf8 (fname);
+       filename = mono_string_to_utf8_checked (fname, &error);
+       if (mono_error_set_pending_exception (&error))
+               return;
 
        dirname = g_path_get_dirname (filename);
        replace_shadow_path (mono_domain_get (), dirname, &filename);
@@ -5743,7 +5763,7 @@ mono_module_get_types (MonoDomain *domain, MonoImage *image, MonoArray **excepti
        } else {
                count = tdef->rows - 1;
        }
-       res = mono_array_new_checked (domain, mono_defaults.monotype_class, count, error);
+       res = mono_array_new_checked (domain, mono_defaults.runtimetype_class, count, error);
        return_val_if_nok (error, NULL);
        *exceptions = mono_array_new_checked (domain, mono_defaults.exception_class, count, error);
        return_val_if_nok (error, NULL);
@@ -5810,14 +5830,14 @@ ves_icall_System_Reflection_Assembly_GetTypes (MonoReflectionAssembly *assembly,
                                        len1 = mono_array_length (res);
                                        len2 = mono_array_length (res2);
 
-                                       res3 = mono_array_new_checked (domain, mono_defaults.monotype_class, len1 + len2, &error);
+                                       res3 = mono_array_new_checked (domain, mono_defaults.runtimetype_class, len1 + len2, &error);
                                        if (mono_error_set_pending_exception (&error))
                                                return NULL;
                                        mono_array_memcpy_refs (res3, 0, res, 0, len1);
                                        mono_array_memcpy_refs (res3, len1, res2, 0, len2);
                                        res = res3;
 
-                                       ex3 = mono_array_new_checked (domain, mono_defaults.monotype_class, len1 + len2, &error);
+                                       ex3 = mono_array_new_checked (domain, mono_defaults.runtimetype_class, len1 + len2, &error);
                                        if (mono_error_set_pending_exception (&error))
                                                return NULL;
                                        mono_array_memcpy_refs (ex3, 0, exceptions, 0, len1);
@@ -5904,7 +5924,10 @@ ves_icall_System_Reflection_AssemblyName_ParseName (MonoReflectionAssemblyName *
        gboolean is_token_defined;
 
        aname.public_key = NULL;
-       val = mono_string_to_utf8 (assname);
+       val = mono_string_to_utf8_checked (assname, &error);
+       if (mono_error_set_pending_exception (&error))
+               return FALSE;
+
        if (!mono_assembly_name_parse_full (val, &aname, TRUE, &is_version_defined, &is_token_defined)) {
                g_free ((guint8*) aname.public_key);
                g_free (val);
@@ -6005,7 +6028,7 @@ ves_icall_System_Reflection_Module_InternalGetTypes (MonoReflectionModule *modul
        int i;
 
        if (!module->image) {
-               MonoArray *arr = mono_array_new_checked (mono_object_domain (module), mono_defaults.monotype_class, 0, &error);
+               MonoArray *arr = mono_array_new_checked (mono_object_domain (module), mono_defaults.runtimetype_class, 0, &error);
                mono_error_set_pending_exception (&error);
                return arr;
        } else {
@@ -6368,8 +6391,10 @@ ves_icall_ModuleBuilder_create_modified_type (MonoReflectionTypeBuilder *tb, Mon
        MonoReflectionType *ret;
        MonoClass *klass;
        int isbyref = 0, rank;
-       char *str = mono_string_to_utf8 (smodifiers);
        char *p;
+       char *str = mono_string_to_utf8_checked (smodifiers, &error);
+       if (mono_error_set_pending_exception (&error))
+               return NULL;
 
        klass = mono_class_from_mono_type (tb->type.type);
        p = str;
@@ -6460,7 +6485,7 @@ check_for_invalid_type (MonoClass *klass, MonoError *error)
 
 }
 ICALL_EXPORT MonoReflectionType *
-ves_icall_Type_make_array_type (MonoReflectionType *type, int rank)
+ves_icall_RuntimeType_make_array_type (MonoReflectionType *type, int rank)
 {
        MonoError error;
        MonoReflectionType *ret;
@@ -6482,7 +6507,7 @@ ves_icall_Type_make_array_type (MonoReflectionType *type, int rank)
 }
 
 ICALL_EXPORT MonoReflectionType *
-ves_icall_Type_make_byref_type (MonoReflectionType *type)
+ves_icall_RuntimeType_make_byref_type (MonoReflectionType *type)
 {
        MonoError error;
        MonoReflectionType *ret;
@@ -6504,7 +6529,7 @@ ves_icall_Type_make_byref_type (MonoReflectionType *type)
 }
 
 ICALL_EXPORT MonoReflectionType *
-ves_icall_Type_MakePointerType (MonoReflectionType *type)
+ves_icall_RuntimeType_MakePointerType (MonoReflectionType *type)
 {
        MonoError error;
        MonoReflectionType *ret;
@@ -6867,13 +6892,16 @@ ves_icall_System_Environment_GetIs64BitOperatingSystem (void)
 ICALL_EXPORT MonoString *
 ves_icall_System_Environment_GetEnvironmentVariable (MonoString *name)
 {
+       MonoError error;
        const gchar *value;
        gchar *utf8_name;
 
        if (name == NULL)
                return NULL;
 
-       utf8_name = mono_string_to_utf8 (name); /* FIXME: this should be ascii */
+       utf8_name = mono_string_to_utf8_checked (name, &error); /* FIXME: this should be ascii */
+       if (mono_error_set_pending_exception (&error))
+               return NULL;
        value = g_getenv (utf8_name);
 
        g_free (utf8_name);
@@ -7034,7 +7062,9 @@ ves_icall_System_Environment_InternalSetEnvironmentVariable (MonoString *name, M
        g_free (utf16_name);
        g_free (utf16_value);
 #else
-       utf8_name = mono_string_to_utf8 (name); /* FIXME: this should be ascii */
+       utf8_name = mono_string_to_utf8_checked (name, &error); /* FIXME: this should be ascii */
+       if (mono_error_set_pending_exception (&error))
+               return;
 
        if ((value == NULL) || (mono_string_length (value) == 0) || (mono_string_chars (value)[0] == 0)) {
                g_unsetenv (utf8_name);
@@ -7519,9 +7549,11 @@ ves_icall_System_Configuration_DefaultConfig_get_machine_config_path (void)
        return mcpath;
 }
 
+/* this is an icall */
 static MonoString *
 get_bundled_app_config (void)
 {
+       MonoError error;
        const gchar *app_config;
        MonoDomain *domain;
        MonoString *file;
@@ -7535,7 +7567,9 @@ get_bundled_app_config (void)
                return NULL;
 
        // Retrieve config file and remove the extension
-       config_file_name = mono_string_to_utf8 (file);
+       config_file_name = mono_string_to_utf8_checked (file, &error);
+       if (mono_error_set_pending_exception (&error))
+               return NULL;
        config_file_path = mono_portability_find_file (config_file_name, TRUE);
        if (!config_file_path)
                config_file_path = config_file_name;
index e01f8be31d67a836e5f8c9e0b7bcffb725de557f..bcb0dc3c0146748719a55c6a9002fc609a2c61b4 100644 (file)
@@ -177,7 +177,9 @@ ves_icall_System_Globalization_CalendarData_fill_calendar_data (MonoCalendarData
        const CultureInfoEntry *ci;
        char *n;
 
-       n = mono_string_to_utf8 (name);
+       n = mono_string_to_utf8_checked (name, &error);
+       if (mono_error_set_pending_exception (&error))
+               return FALSE;
        ne = (const CultureInfoNameEntry *)mono_binary_search (n, culture_name_entries, NUM_CULTURE_ENTRIES,
                        sizeof (CultureInfoNameEntry), culture_name_locator);
        g_free (n);
@@ -574,7 +576,9 @@ ves_icall_System_Globalization_CultureInfo_construct_internal_locale_from_name (
        const CultureInfoNameEntry *ne;
        char *n;
        
-       n = mono_string_to_utf8 (name);
+       n = mono_string_to_utf8_checked (name, &error);
+       if (mono_error_set_pending_exception (&error))
+               return FALSE;
        ne = (const CultureInfoNameEntry *)mono_binary_search (n, culture_name_entries, NUM_CULTURE_ENTRIES,
                        sizeof (CultureInfoNameEntry), culture_name_locator);
 
@@ -623,10 +627,13 @@ MonoBoolean
 ves_icall_System_Globalization_RegionInfo_construct_internal_region_from_name (MonoRegionInfo *this_obj,
                MonoString *name)
 {
+       MonoError error;
        const RegionInfoNameEntry *ne;
        char *n;
        
-       n = mono_string_to_utf8 (name);
+       n = mono_string_to_utf8_checked (name, &error);
+       if (mono_error_set_pending_exception (&error))
+               return FALSE;
        ne = (const RegionInfoNameEntry *)mono_binary_search (n, region_name_entries, NUM_REGION_ENTRIES,
                sizeof (RegionInfoNameEntry), region_name_locator);
 
index 91fc1d62ac0bc0c1b17df7835eaec559d6f44f31..ceb5367974b80a15489cef2f71c72bd26c72687f 100644 (file)
@@ -266,6 +266,15 @@ ves_icall_mono_string_from_utf16 (gunichar2 *data)
        return result;
 }
 
+static char*
+ves_icall_mono_string_to_utf8 (MonoString *str)
+{
+       MonoError error;
+       char *result = mono_string_to_utf8_checked (str, &error);
+       mono_error_set_pending_exception (&error);
+       return result;
+}
+
 void
 mono_marshal_init (void)
 {
@@ -285,7 +294,7 @@ mono_marshal_init (void)
                register_icall (mono_string_from_byvalwstr, "mono_string_from_byvalwstr", "obj ptr int", FALSE);
                register_icall (mono_string_new_wrapper, "mono_string_new_wrapper", "obj ptr", FALSE);
                register_icall (mono_string_new_len_wrapper, "mono_string_new_len_wrapper", "obj ptr int", FALSE);
-               register_icall (mono_string_to_utf8, "mono_string_to_utf8", "ptr obj", FALSE);
+               register_icall (ves_icall_mono_string_to_utf8, "ves_icall_mono_string_to_utf8", "ptr obj", FALSE);
                register_icall (mono_string_to_lpstr, "mono_string_to_lpstr", "ptr obj", FALSE);
                register_icall (mono_string_to_ansibstr, "mono_string_to_ansibstr", "ptr object", FALSE);
                register_icall (mono_string_builder_to_utf8, "mono_string_builder_to_utf8", "ptr object", FALSE);
@@ -1084,7 +1093,10 @@ mono_string_to_lpstr (MonoString *s)
                return as;
        }
 #else
-       return mono_string_to_utf8 (s);
+       MonoError error;
+       char *result = mono_string_to_utf8_checked (s, &error);
+       mono_error_set_pending_exception (&error);
+       return result;
 #endif
 }      
 
@@ -1107,6 +1119,7 @@ mono_string_to_ansibstr (MonoString *string_obj)
 void
 mono_string_to_byvalstr (gpointer dst, MonoString *src, int size)
 {
+       MonoError error;
        char *s;
        int len;
 
@@ -1117,7 +1130,9 @@ mono_string_to_byvalstr (gpointer dst, MonoString *src, int size)
        if (!src)
                return;
 
-       s = mono_string_to_utf8 (src);
+       s = mono_string_to_utf8_checked (src, &error);
+       if (mono_error_set_pending_exception (&error))
+               return;
        len = MIN (size, strlen (s));
        if (len >= size)
                len--;
@@ -3012,12 +3027,16 @@ mono_delegate_end_invoke (MonoDelegate *delegate, gpointer *params)
 
        if (exc) {
                if (((MonoException*)exc)->stack_trace) {
-                       char *strace = mono_string_to_utf8 (((MonoException*)exc)->stack_trace);
-                       char  *tmp;
-                       tmp = g_strdup_printf ("%s\nException Rethrown at:\n", strace);
-                       g_free (strace);        
-                       MONO_OBJECT_SETREF (((MonoException*)exc), stack_trace, mono_string_new (domain, tmp));
-                       g_free (tmp);
+                       MonoError inner_error;
+                       char *strace = mono_string_to_utf8_checked (((MonoException*)exc)->stack_trace, &inner_error);
+                       if (is_ok (&inner_error)) {
+                               char  *tmp;
+                               tmp = g_strdup_printf ("%s\nException Rethrown at:\n", strace);
+                               g_free (strace);        
+                               MONO_OBJECT_SETREF (((MonoException*)exc), stack_trace, mono_string_new (domain, tmp));
+                               g_free (tmp);
+                       } else
+                               mono_error_cleanup (&inner_error); /* no stack trace, but at least throw the original exception */
                }
                mono_set_pending_exception ((MonoException*)exc);
        }
@@ -10774,6 +10793,7 @@ ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type (gpointer s
 int
 ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf (MonoReflectionType *type, MonoString *field_name)
 {
+       MonoError error;
        MonoMarshalType *info;
        MonoClass *klass;
        char *fname;
@@ -10782,7 +10802,9 @@ ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf (MonoReflectionType *t
        MONO_CHECK_ARG_NULL (type, 0);
        MONO_CHECK_ARG_NULL (field_name, 0);
 
-       fname = mono_string_to_utf8 (field_name);
+       fname = mono_string_to_utf8_checked (field_name, &error);
+       if (mono_error_set_pending_exception (&error))
+               return 0;
        klass = mono_class_from_mono_type (type->type);
        if (!mono_class_init (klass)) {
                mono_set_pending_exception (mono_class_get_exception_for_failure (klass));
@@ -10831,10 +10853,13 @@ ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf (MonoReflectionType *t
 gpointer
 ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi (MonoString *string)
 {
+       MonoError error;
 #ifdef HOST_WIN32
        char* tres, *ret;
        size_t len;
-       tres = mono_string_to_utf8 (string);
+       tres = mono_string_to_utf8_checked (string, &error);
+       if (mono_error_set_pending_exception (&error))
+               return NULL;
        if (!tres)
                return tres;
 
@@ -10845,7 +10870,9 @@ ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi (MonoString
        return ret;
 
 #else
-       return mono_string_to_utf8 (string);
+       char *ret = mono_string_to_utf8_checked (string, &error);
+       mono_error_set_pending_exception (&error);
+       return ret;
 #endif
 }
 
index fb205e80eaff2781966cdb448262ac85e9bac19f..dbd443d7328d4a77a92ecfb7fa22120516686886 100644 (file)
@@ -802,16 +802,14 @@ fill_sample (MonoCounterSample *sample)
 }
 
 static int
-id_from_string (MonoString *instance, gboolean is_process)
+id_from_string (const gchar *id_str, gboolean is_process)
 {
        int id = -1;
-       if (mono_string_length (instance)) {
-               char *id_str = mono_string_to_utf8 (instance);
+       if (strcmp("", id_str) != 0) {
                char *end;
                id = strtol (id_str, &end, 0);
                if (end == id_str && !is_process)
                        id = -1;
-               g_free (id_str);
        }
        return id;
 }
@@ -849,7 +847,7 @@ get_cpu_counter (ImplVtable *vtable, MonoBoolean only_value, MonoCounterSample *
 }
 
 static void*
-cpu_get_impl (MonoString* counter, MonoString* instance, int *type, MonoBoolean *custom)
+cpu_get_impl (MonoString* counter, const gchar* instance, int *type, MonoBoolean *custom)
 {
        int id = id_from_string (instance, FALSE) << 5;
        const CounterDesc *cdesc;
@@ -910,7 +908,7 @@ network_cleanup (ImplVtable *vtable)
 }
 
 static void*
-network_get_impl (MonoString* counter, MonoString* instance, int *type, MonoBoolean *custom)
+network_get_impl (MonoString* counter, const gchar* instance, int *type, MonoBoolean *custom)
 {
        const CounterDesc *cdesc;
        NetworkVtableArg *narg;
@@ -919,7 +917,7 @@ network_get_impl (MonoString* counter, MonoString* instance, int *type, MonoBool
 
        *custom = FALSE;
        if ((cdesc = get_counter_in_category (&predef_categories [CATEGORY_NETWORK], counter))) {
-               instance_name = mono_string_to_utf8 (instance);
+               instance_name = g_strdup (instance);
                narg = g_new0 (NetworkVtableArg, 1);
                narg->id = cdesc->id;
                narg->name = instance_name;
@@ -971,7 +969,7 @@ get_process_counter (ImplVtable *vtable, MonoBoolean only_value, MonoCounterSamp
 }
 
 static void*
-process_get_impl (MonoString* counter, MonoString* instance, int *type, MonoBoolean *custom)
+process_get_impl (MonoString* counter, const gchar* instance, int *type, MonoBoolean *custom)
 {
        int id = id_from_string (instance, TRUE) << 5;
        const CounterDesc *cdesc;
@@ -1009,7 +1007,7 @@ mono_mem_counter (ImplVtable *vtable, MonoBoolean only_value, MonoCounterSample
 }
 
 static void*
-mono_mem_get_impl (MonoString* counter, MonoString* instance, int *type, MonoBoolean *custom)
+mono_mem_get_impl (MonoString* counter, const gchar* instance, int *type, MonoBoolean *custom)
 {
        const CounterDesc *cdesc;
        *custom = FALSE;
@@ -1041,15 +1039,13 @@ predef_readonly_counter (ImplVtable *vtable, MonoBoolean only_value, MonoCounter
 }
 
 static ImplVtable*
-predef_vtable (void *arg, MonoString *instance)
+predef_vtable (void *arg, const gchar *pids)
 {
        MonoSharedArea *area;
        PredefVtable *vtable;
-       char *pids = mono_string_to_utf8 (instance);
        int pid;
 
        pid = atoi (pids);
-       g_free (pids);
        area = load_sarea_for_pid (pid);
        if (!area)
                return NULL;
@@ -1194,13 +1190,13 @@ predef_writable_update (ImplVtable *vtable, MonoBoolean do_incr, gint64 value)
 }
 
 static void*
-predef_writable_get_impl (int cat, MonoString* counter, MonoString* instance, int *type, MonoBoolean *custom)
+predef_writable_get_impl (int cat, MonoString* counter, const gchar *instance, int *type, MonoBoolean *custom)
 {
        const CounterDesc *cdesc;
        *custom = TRUE;
        if ((cdesc = get_counter_in_category (&predef_categories [cat], counter))) {
                *type = cdesc->type;
-               if (instance == NULL || mono_string_compare_ascii (instance, "") == 0)
+               if (instance == NULL || strcmp (instance, "") == 0)
                        return create_vtable (GINT_TO_POINTER ((cdesc->id << 16) | cat), predef_writable_counter, predef_writable_update);
                else
                        return predef_vtable (GINT_TO_POINTER ((cdesc->id << 16) | cat), instance);
@@ -1298,17 +1294,19 @@ custom_get_value_address (SharedCounter *scounter, SharedInstance* sinst)
 }
 
 static void*
-custom_get_impl (SharedCategory *cat, MonoString* counter, MonoString* instance, int *type)
+custom_get_impl (SharedCategory *cat, MonoString *counter, MonoString* instance, int *type, MonoError *error)
 {
        SharedCounter *scounter;
        SharedInstance* inst;
        char *name;
 
+       mono_error_init (error);
        scounter = find_custom_counter (cat, counter);
        if (!scounter)
                return NULL;
+       name = mono_string_to_utf8_checked (counter, error);
+       return_val_if_nok (error, NULL);
        *type = simple_type_to_type [scounter->type];
-       name = mono_string_to_utf8 (counter);
        inst = custom_get_instance (cat, scounter, name);
        g_free (name);
        if (!inst)
@@ -1331,7 +1329,9 @@ void*
 mono_perfcounter_get_impl (MonoString* category, MonoString* counter, MonoString* instance,
                MonoString* machine, int *type, MonoBoolean *custom)
 {
+       MonoError error;
        const CategoryDesc *cdesc;
+       void *result = NULL;
        /* no support for counters on other machines */
        if (mono_string_compare_ascii (machine, "."))
                return NULL;
@@ -1341,17 +1341,27 @@ mono_perfcounter_get_impl (MonoString* category, MonoString* counter, MonoString
                if (!scat)
                        return NULL;
                *custom = TRUE;
-               return custom_get_impl (scat, counter, instance, type);
+               result = custom_get_impl (scat, counter, instance, type, &error);
+               if (mono_error_set_pending_exception (&error))
+                       return NULL;
+               return result;
        }
+       gchar *c_instance = mono_string_to_utf8_checked (instance, &error);
+       if (mono_error_set_pending_exception (&error))
+               return NULL;
        switch (cdesc->id) {
        case CATEGORY_CPU:
-               return cpu_get_impl (counter, instance, type, custom);
+               result = cpu_get_impl (counter, c_instance, type, custom);
+               break;
        case CATEGORY_PROC:
-               return process_get_impl (counter, instance, type, custom);
+               result = process_get_impl (counter, c_instance, type, custom);
+               break;
        case CATEGORY_MONO_MEM:
-               return mono_mem_get_impl (counter, instance, type, custom);
+               result = mono_mem_get_impl (counter, c_instance, type, custom);
+               break;
        case CATEGORY_NETWORK:
-               return network_get_impl (counter, instance, type, custom);
+               result = network_get_impl (counter, c_instance, type, custom);
+               break;
        case CATEGORY_JIT:
        case CATEGORY_EXC:
        case CATEGORY_GC:
@@ -1362,9 +1372,11 @@ mono_perfcounter_get_impl (MonoString* category, MonoString* counter, MonoString
        case CATEGORY_SECURITY:
        case CATEGORY_ASPNET:
        case CATEGORY_THREADPOOL:
-               return predef_writable_get_impl (cdesc->id, counter, instance, type, custom);
+               result = predef_writable_get_impl (cdesc->id, counter, c_instance, type, custom);
+               break;
        }
-       return NULL;
+       g_free (c_instance);
+       return result;
 }
 
 MonoBoolean
@@ -1490,7 +1502,6 @@ mono_perfcounter_create (MonoString *category, MonoString *help, int type, MonoA
        SharedCategory *cat;
 
        /* FIXME: ensure there isn't a category created already */
-       mono_error_init (&error);
        name = mono_string_to_utf8_checked (category, &error);
        if (!mono_error_ok (&error))
                goto failure;
@@ -1563,6 +1574,7 @@ failure:
 int
 mono_perfcounter_instance_exists (MonoString *instance, MonoString *category, MonoString *machine)
 {
+       MonoError error;
        const CategoryDesc *cdesc;
        SharedInstance *sinst;
        char *name;
@@ -1576,7 +1588,9 @@ mono_perfcounter_instance_exists (MonoString *instance, MonoString *category, Mo
                scat = find_custom_category (category);
                if (!scat)
                        return FALSE;
-               name = mono_string_to_utf8 (instance);
+               name = mono_string_to_utf8_checked (instance, &error);
+               if (mono_error_set_pending_exception (&error))
+                       return FALSE;
                sinst = find_custom_instance (scat, name);
                g_free (name);
                if (sinst)
index 4b5ca588056df60fcb60404b58fee9d8bd18fd79..d651b0e5b08387b9b4829e0ce74b612e1fc3cc54 100644 (file)
@@ -21,6 +21,7 @@
 
 extern MonoBoolean ves_icall_System_Net_NetworkInformation_MacOsIPInterfaceProperties_ParseRouteInfo_internal(MonoString *iface, MonoArray **gw_addr_list)
 {
+       MonoError error;
        size_t needed;
        in_addr_t in;
        int mib[6];
@@ -31,7 +32,10 @@ extern MonoBoolean ves_icall_System_Net_NetworkInformation_MacOsIPInterfacePrope
 
        MonoDomain *domain = mono_domain_get ();
 
-       ifacename = mono_string_to_utf8(iface);
+       ifacename = mono_string_to_utf8_checked(iface, &error);
+       if (mono_error_set_pending_exception (&error))
+               return FALSE;
+
        if ((ifindex = if_nametoindex(ifacename)) == 0)
                return FALSE;
        g_free(ifacename);
index 8c727448a2d5449c4b960f2f586c79ba7efc753e..e7cc7db89cd6efb69dd4d1daa72bd660115a78a2 100644 (file)
@@ -263,6 +263,7 @@ struct _MonoReflectionType {
        MonoType  *type;
 };
 
+/* This corresponds to System.RuntimeType */
 typedef struct {
        MonoReflectionType type;
        MonoObject *type_info;
@@ -1622,6 +1623,12 @@ mono_property_set_value_checked (MonoProperty *prop, void *obj, void **params, M
 MonoObject*
 mono_property_get_value_checked (MonoProperty *prop, void *obj, void **params, MonoError *error);
 
+MonoString*
+mono_object_to_string_checked (MonoObject *obj, MonoError *error);
+
+MonoString*
+mono_object_try_to_string (MonoObject *obj, MonoObject **exc, MonoError *error);
+
 char *
 mono_string_to_utf8_ignore (MonoString *s);
 
index 7afcc00ad7c2c7001f3bca5d9f0ec26a3df1270f..bc311a2336fac83e477d8f89f4c3e16038050f63 100644 (file)
@@ -2216,7 +2216,7 @@ mono_class_create_runtime_vtable (MonoDomain *domain, MonoClass *klass, MonoErro
         * re-acquire them and check if another thread has created the vtable in the meantime.
         */
        /* Special case System.MonoType to avoid infinite recursion */
-       if (klass != mono_defaults.monotype_class) {
+       if (klass != mono_defaults.runtimetype_class) {
                vt->type = mono_type_get_object_checked (domain, &klass->byval_arg, error);
                if (!is_ok (error)) {
                        mono_domain_unlock (domain);
@@ -2224,7 +2224,7 @@ mono_class_create_runtime_vtable (MonoDomain *domain, MonoClass *klass, MonoErro
                        return NULL;
                }
 
-               if (mono_object_get_class ((MonoObject *)vt->type) != mono_defaults.monotype_class)
+               if (mono_object_get_class ((MonoObject *)vt->type) != mono_defaults.runtimetype_class)
                        /* This is unregistered in
                           unregister_vtable_reflection_type() in
                           domain.c. */
@@ -2275,7 +2275,7 @@ mono_class_create_runtime_vtable (MonoDomain *domain, MonoClass *klass, MonoErro
                klass->runtime_info = runtime_info;
        }
 
-       if (klass == mono_defaults.monotype_class) {
+       if (klass == mono_defaults.runtimetype_class) {
                vt->type = mono_type_get_object_checked (domain, &klass->byval_arg, error);
                if (!is_ok (error)) {
                        mono_domain_unlock (domain);
@@ -2283,7 +2283,7 @@ mono_class_create_runtime_vtable (MonoDomain *domain, MonoClass *klass, MonoErro
                        return NULL;
                }
 
-               if (mono_object_get_class ((MonoObject *)vt->type) != mono_defaults.monotype_class)
+               if (mono_object_get_class ((MonoObject *)vt->type) != mono_defaults.runtimetype_class)
                        /* This is unregistered in
                           unregister_vtable_reflection_type() in
                           domain.c. */
@@ -3007,7 +3007,7 @@ mono_runtime_invoke (MonoMethod *method, void *obj, void **params, MonoObject **
                        mono_error_cleanup (&error);
        } else {
                res = mono_runtime_invoke_checked (method, obj, params, &error);
-               mono_error_raise_exception (&error);
+               mono_error_raise_exception (&error); /* OK to throw, external only without a good alternative */
        }
        return res;
 }
@@ -4015,7 +4015,7 @@ mono_runtime_delegate_invoke (MonoObject *delegate, void **params, MonoObject **
                }
        } else {
                MonoObject *result = mono_runtime_delegate_invoke_checked (delegate, params, &error);
-               mono_error_raise_exception (&error); /* FIXME don't raise here */
+               mono_error_raise_exception (&error); /* OK to throw, external only without a good alternative */
                return result;
        }
 }
@@ -6833,8 +6833,10 @@ mono_string_to_utf8 (MonoString *s)
        MonoError error;
        char *result = mono_string_to_utf8_checked (s, &error);
        
-       if (!mono_error_ok (&error))
-               mono_error_raise_exception (&error);
+       if (!is_ok (&error)) {
+               mono_error_cleanup (&error);
+               return NULL;
+       }
        return result;
 }
 
@@ -7581,25 +7583,24 @@ mono_message_invoke (MonoObject *target, MonoMethodMessage *msg,
 }
 
 /**
- * mono_object_to_string:
+ * prepare_to_string_method:
  * @obj: The object
- * @exc: Any exception thrown by ToString (). May be NULL.
+ * @target: Set to @obj or unboxed value if a valuetype
  *
- * Returns: the result of calling ToString () on an object.
+ * Returns: the ToString override for @obj. If @obj is a valuetype, @target is unboxed otherwise it's @obj.
  */
-MonoString *
-mono_object_to_string (MonoObject *obj, MonoObject **exc)
+static MonoMethod *
+prepare_to_string_method (MonoObject *obj, void **target)
 {
        MONO_REQ_GC_UNSAFE_MODE;
 
        static MonoMethod *to_string = NULL;
-       MonoError error;
        MonoMethod *method;
-       MonoString *s;
-       void *target = obj;
-
+       g_assert (target);
        g_assert (obj);
 
+       *target = obj;
+
        if (!to_string)
                to_string = mono_class_get_method_from_name_flags (mono_get_object_class (), "ToString", 0, METHOD_ATTRIBUTE_VIRTUAL | METHOD_ATTRIBUTE_PUBLIC);
 
@@ -7607,9 +7608,25 @@ mono_object_to_string (MonoObject *obj, MonoObject **exc)
 
        // Unbox value type if needed
        if (mono_class_is_valuetype (mono_method_get_class (method))) {
-               target = mono_object_unbox (obj);
+               *target = mono_object_unbox (obj);
        }
+       return method;
+}
 
+/**
+ * mono_object_to_string:
+ * @obj: The object
+ * @exc: Any exception thrown by ToString (). May be NULL.
+ *
+ * Returns: the result of calling ToString () on an object.
+ */
+MonoString *
+mono_object_to_string (MonoObject *obj, MonoObject **exc)
+{
+       MonoError error;
+       MonoString *s = NULL;
+       void *target;
+       MonoMethod *method = prepare_to_string_method (obj, &target);
        if (exc) {
                s = (MonoString *) mono_runtime_try_invoke (method, target, NULL, exc, &error);
                if (*exc == NULL && !mono_error_ok (&error))
@@ -7618,12 +7635,52 @@ mono_object_to_string (MonoObject *obj, MonoObject **exc)
                        mono_error_cleanup (&error);
        } else {
                s = (MonoString *) mono_runtime_invoke_checked (method, target, NULL, &error);
-               mono_error_raise_exception (&error); /* FIXME don't raise here */
+               mono_error_raise_exception (&error); /* OK to throw, external only without a good alternative */
        }
 
        return s;
 }
 
+/**
+ * mono_object_to_string_checked:
+ * @obj: The object
+ * @error: Set on error.
+ *
+ * Returns: the result of calling ToString () on an object. If the
+ * method cannot be invoked or if it raises an exception, sets @error
+ * and returns NULL.
+ */
+MonoString *
+mono_object_to_string_checked (MonoObject *obj, MonoError *error)
+{
+       mono_error_init (error);
+       void *target;
+       MonoMethod *method = prepare_to_string_method (obj, &target);
+       return (MonoString*) mono_runtime_invoke_checked (method, target, NULL, error);
+}
+
+/**
+ * mono_object_try_to_string:
+ * @obj: The object
+ * @exc: Any exception thrown by ToString (). Must not be NULL.
+ * @error: Set if method cannot be invoked.
+ *
+ * Returns: the result of calling ToString () on an object. If the
+ * method cannot be invoked sets @error, if it raises an exception sets @exc,
+ * and returns NULL.
+ */
+MonoString *
+mono_object_try_to_string (MonoObject *obj, MonoObject **exc, MonoError *error)
+{
+       g_assert (exc);
+       mono_error_init (error);
+       void *target;
+       MonoMethod *method = prepare_to_string_method (obj, &target);
+       return (MonoString*) mono_runtime_try_invoke (method, target, NULL, exc, error);
+}
+
+
+
 /**
  * mono_print_unhandled_exception:
  * @exc: The exception
@@ -7653,7 +7710,11 @@ mono_print_unhandled_exception (MonoObject *exc)
                        free_message = TRUE;
                } else {
                        MonoObject *other_exc = NULL;
-                       str = mono_object_to_string (exc, &other_exc);
+                       str = mono_object_try_to_string (exc, &other_exc, &error);
+                       if (other_exc == NULL && !is_ok (&error))
+                               other_exc = (MonoObject*)mono_error_convert_to_exception (&error);
+                       else
+                               mono_error_cleanup (&error);
                        if (other_exc) {
                                char *original_backtrace = mono_exception_get_managed_backtrace ((MonoException*)exc);
                                char *nested_backtrace = mono_exception_get_managed_backtrace ((MonoException*)other_exc);
index 4956917e16620845645aba047a3af4b564fa144d..0a5a7b0bc0ff9897b4bff67481917ca192369a5b 100644 (file)
@@ -145,6 +145,7 @@ MONO_RT_EXTERNAL_ONLY
 MONO_API MonoString*
 mono_string_new_utf32      (MonoDomain *domain, const mono_unichar4 *text, int32_t len);
 
+MONO_RT_EXTERNAL_ONLY
 MONO_API char *
 mono_string_to_utf8        (MonoString *string_obj);
 
@@ -174,6 +175,7 @@ mono_string_hash            (MonoString *s);
 MONO_API int
 mono_object_hash            (MonoObject* obj);
 
+MONO_RT_EXTERNAL_ONLY
 MONO_API MonoString *
 mono_object_to_string (MonoObject *obj, MonoObject **exc);
 
index d74ca084f10e586c0521ee9d848db9c1dcf42fbf..138bd98553b4a5d2434edbf760af5e32602f5fb5 100644 (file)
@@ -693,6 +693,7 @@ ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal (MonoProcessStartIn
 MonoBoolean
 ves_icall_System_Diagnostics_Process_CreateProcess_internal (MonoProcessStartInfo *proc_start_info, HANDLE stdin_handle, HANDLE stdout_handle, HANDLE stderr_handle, MonoProcInfo *process_info)
 {
+       MonoError error G_GNUC_UNUSED;
        gboolean ret;
        gunichar2 *dir;
        STARTUPINFO startinfo={0};
@@ -727,7 +728,11 @@ ves_icall_System_Diagnostics_Process_CreateProcess_internal (MonoProcessStartInf
        free_shell_path = FALSE;
        if (cmd) {
                gchar *newcmd, *tmp;
-               tmp = mono_string_to_utf8 (cmd);
+               tmp = mono_string_to_utf8_checked (cmd, &error);
+               if (mono_error_set_pending_exception (&error)) {
+                       g_free (spath);
+                       return NULL;
+               }
                newcmd = g_strdup_printf ("%s %s", spath, tmp);
                cmd = mono_string_new_wrapper (newcmd);
                g_free (tmp);
index 70725ccaeed771c01c908b14ef7eac1a64e5432a..a9b46372aa63bdcd79e471571bbd63361b08624a 100644 (file)
@@ -527,11 +527,13 @@ string_heap_insert (MonoDynamicStream *sh, const char *str)
 }
 
 static guint32
-string_heap_insert_mstring (MonoDynamicStream *sh, MonoString *str)
+string_heap_insert_mstring (MonoDynamicStream *sh, MonoString *str, MonoError *error)
 {
        MONO_REQ_GC_UNSAFE_MODE;
 
-       char *name = mono_string_to_utf8 (str);
+       mono_error_init (error);
+       char *name = mono_string_to_utf8_checked (str, error);
+       return_val_if_nok (error, -1);
        guint32 idx;
        idx = string_heap_insert (sh, name);
        g_free (name);
@@ -1264,7 +1266,12 @@ method_encode_code (MonoDynamicImage *assembly, ReflectionMethodBuilder *mb, Mon
        } else {
                code = mb->code;
                if (code == NULL){
-                       char *name = mono_string_to_utf8 (mb->name);
+                       MonoError inner_error;
+                       char *name = mono_string_to_utf8_checked (mb->name, &inner_error);
+                       if (!is_ok (&inner_error)) {
+                               name = g_strdup ("");
+                               mono_error_cleanup (&inner_error);
+                       }
                        char *str = g_strdup_printf ("Method %s does not have any IL associated", name);
                        mono_error_set_argument (error, NULL, "a method does not have any IL associated");
                        g_free (str);
@@ -1662,7 +1669,8 @@ mono_image_basic_method (ReflectionMethodBuilder *mb, MonoDynamicImage *assembly
        *mb->table_idx = table->next_idx ++;
        g_hash_table_insert (assembly->method_to_table_idx, mb->mhandle, GUINT_TO_POINTER ((*mb->table_idx)));
        values = table->values + *mb->table_idx * MONO_METHOD_SIZE;
-       values [MONO_METHOD_NAME] = string_heap_insert_mstring (&assembly->sheap, mb->name);
+       values [MONO_METHOD_NAME] = string_heap_insert_mstring (&assembly->sheap, mb->name, error);
+       return_val_if_nok (error, FALSE);
        values [MONO_METHOD_FLAGS] = mb->attrs;
        values [MONO_METHOD_IMPLFLAGS] = mb->iattrs;
        values [MONO_METHOD_SIGNATURE] = method_builder_encode_signature (assembly, mb, error);
@@ -1697,7 +1705,8 @@ mono_image_basic_method (ReflectionMethodBuilder *mb, MonoDynamicImage *assembly
                                values [MONO_PARAM_FLAGS] = pb->attrs;
                                values [MONO_PARAM_SEQUENCE] = i;
                                if (pb->name != NULL) {
-                                       values [MONO_PARAM_NAME] = string_heap_insert_mstring (&assembly->sheap, pb->name);
+                                       values [MONO_PARAM_NAME] = string_heap_insert_mstring (&assembly->sheap, pb->name, error);
+                                       return_val_if_nok (error, FALSE);
                                } else {
                                        values [MONO_PARAM_NAME] = 0;
                                }
@@ -1926,11 +1935,15 @@ mono_image_get_method_info (MonoReflectionMethodBuilder *mb, MonoDynamicImage *a
                
                values [MONO_IMPLMAP_FLAGS] = (mb->native_cc << 8) | ncharset | extra_flags;
                values [MONO_IMPLMAP_MEMBER] = (mb->table_idx << 1) | 1; /* memberforwarded: method */
-               if (mb->dllentry)
-                       values [MONO_IMPLMAP_NAME] = string_heap_insert_mstring (&assembly->sheap, mb->dllentry);
-               else
-                       values [MONO_IMPLMAP_NAME] = string_heap_insert_mstring (&assembly->sheap, mb->name);
-               moduleref = string_heap_insert_mstring (&assembly->sheap, mb->dll);
+               if (mb->dllentry) {
+                       values [MONO_IMPLMAP_NAME] = string_heap_insert_mstring (&assembly->sheap, mb->dllentry, error);
+                       return_val_if_nok (error, FALSE);
+               } else {
+                       values [MONO_IMPLMAP_NAME] = string_heap_insert_mstring (&assembly->sheap, mb->name, error);
+                       return_val_if_nok (error, FALSE);
+               }
+               moduleref = string_heap_insert_mstring (&assembly->sheap, mb->dll, error);
+               return_val_if_nok (error, FALSE);
                if (!(values [MONO_IMPLMAP_SCOPE] = find_index_in_table (assembly, MONO_TABLE_MODULEREF, MONO_MODULEREF_NAME, moduleref))) {
                        table = &assembly->tables [MONO_TABLE_MODULEREF];
                        table->rows ++;
@@ -2233,7 +2246,11 @@ encode_marshal_blob (MonoDynamicImage *assembly, MonoReflectionMarshal *minfo, M
                break;
        case MONO_NATIVE_CUSTOM:
                if (minfo->guid) {
-                       str = mono_string_to_utf8 (minfo->guid);
+                       str = mono_string_to_utf8_checked (minfo->guid, error);
+                       if (!is_ok (error)) {
+                               sigbuffer_free (&buf);
+                               return 0;
+                       }
                        len = strlen (str);
                        sigbuffer_add_value (&buf, len);
                        sigbuffer_add_mem (&buf, str, len);
@@ -2252,8 +2269,13 @@ encode_marshal_blob (MonoDynamicImage *assembly, MonoReflectionMarshal *minfo, M
                                        return 0;
                                }
                                str = type_get_fully_qualified_name (marshaltype);
-                       } else
-                               str = mono_string_to_utf8 (minfo->marshaltype);
+                       } else {
+                               str = mono_string_to_utf8_checked (minfo->marshaltype, error);
+                               if (!is_ok (error)) {
+                                       sigbuffer_free (&buf);
+                                       return 0;
+                               }
+                       }
                        len = strlen (str);
                        sigbuffer_add_value (&buf, len);
                        sigbuffer_add_mem (&buf, str, len);
@@ -2263,7 +2285,11 @@ encode_marshal_blob (MonoDynamicImage *assembly, MonoReflectionMarshal *minfo, M
                        sigbuffer_add_value (&buf, 0);
                }
                if (minfo->mcookie) {
-                       str = mono_string_to_utf8 (minfo->mcookie);
+                       str = mono_string_to_utf8_checked (minfo->mcookie, error);
+                       if (!is_ok (error)) {
+                               sigbuffer_free (&buf);
+                               return 0;
+                       }
                        len = strlen (str);
                        sigbuffer_add_value (&buf, len);
                        sigbuffer_add_mem (&buf, str, len);
@@ -2297,7 +2323,8 @@ mono_image_get_field_info (MonoReflectionFieldBuilder *fb, MonoDynamicImage *ass
        fb->table_idx = table->next_idx ++;
        g_hash_table_insert (assembly->field_to_table_idx, fb->handle, GUINT_TO_POINTER (fb->table_idx));
        values = table->values + fb->table_idx * MONO_FIELD_SIZE;
-       values [MONO_FIELD_NAME] = string_heap_insert_mstring (&assembly->sheap, fb->name);
+       values [MONO_FIELD_NAME] = string_heap_insert_mstring (&assembly->sheap, fb->name, error);
+       return_if_nok (error);
        values [MONO_FIELD_FLAGS] = fb->attrs;
        values [MONO_FIELD_SIGNATURE] = field_encode_signature (assembly, fb, error);
        return_if_nok (error);
@@ -2433,7 +2460,8 @@ mono_image_get_property_info (MonoReflectionPropertyBuilder *pb, MonoDynamicImag
        table = &assembly->tables [MONO_TABLE_PROPERTY];
        pb->table_idx = table->next_idx ++;
        values = table->values + pb->table_idx * MONO_PROPERTY_SIZE;
-       values [MONO_PROPERTY_NAME] = string_heap_insert_mstring (&assembly->sheap, pb->name);
+       values [MONO_PROPERTY_NAME] = string_heap_insert_mstring (&assembly->sheap, pb->name, error);
+       return_if_nok (error);
        values [MONO_PROPERTY_FLAGS] = pb->attrs;
        values [MONO_PROPERTY_TYPE] = property_encode_signature (assembly, pb, error);
        return_if_nok (error);
@@ -2494,7 +2522,8 @@ mono_image_get_event_info (MonoReflectionEventBuilder *eb, MonoDynamicImage *ass
        table = &assembly->tables [MONO_TABLE_EVENT];
        eb->table_idx = table->next_idx ++;
        values = table->values + eb->table_idx * MONO_EVENT_SIZE;
-       values [MONO_EVENT_NAME] = string_heap_insert_mstring (&assembly->sheap, eb->name);
+       values [MONO_EVENT_NAME] = string_heap_insert_mstring (&assembly->sheap, eb->name, error);
+       return_if_nok (error);
        values [MONO_EVENT_FLAGS] = eb->attrs;
        MonoType *ebtype = mono_reflection_type_get_handle (eb->type, error);
        return_if_nok (error);
@@ -2977,7 +3006,8 @@ mono_image_get_methodref_token_for_methodbuilder (MonoDynamicImage *assembly, Mo
                parent = mono_image_typedef_or_ref (assembly, t);
        }
 
-       char *name = mono_string_to_utf8 (method->name);
+       char *name = mono_string_to_utf8_checked (method->name, error);
+       return_val_if_nok (error, 0);
 
        token = mono_image_add_memberef_row (assembly, parent, name, sig);
        g_free (name);
@@ -3127,7 +3157,8 @@ mono_image_get_ctorbuilder_token (MonoDynamicImage *assembly, MonoReflectionCtor
                parent = mono_image_typedef_or_ref (assembly, type);
        }
        
-       name = mono_string_to_utf8 (rmb.name);
+       name = mono_string_to_utf8_checked (rmb.name, error);
+       return_val_if_nok (error, 0);
        sig = method_builder_encode_signature (assembly, &rmb, error);
        return_val_if_nok (error, 0);
 
@@ -3228,7 +3259,8 @@ mono_image_get_field_on_inst_token (MonoDynamicImage *assembly, MonoReflectionFi
 
                guint32 sig_token = field_encode_signature (assembly, fb, error);
                return_val_if_nok (error, 0);
-               name = mono_string_to_utf8 (fb->name);
+               name = mono_string_to_utf8_checked (fb->name, error);
+               return_val_if_nok (error, 0);
                token = mono_image_get_memberref_token (assembly, &klass->byval_arg, name, sig_token);
                g_free (name);          
        } else if (is_sr_mono_field (mono_object_class (f->fb))) {
@@ -3284,7 +3316,8 @@ mono_image_get_ctor_on_inst_token (MonoDynamicImage *assembly, MonoReflectionCto
                sig = method_builder_encode_signature (assembly, &rmb, error);
                return_val_if_nok (error, 0);
 
-               name = mono_string_to_utf8 (rmb.name);
+               name = mono_string_to_utf8_checked (rmb.name, error);
+               return_val_if_nok (error, 0);
 
                token = mono_image_get_memberref_token (assembly, &klass->byval_arg, name, sig);
                g_free (name);
@@ -3396,7 +3429,8 @@ mono_image_get_method_on_inst_token (MonoDynamicImage *assembly, MonoReflectionM
                sig = method_builder_encode_signature (assembly, &rmb, error);
                return_val_if_nok (error, 0);
 
-               name = mono_string_to_utf8 (rmb.name);
+               name = mono_string_to_utf8_checked (rmb.name, error);
+               return_val_if_nok (error, 0);
 
                token = mono_image_get_memberref_token (assembly, &klass->byval_arg, name, sig);
                g_free (name);          
@@ -3713,7 +3747,8 @@ mono_image_get_generic_field_token (MonoDynamicImage *assembly, MonoReflectionFi
 
        table = &assembly->tables [MONO_TABLE_MEMBERREF];
 
-       name = mono_string_to_utf8 (fb->name);
+       name = mono_string_to_utf8_checked (fb->name, error);
+       return_val_if_nok (error, 0);
 
        if (assembly->save) {
                alloc_table (table, table->rows + 1);
@@ -3879,7 +3914,9 @@ mono_image_get_array_token (MonoDynamicImage *assembly, MonoReflectionArrayMetho
                        goto fail;
        }
 
-       name = mono_string_to_utf8 (m->name);
+       name = mono_string_to_utf8_checked (m->name, error);
+       if (!is_ok (error))
+               goto fail;
        for (tmp = assembly->array_methods; tmp; tmp = tmp->next) {
                am = (ArrayMethod *)tmp->data;
                if (strcmp (name, am->name) == 0 && 
@@ -3925,12 +3962,14 @@ mono_image_get_type_info (MonoDomain *domain, MonoReflectionTypeBuilder *tb, Mon
        table = &assembly->tables [MONO_TABLE_TYPEDEF];
        values = table->values + tb->table_idx * MONO_TYPEDEF_SIZE;
        values [MONO_TYPEDEF_FLAGS] = tb->attrs;
-       n = mono_string_to_utf8 (tb->name);
+       n = mono_string_to_utf8_checked (tb->name, error);
+       return_val_if_nok (error, FALSE);
        if (strcmp (n, "Object") == 0)
                is_object++;
        values [MONO_TYPEDEF_NAME] = string_heap_insert (&assembly->sheap, n);
        g_free (n);
-       n = mono_string_to_utf8 (tb->nspace);
+       n = mono_string_to_utf8_checked (tb->nspace, error);
+       return_val_if_nok (error, FALSE);
        if (strcmp (n, "System") == 0)
                is_system++;
        values [MONO_TYPEDEF_NAMESPACE] = string_heap_insert (&assembly->sheap, n);
@@ -4237,8 +4276,8 @@ module_add_cattrs (MonoDynamicImage *assembly, MonoReflectionModuleBuilder *modu
        return TRUE;
 }
 
-static void
-mono_image_fill_file_table (MonoDomain *domain, MonoReflectionModule *module, MonoDynamicImage *assembly)
+static gboolean
+mono_image_fill_file_table (MonoDomain *domain, MonoReflectionModule *module, MonoDynamicImage *assembly, MonoError *error)
 {
        MonoDynamicTable *table;
        guint32 *values;
@@ -4247,6 +4286,8 @@ mono_image_fill_file_table (MonoDomain *domain, MonoReflectionModule *module, Mo
        char *b = blob_size;
        char *dir, *path;
 
+       mono_error_init (error);
+
        table = &assembly->tables [MONO_TABLE_FILE];
        table->rows++;
        alloc_table (table, table->rows);
@@ -4255,7 +4296,8 @@ mono_image_fill_file_table (MonoDomain *domain, MonoReflectionModule *module, Mo
        values [MONO_FILE_NAME] = string_heap_insert (&assembly->sheap, module->image->module_name);
        if (image_is_dynamic (module->image)) {
                /* This depends on the fact that the main module is emitted last */
-               dir = mono_string_to_utf8 (((MonoReflectionModuleBuilder*)module)->assemblyb->dir);
+               dir = mono_string_to_utf8_checked (((MonoReflectionModuleBuilder*)module)->assemblyb->dir, error);
+               return_val_if_nok (error, FALSE);
                path = g_strdup_printf ("%s%c%s", dir, G_DIR_SEPARATOR, module->image->module_name);
        } else {
                dir = NULL;
@@ -4268,17 +4310,21 @@ mono_image_fill_file_table (MonoDomain *domain, MonoReflectionModule *module, Mo
        values [MONO_FILE_HASH_VALUE] = mono_image_add_stream_data (&assembly->blob, blob_size, b-blob_size);
        mono_image_add_stream_data (&assembly->blob, (char*)hash, 20);
        table->next_idx ++;
+       return TRUE;
 }
 
 static void
-mono_image_fill_module_table (MonoDomain *domain, MonoReflectionModuleBuilder *mb, MonoDynamicImage *assembly)
+mono_image_fill_module_table (MonoDomain *domain, MonoReflectionModuleBuilder *mb, MonoDynamicImage *assembly, MonoError *error)
 {
        MonoDynamicTable *table;
        int i;
 
+       mono_error_init (error);
+
        table = &assembly->tables [MONO_TABLE_MODULE];
        mb->table_idx = table->next_idx ++;
-       table->values [mb->table_idx * MONO_MODULE_SIZE + MONO_MODULE_NAME] = string_heap_insert_mstring (&assembly->sheap, mb->module.name);
+       table->values [mb->table_idx * MONO_MODULE_SIZE + MONO_MODULE_NAME] = string_heap_insert_mstring (&assembly->sheap, mb->module.name, error);
+       return_if_nok (error);
        i = mono_image_add_stream_data (&assembly->guid, mono_array_addr (mb->guid, char, 0), 16);
        i /= 16;
        ++i;
@@ -4937,25 +4983,29 @@ fixup_cattrs (MonoDynamicImage *assembly)
        }
 }
 
-static void
-assembly_add_resource_manifest (MonoReflectionModuleBuilder *mb, MonoDynamicImage *assembly, MonoReflectionResource *rsrc, guint32 implementation)
+static gboolean
+assembly_add_resource_manifest (MonoReflectionModuleBuilder *mb, MonoDynamicImage *assembly, MonoReflectionResource *rsrc, guint32 implementation, MonoError *error)
 {
        MonoDynamicTable *table;
        guint32 *values;
 
+       mono_error_init (error);
+
        table = &assembly->tables [MONO_TABLE_MANIFESTRESOURCE];
        table->rows++;
        alloc_table (table, table->rows);
        values = table->values + table->next_idx * MONO_MANIFEST_SIZE;
        values [MONO_MANIFEST_OFFSET] = rsrc->offset;
        values [MONO_MANIFEST_FLAGS] = rsrc->attrs;
-       values [MONO_MANIFEST_NAME] = string_heap_insert_mstring (&assembly->sheap, rsrc->name);
+       values [MONO_MANIFEST_NAME] = string_heap_insert_mstring (&assembly->sheap, rsrc->name, error);
+       return_val_if_nok (error, FALSE);
        values [MONO_MANIFEST_IMPLEMENTATION] = implementation;
        table->next_idx++;
+       return TRUE;
 }
 
-static void
-assembly_add_resource (MonoReflectionModuleBuilder *mb, MonoDynamicImage *assembly, MonoReflectionResource *rsrc)
+static gboolean
+assembly_add_resource (MonoReflectionModuleBuilder *mb, MonoDynamicImage *assembly, MonoReflectionResource *rsrc, MonoError *error)
 {
        MonoDynamicTable *table;
        guint32 *values;
@@ -4965,8 +5015,11 @@ assembly_add_resource (MonoReflectionModuleBuilder *mb, MonoDynamicImage *assemb
        char *name, *sname;
        guint32 idx, offset;
 
+       mono_error_init (error);
+
        if (rsrc->filename) {
-               name = mono_string_to_utf8 (rsrc->filename);
+               name = mono_string_to_utf8_checked (rsrc->filename, error);
+               return_val_if_nok (error, FALSE);
                sname = g_path_get_basename (name);
        
                table = &assembly->tables [MONO_TABLE_FILE];
@@ -5008,27 +5061,30 @@ assembly_add_resource (MonoReflectionModuleBuilder *mb, MonoDynamicImage *assemb
                         * the main module, but that needs to reference the FILE table
                         * which isn't emitted yet.
                         */
-                       return;
+                       return TRUE;
                else
                        idx = 0;
        }
 
-       assembly_add_resource_manifest (mb, assembly, rsrc, idx);
+       return assembly_add_resource_manifest (mb, assembly, rsrc, idx, error);
 }
 
-static void
-set_version_from_string (MonoString *version, guint32 *values)
+static gboolean
+set_version_from_string (MonoString *version, guint32 *values, MonoError *error)
 {
        gchar *ver, *p, *str;
        guint32 i;
        
+       mono_error_init (error);
+
        values [MONO_ASSEMBLY_MAJOR_VERSION] = 0;
        values [MONO_ASSEMBLY_MINOR_VERSION] = 0;
        values [MONO_ASSEMBLY_REV_NUMBER] = 0;
        values [MONO_ASSEMBLY_BUILD_NUMBER] = 0;
        if (!version)
-               return;
-       ver = str = mono_string_to_utf8 (version);
+               return TRUE;
+       ver = str = mono_string_to_utf8_checked (version, error);
+       return_val_if_nok (error, FALSE);
        for (i = 0; i < 4; ++i) {
                values [MONO_ASSEMBLY_MAJOR_VERSION + i] = strtol (ver, &p, 10);
                switch (*p) {
@@ -5043,6 +5099,7 @@ set_version_from_string (MonoString *version, guint32 *values)
                ver = p;
        }
        g_free (str);
+       return TRUE;
 }
 
 static guint32
@@ -5081,7 +5138,7 @@ load_public_key (MonoArray *pkey, MonoDynamicImage *assembly) {
        return token;
 }
 
-static void
+static gboolean
 mono_image_emit_manifest (MonoReflectionModuleBuilder *moduleb, MonoError *error)
 {
        MonoDynamicTable *table;
@@ -5103,15 +5160,18 @@ mono_image_emit_manifest (MonoReflectionModuleBuilder *moduleb, MonoError *error
        alloc_table (table, 1);
        values = table->values + MONO_ASSEMBLY_SIZE;
        values [MONO_ASSEMBLY_HASH_ALG] = assemblyb->algid? assemblyb->algid: ASSEMBLY_HASH_SHA1;
-       values [MONO_ASSEMBLY_NAME] = string_heap_insert_mstring (&assembly->sheap, assemblyb->name);
+       values [MONO_ASSEMBLY_NAME] = string_heap_insert_mstring (&assembly->sheap, assemblyb->name, error);
+       return_val_if_nok (error, FALSE);
        if (assemblyb->culture) {
-               values [MONO_ASSEMBLY_CULTURE] = string_heap_insert_mstring (&assembly->sheap, assemblyb->culture);
+               values [MONO_ASSEMBLY_CULTURE] = string_heap_insert_mstring (&assembly->sheap, assemblyb->culture, error);
+               return_val_if_nok (error, FALSE);
        } else {
                values [MONO_ASSEMBLY_CULTURE] = string_heap_insert (&assembly->sheap, "");
        }
        values [MONO_ASSEMBLY_PUBLIC_KEY] = load_public_key (assemblyb->public_key, assembly);
        values [MONO_ASSEMBLY_FLAGS] = assemblyb->flags;
-       set_version_from_string (assemblyb->version, values);
+       if (!set_version_from_string (assemblyb->version, values, error))
+               return FALSE;
 
        /* Emit FILE + EXPORTED_TYPE table */
        module_index = 0;
@@ -5120,13 +5180,14 @@ mono_image_emit_manifest (MonoReflectionModuleBuilder *moduleb, MonoError *error
                MonoReflectionModuleBuilder *file_module = 
                        mono_array_get (assemblyb->modules, MonoReflectionModuleBuilder*, i);
                if (file_module != moduleb) {
-                       mono_image_fill_file_table (domain, (MonoReflectionModule*)file_module, assembly);
+                       if (!mono_image_fill_file_table (domain, (MonoReflectionModule*)file_module, assembly, error))
+                               return FALSE;
                        module_index ++;
                        if (file_module->types) {
                                for (j = 0; j < file_module->num_types; ++j) {
                                        MonoReflectionTypeBuilder *tb = mono_array_get (file_module->types, MonoReflectionTypeBuilder*, j);
                                        mono_image_fill_export_table (domain, tb, module_index, 0, assembly, error);
-                                       return_if_nok (error);
+                                       return_val_if_nok (error, FALSE);
                                }
                        }
                }
@@ -5135,7 +5196,8 @@ mono_image_emit_manifest (MonoReflectionModuleBuilder *moduleb, MonoError *error
                for (i = 0; i < mono_array_length (assemblyb->loaded_modules); ++i) {
                        MonoReflectionModule *file_module = 
                                mono_array_get (assemblyb->loaded_modules, MonoReflectionModule*, i);
-                       mono_image_fill_file_table (domain, file_module, assembly);
+                       if (!mono_image_fill_file_table (domain, file_module, assembly, error))
+                               return FALSE;
                        module_index ++;
                        mono_image_fill_export_table_from_module (domain, file_module, module_index, assembly);
                }
@@ -5156,11 +5218,13 @@ mono_image_emit_manifest (MonoReflectionModuleBuilder *moduleb, MonoError *error
                                int len = mono_array_length (file_module->resources);
                                for (j = 0; j < len; ++j) {
                                        MonoReflectionResource* res = (MonoReflectionResource*)mono_array_addr (file_module->resources, MonoReflectionResource, j);
-                                       assembly_add_resource_manifest (file_module, assembly, res, MONO_IMPLEMENTATION_FILE | (module_index << MONO_IMPLEMENTATION_BITS));
+                                       if (!assembly_add_resource_manifest (file_module, assembly, res, MONO_IMPLEMENTATION_FILE | (module_index << MONO_IMPLEMENTATION_BITS), error))
+                                               return FALSE;
                                }
                        }
                }
-       }               
+       }
+       return TRUE;
 }
 
 #ifndef DISABLE_REFLECTION_EMIT_SAVE
@@ -5243,7 +5307,9 @@ mono_image_build_metadata (MonoReflectionModuleBuilder *moduleb, MonoError *erro
 
        table = &assembly->tables [MONO_TABLE_MODULE];
        alloc_table (table, 1);
-       mono_image_fill_module_table (domain, moduleb, assembly);
+       mono_image_fill_module_table (domain, moduleb, assembly, error);
+       if (!is_ok (error))
+               goto leave;
 
        /* Collect all types into a list sorted by their table_idx */
        mono_ptr_array_init (types, moduleb->num_types, MONO_ROOT_SOURCE_REFLECTION, "dynamic module types list");
@@ -5265,11 +5331,15 @@ mono_image_build_metadata (MonoReflectionModuleBuilder *moduleb, MonoError *erro
         */
        for (i = 0; i < mono_ptr_array_size (types); ++i) {
                MonoReflectionTypeBuilder *tb = (MonoReflectionTypeBuilder *)mono_ptr_array_get (types, i);
-               string_heap_insert_mstring (&assembly->sheap, tb->nspace);
+               string_heap_insert_mstring (&assembly->sheap, tb->nspace, error);
+               if (!is_ok (error))
+                       goto leave_types;
        }
        for (i = 0; i < mono_ptr_array_size (types); ++i) {
                MonoReflectionTypeBuilder *tb = (MonoReflectionTypeBuilder *)mono_ptr_array_get (types, i);
-               string_heap_insert_mstring (&assembly->sheap, tb->name);
+               string_heap_insert_mstring (&assembly->sheap, tb->name, error);
+               if (!is_ok (error))
+                       goto leave_types;
        }
 
        for (i = 0; i < mono_ptr_array_size (types); ++i) {
@@ -5501,7 +5571,8 @@ mono_image_create_method_token (MonoDynamicImage *assembly, MonoObject *obj, Mon
                parent = mono_metadata_token_index (parent) << MONO_MEMBERREF_PARENT_BITS;
                parent |= MONO_MEMBERREF_PARENT_METHODDEF;
 
-               char *name = mono_string_to_utf8 (rmb.name);
+               char *name = mono_string_to_utf8_checked (rmb.name, error);
+               if (!is_ok (error)) goto fail;
                token = mono_image_get_varargs_method_token (
                        assembly, parent, name, sig_token);
                g_free (name);
@@ -5602,7 +5673,7 @@ mono_image_create_token (MonoDynamicImage *assembly, MonoObject *obj,
                        return_val_if_nok (error, 0);
                        token = mono_metadata_token_from_dor (mono_image_typedef_or_ref (assembly, type));
                }
-       } else if (strcmp (klass->name, "MonoType") == 0) {
+       } else if (strcmp (klass->name, "RuntimeType") == 0) {
                MonoType *type = mono_reflection_type_get_handle ((MonoReflectionType *)obj, error);
                return_val_if_nok (error, 0);
                MonoClass *mc = mono_class_from_mono_type (type);
@@ -5950,6 +6021,7 @@ mono_dynamic_image_free_image (MonoDynamicImage *image)
 void
 mono_image_basic_init (MonoReflectionAssemblyBuilder *assemblyb)
 {
+       MonoError error;
        MonoDynamicAssembly *assembly;
        MonoDynamicImage *image;
        MonoDomain *domain = mono_object_domain (assemblyb);
@@ -5970,14 +6042,20 @@ mono_image_basic_init (MonoReflectionAssemblyBuilder *assemblyb)
        assembly->assembly.dynamic = TRUE;
        assembly->assembly.corlib_internal = assemblyb->corlib_internal;
        assemblyb->assembly.assembly = (MonoAssembly*)assembly;
-       assembly->assembly.basedir = mono_string_to_utf8 (assemblyb->dir);
-       if (assemblyb->culture)
-               assembly->assembly.aname.culture = mono_string_to_utf8 (assemblyb->culture);
-       else
+       assembly->assembly.basedir = mono_string_to_utf8_checked (assemblyb->dir, &error);
+       if (mono_error_set_pending_exception (&error))
+               return;
+       if (assemblyb->culture) {
+               assembly->assembly.aname.culture = mono_string_to_utf8_checked (assemblyb->culture, &error);
+               if (mono_error_set_pending_exception (&error))
+                       return;
+       } else
                assembly->assembly.aname.culture = g_strdup ("");
 
         if (assemblyb->version) {
-                       char *vstr = mono_string_to_utf8 (assemblyb->version);
+                       char *vstr = mono_string_to_utf8_checked (assemblyb->version, &error);
+                       if (mono_error_set_pending_exception (&error))
+                               return;
                        char **version = g_strsplit (vstr, ".", 4);
                        char **parts = version;
                        assembly->assembly.aname.major = atoi (*parts++);
@@ -5998,7 +6076,10 @@ mono_image_basic_init (MonoReflectionAssemblyBuilder *assemblyb)
        assembly->save = assemblyb->access != 1;
        assembly->domain = domain;
 
-       image = create_dynamic_mono_image (assembly, mono_string_to_utf8 (assemblyb->name), g_strdup ("RefEmit_YouForgotToDefineAModule"));
+       char *assembly_name = mono_string_to_utf8_checked (assemblyb->name, &error);
+       if (mono_error_set_pending_exception (&error))
+               return;
+       image = create_dynamic_mono_image (assembly, assembly_name, g_strdup ("RefEmit_YouForgotToDefineAModule"));
        image->initial_image = TRUE;
        assembly->assembly.aname.name = image->image.name;
        assembly->assembly.image = &image->image;
@@ -6353,14 +6434,18 @@ mono_image_create_pefile (MonoReflectionModuleBuilder *mb, HANDLE file, MonoErro
 
        if (mb->is_main && assemblyb->resources) {
                int len = mono_array_length (assemblyb->resources);
-               for (i = 0; i < len; ++i)
-                       assembly_add_resource (mb, assembly, (MonoReflectionResource*)mono_array_addr (assemblyb->resources, MonoReflectionResource, i));
+               for (i = 0; i < len; ++i) {
+                       if (!assembly_add_resource (mb, assembly, (MonoReflectionResource*)mono_array_addr (assemblyb->resources, MonoReflectionResource, i), error))
+                               return FALSE;
+               }
        }
 
        if (mb->resources) {
                int len = mono_array_length (mb->resources);
-               for (i = 0; i < len; ++i)
-                       assembly_add_resource (mb, assembly, (MonoReflectionResource*)mono_array_addr (mb->resources, MonoReflectionResource, i));
+               for (i = 0; i < len; ++i) {
+                       if (!assembly_add_resource (mb, assembly, (MonoReflectionResource*)mono_array_addr (mb->resources, MonoReflectionResource, i), error))
+                               return FALSE;
+               }
        }
 
        if (!build_compressed_metadata (assembly, error))
@@ -6691,7 +6776,8 @@ mono_image_load_module_dynamic (MonoReflectionAssemblyBuilder *ab, MonoString *f
        
        mono_error_init (error);
        
-       name = mono_string_to_utf8 (fileName);
+       name = mono_string_to_utf8_checked (fileName, error);
+       return_val_if_nok (error, NULL);
 
        image = mono_image_open (name, &status);
        if (!image) {
@@ -6879,7 +6965,8 @@ image_module_basic_init (MonoReflectionModuleBuilder *moduleb, MonoError *error)
                 * determined at assembly save time.
                 */
                /*image = (MonoDynamicImage*)ab->dynamic_assembly->assembly.image; */
-               name = mono_string_to_utf8 (ab->name);
+               name = mono_string_to_utf8_checked (ab->name, error);
+               return_val_if_nok (error, FALSE);
                fqname = mono_string_to_utf8_checked (moduleb->module.fqname, error);
                if (!is_ok (error)) {
                        g_free (name);
@@ -7269,7 +7356,7 @@ mono_type_get_object_checked (MonoDomain *domain, MonoType *type, MonoError *err
                }
        }
        /* This is stored in vtables/JITted code so it has to be pinned */
-       res = (MonoReflectionType *)mono_object_new_pinned (domain, mono_defaults.monotype_class, error);
+       res = (MonoReflectionType *)mono_object_new_pinned (domain, mono_defaults.runtimetype_class, error);
        if (!mono_error_ok (error))
                return NULL;
 
@@ -8897,7 +8984,7 @@ mono_reflection_get_token_checked (MonoObject *obj, MonoError *error)
        } else if (strcmp (klass->name, "TypeBuilder") == 0) {
                MonoReflectionTypeBuilder *tb = (MonoReflectionTypeBuilder *)obj;
                token = tb->table_idx | MONO_TOKEN_TYPE_DEF;
-       } else if (strcmp (klass->name, "MonoType") == 0) {
+       } else if (strcmp (klass->name, "RuntimeType") == 0) {
                MonoType *type = mono_reflection_type_get_handle ((MonoReflectionType*)obj, error);
                return_val_if_nok (error, 0);
                MonoClass *mc = mono_class_from_mono_type (type);
@@ -10340,7 +10427,7 @@ mono_reflection_get_custom_attrs_info_checked (MonoObject *obj, MonoError *error
        mono_error_init (error);
 
        klass = obj->vtable->klass;
-       if (klass == mono_defaults.monotype_class) {
+       if (klass == mono_defaults.runtimetype_class) {
                MonoType *type = mono_reflection_type_get_handle ((MonoReflectionType *)obj, error);
                return_val_if_nok (error, NULL);
                klass = mono_class_from_mono_type (type);
@@ -10867,7 +10954,8 @@ get_prop_name_and_type (MonoObject *prop, char **name, MonoType **type, MonoErro
        MonoClass *klass = mono_object_class (prop);
        if (strcmp (klass->name, "PropertyBuilder") == 0) {
                MonoReflectionPropertyBuilder *pb = (MonoReflectionPropertyBuilder *)prop;
-               *name = mono_string_to_utf8 (pb->name);
+               *name = mono_string_to_utf8_checked (pb->name, error);
+               return_if_nok (error);
                *type = mono_reflection_type_get_handle ((MonoReflectionType*)pb->type, error);
        } else {
                MonoReflectionProperty *p = (MonoReflectionProperty *)prop;
@@ -10886,7 +10974,8 @@ get_field_name_and_type (MonoObject *field, char **name, MonoType **type, MonoEr
        MonoClass *klass = mono_object_class (field);
        if (strcmp (klass->name, "FieldBuilder") == 0) {
                MonoReflectionFieldBuilder *fb = (MonoReflectionFieldBuilder *)field;
-               *name = mono_string_to_utf8 (fb->name);
+               *name = mono_string_to_utf8_checked (fb->name, error);
+               return_if_nok (error);
                *type = mono_reflection_type_get_handle ((MonoReflectionType*)fb->type, error);
        } else {
                MonoReflectionField *f = (MonoReflectionField *)field;
@@ -11064,7 +11153,8 @@ handle_enum:
                        *p++ = 0xFF;
                        break;
                }
-               str = mono_string_to_utf8 ((MonoString*)arg);
+               str = mono_string_to_utf8_checked ((MonoString*)arg, error);
+               return_if_nok (error);
                slen = strlen (str);
                if ((p-buffer) + 10 + slen >= *buflen) {
                        char *newbuf;
@@ -11763,8 +11853,13 @@ mono_marshal_spec_from_builder (MonoImage *image, MonoAssembly *assembly,
                        res->data.custom_data.custom_name =
                                type_get_fully_qualified_name (marshaltyperef);
                }
-               if (minfo->mcookie)
-                       res->data.custom_data.cookie = mono_string_to_utf8 (minfo->mcookie);
+               if (minfo->mcookie) {
+                       res->data.custom_data.cookie = mono_string_to_utf8_checked (minfo->mcookie, error);
+                       if (!is_ok (error)) {
+                               image_g_free (image, res);
+                               return NULL;
+                       }
+               }
                break;
 
        default:
@@ -13034,7 +13129,11 @@ reflection_event_builder_get_event_info (MonoReflectionTypeBuilder *tb, MonoRefl
 
        event->parent = klass;
        event->attrs = eb->attrs;
-       event->name = mono_string_to_utf8 (eb->name);
+       event->name = mono_string_to_utf8_checked (eb->name, error);
+       if (!is_ok (error)) {
+               g_free (event);
+               return NULL;
+       }
        if (eb->add_method)
                event->add = eb->add_method->mhandle;
        if (eb->remove_method)
@@ -13848,7 +13947,7 @@ resolve_object (MonoImage *image, MonoObject *obj, MonoClass **handle_class, Mon
                return_val_if_nok (error, NULL);
                *handle_class = mono_defaults.string_class;
                g_assert (result);
-       } else if (strcmp (obj->vtable->klass->name, "MonoType") == 0) {
+       } else if (strcmp (obj->vtable->klass->name, "RuntimeType") == 0) {
                MonoType *type = mono_reflection_type_get_handle ((MonoReflectionType*)obj, error);
                return_val_if_nok (error, NULL);
                MonoClass *mc = mono_class_from_mono_type (type);
@@ -14142,7 +14241,8 @@ resolve_object (MonoImage *image, MonoObject *obj, MonoClass **handle_class, Mon
 
                /* Find the method */
 
-               name = mono_string_to_utf8 (m->name);
+               name = mono_string_to_utf8_checked (m->name, error);
+               return_val_if_nok (error, NULL);
                iter = NULL;
                while ((method = mono_class_get_methods (klass, &iter))) {
                        if (!strcmp (method->name, name))
index 0afdec6960aa7987fbb77a2c5dc26d6cb18aeb6e..9bc72faa28bc344fe09de1b5338e2b56bb34ec1f 100644 (file)
@@ -426,7 +426,7 @@ fail:
         * is_running_protected_wrapper () in threads.c and
         * mono_marshal_get_remoting_invoke () in remoting.c)
         */
-       mono_error_raise_exception (&error);
+       mono_error_raise_exception (&error); /* OK to throw, see note */
        return NULL;
 } 
 
index 3fe3ac04867adab1867989d2365fc0a644e5e930..e3143cc564f100c57a79be6b7903fd167127eaaf 100644 (file)
@@ -363,7 +363,7 @@ get_caller_no_reflection_related (MonoMethod *m, gint32 no, gint32 ilo, gboolean
 
                /* unlike most Invoke* cases InvokeMember is not inside System.Reflection[.Emit] but is SecuritySafeCritical */
                if (((*kname == 'T') && (strcmp (kname, "Type") == 0)) || 
-                       ((*kname == 'M') && (strcmp (kname, "MonoType")) == 0)) {
+                       ((*kname == 'R') && (strcmp (kname, "RuntimeType")) == 0)) {
 
                        /* if calling InvokeMember then we can't stop the stackwalk here and need to look at the caller */
                        if (strcmp (m->name, "InvokeMember") == 0)
index d117d7fc288b04332a61ef76957eb4f0bded1779..8641db0542df3a02259fee4597a6bc32353a49d1 100644 (file)
@@ -694,6 +694,11 @@ sgen_client_binary_protocol_header (long long check, int version, int ptr_size,
 {
 }
 
+static void G_GNUC_UNUSED
+sgen_client_binary_protocol_pin_stats (int objects_pinned_in_nursery, size_t bytes_pinned_in_nursery, int objects_pinned_in_major, size_t bytes_pinned_in_major)
+{
+}
+
 int sgen_thread_handshake (BOOL suspend);
 gboolean sgen_suspend_thread (SgenThreadInfo *info);
 gboolean sgen_resume_thread (SgenThreadInfo *info);
index 2a71d2fbd46b480c88c8937125c2111cec528d77..aaece7e29ca2b7d04c20ba7ead5b8fbb4a7e78a3 100644 (file)
@@ -897,11 +897,11 @@ mono_gc_clear_domain (MonoDomain * domain)
        major_collector.iterate_objects (ITERATE_OBJECTS_SWEEP_PINNED, (IterateObjectCallbackFunc)clear_domain_free_major_pinned_object_callback, domain);
 
        if (domain == mono_get_root_domain ()) {
-               sgen_pin_stats_print_class_stats ();
+               sgen_pin_stats_report ();
                sgen_object_layout_dump (stdout);
        }
 
-       sgen_restart_world (0, NULL);
+       sgen_restart_world (0);
 
        binary_protocol_domain_unload_end (domain);
        binary_protocol_flush_buffers (FALSE);
@@ -2717,37 +2717,6 @@ sgen_client_degraded_allocation (size_t size)
        }
 }
 
-void
-sgen_client_log_timing (GGTimingInfo *info, mword promoted_size, mword major_used_size)
-{
-       SgenMajorCollector *major_collector = sgen_get_major_collector ();
-       mword num_major_sections = major_collector->get_num_major_sections ();
-       char full_timing_buff [1024];
-       full_timing_buff [0] = '\0';
-
-       if (!info->is_overflow)
-               sprintf (full_timing_buff, "total %.2fms", info->stw_time / 10000.0f);
-       if (info->generation == GENERATION_OLD)
-               mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_GC, "GC_MAJOR%s: (%s) pause %.2fms, %s los size: %dK in use: %dK",
-                       info->is_overflow ? "_OVERFLOW" : "",
-                       info->reason ? info->reason : "",
-                       (int)info->total_time / 10000.0f,
-                       full_timing_buff,
-                       los_memory_usage_total / 1024,
-                       los_memory_usage / 1024);
-       else
-               mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_GC, "GC_MINOR%s: (%s) pause %.2fms, %s promoted %dK major size: %dK in use: %dK los size: %dK in use: %dK",
-                               info->is_overflow ? "_OVERFLOW" : "",
-                       info->reason ? info->reason : "",
-                       (int)info->total_time / 10000.0f,
-                       full_timing_buff,
-                       (int)promoted_size / 1024,
-                       major_collector->section_size * num_major_sections / 1024,
-                       major_used_size / 1024,
-                       los_memory_usage_total / 1024,
-                       los_memory_usage / 1024);
-}
-
 /*
  * Debugging
  */
index 17f4d6e7f7d60769ee643adc29a289d444c9dd1d..ea14448ccfbfaeb7b376fbf06abd59135cf6b680 100644 (file)
@@ -240,7 +240,7 @@ sgen_client_stop_world (int generation)
 
 /* LOCKING: assumes the GC lock is held */
 void
-sgen_client_restart_world (int generation, GGTimingInfo *timing)
+sgen_client_restart_world (int generation, gint64 *stw_time)
 {
        TV_DECLARE (end_sw);
        TV_DECLARE (start_handshake);
@@ -283,9 +283,7 @@ sgen_client_restart_world (int generation, GGTimingInfo *timing)
         */
        release_gc_locks ();
 
-       if (timing) {
-               timing [0].stw_time = usec;
-       }
+       *stw_time = usec;
 }
 
 void
index eb272c241d6a56f46d0c307ab2aa1047c33005cf..ae1268c15222bb42c823274af45d475740a2dc0d 100644 (file)
@@ -2647,13 +2647,16 @@ get_addrinfo_family_hint (MonoError *error)
 MonoBoolean
 ves_icall_System_Net_Dns_GetHostByName_internal (MonoString *host, MonoString **h_name, MonoArray **h_aliases, MonoArray **h_addr_list)
 {
+       MonoError error;
        gboolean add_local_ips = FALSE, add_info_ok = TRUE;
        gchar this_hostname [256];
        MonoAddressInfo *info = NULL;
-       char *hostname = mono_string_to_utf8 (host);
-       MonoError error;
        int hint;
 
+       char *hostname = mono_string_to_utf8_checked (host, &error);
+       if (mono_error_set_pending_exception (&error))
+               return FALSE;
+
        hint = get_addrinfo_family_hint (&error);
        if (!mono_error_ok (&error)) {
                mono_error_set_pending_exception (&error);
@@ -2697,7 +2700,9 @@ ves_icall_System_Net_Dns_GetHostByAddr_internal (MonoString *addr, MonoString **
        gchar hostname [NI_MAXHOST] = { 0 };
        gboolean ret;
 
-       address = mono_string_to_utf8 (addr);
+       address = mono_string_to_utf8_checked (addr, &error);
+       if (mono_error_set_pending_exception (&error))
+               return FALSE;
 
        if (inet_pton (AF_INET, address, &saddr.sin_addr ) == 1) {
                family = AF_INET;
index cc6bbad33f8a8cf735194172a87deda93ebc1002..f3465ae4376c6866de5dda40df5130b6acbbd6e7 100644 (file)
@@ -1386,7 +1386,8 @@ mono_thread_set_name_internal (MonoInternalThread *this_obj, MonoString *name, g
        UNLOCK_THREAD (this_obj);
 
        if (this_obj->name && this_obj->tid) {
-               char *tname = mono_string_to_utf8 (name);
+               char *tname = mono_string_to_utf8_checked (name, error);
+               return_if_nok (error);
                mono_profiler_thread_name (this_obj->tid, tname);
                mono_native_thread_set_name (thread_get_tid (this_obj), tname);
                mono_free (tname);
@@ -2534,7 +2535,7 @@ void mono_thread_stop (MonoThread *thread)
                This function is part of the embeding API and has no way to return the exception
                to be thrown. So what we do is keep the old behavior and raise the exception.
                */
-               mono_error_raise_exception (&error);
+               mono_error_raise_exception (&error); /* OK to throw, see note */
        } else {
                async_abort_internal (internal, TRUE);
        }
index a2fe45610180ce45a684bc2640412d090339bda5..00aa6bca6c50da2b9467a010dcb29b4b741a27f3 100755 (executable)
@@ -826,7 +826,11 @@ version.h: Makefile
        if test -d $(top_srcdir)/.git; then \
                (cd $(top_srcdir); \
                        LANG=C; export LANG; \
-                       branch=`git branch | grep '^\*' | sed 's/(detached from .*/explicit/' | cut -d ' ' -f 2`; \
+                       if test -z "$$ghprbPullId"; then \
+                               branch=`git branch | grep '^\*' | sed 's/(detached from .*/explicit/' | cut -d ' ' -f 2`; \
+                       else \
+                               branch="pull-request-$$ghprbPullId"; \
+                       fi; \
                        version=`git log --no-color --first-parent -n1 --pretty=format:%h`; \
                        echo "#define FULL_VERSION \"$$branch/$$version\""; \
                ); \
index 9c2ca7090e60162999c6bbf33bfbac7007254806..57507007c8da5d59201fe58473555954315e593b 100644 (file)
@@ -245,7 +245,7 @@ typedef struct MonoAotCompile {
        MonoAotFileFlags flags;
        MonoDynamicStream blob;
        gboolean blob_closed;
-       MonoClass **typespec_classes;
+       GHashTable *typespec_classes;
        GString *llc_args;
        GString *as_args;
        char *assembly_name_sym;
@@ -2719,22 +2719,16 @@ find_typespec_for_class (MonoAotCompile *acfg, MonoClass *klass)
 
        /* FIXME: Search referenced images as well */
        if (!acfg->typespec_classes) {
-               acfg->typespec_classes = (MonoClass **)mono_mempool_alloc0 (acfg->mempool, sizeof (MonoClass*) * len);
-               for (i = 0; i < len; ++i) {
+               acfg->typespec_classes = g_hash_table_new (NULL, NULL);
+               for (i = 0; i < len; i++) {
                        MonoError error;
-                       acfg->typespec_classes [i] = mono_class_get_and_inflate_typespec_checked (acfg->image, MONO_TOKEN_TYPE_SPEC | (i + 1), NULL, &error);
+                       int typespec = MONO_TOKEN_TYPE_SPEC | (i + 1);
+                       MonoClass *klass_key = mono_class_get_and_inflate_typespec_checked (acfg->image, typespec, NULL, &error);
                        g_assert (mono_error_ok (&error)); /* FIXME error handling */
+                       g_hash_table_insert (acfg->typespec_classes, klass_key, GINT_TO_POINTER (typespec));
                }
        }
-       for (i = 0; i < len; ++i) {
-               if (acfg->typespec_classes [i] == klass)
-                       break;
-       }
-
-       if (i < len)
-               return MONO_TOKEN_TYPE_SPEC | (i + 1);
-       else
-               return 0;
+       return GPOINTER_TO_INT (g_hash_table_lookup (acfg->typespec_classes, klass));
 }
 
 static void
@@ -10071,6 +10065,8 @@ acfg_free (MonoAotCompile *acfg)
        g_hash_table_destroy (acfg->image_hash);
        g_hash_table_destroy (acfg->unwind_info_offsets);
        g_hash_table_destroy (acfg->method_label_hash);
+       if (acfg->typespec_classes)
+               g_hash_table_destroy (acfg->typespec_classes);
        g_hash_table_destroy (acfg->export_names);
        g_hash_table_destroy (acfg->plt_entry_debug_sym_cache);
        g_hash_table_destroy (acfg->klass_blob_hash);
index 7407fecdf579b37975e3621fbc60b97ba2010a8b..d35294e2b07bb079dba6e263d92f95dd7451022b 100644 (file)
@@ -4602,7 +4602,7 @@ mono_aot_get_method (MonoDomain *domain, MonoMethod *method)
 
        gpointer res = mono_aot_get_method_checked (domain, method, &error);
        /* This is external only, so its ok to raise here */
-       mono_error_raise_exception (&error);
+       mono_error_raise_exception (&error); /* OK to throw, external only without a good alternative */
        return res;
 }
 
index bd823f2b9062cce310ff2791ed9c39a5876c1d44..36c7a15a3e8fe91e1c44ebe8d40cf6546c441994 100644 (file)
@@ -84,6 +84,7 @@ class Tests
        }
 
        [Category ("DYNCALL")]
+       [Category ("!FULLAOT-AMD64")]
        static int test_0_arm64_dyncall_hfa_double () {
                double arg1 = 1.0f;
                // HFA with double members
@@ -97,6 +98,7 @@ class Tests
        }
 
        [Category ("DYNCALL")]
+       [Category ("!FULLAOT-AMD64")]
        static int test_0_arm64_dyncall_hfa_float () {
                double arg1 = 1.0f;
                var s = new Struct2 ();
@@ -110,6 +112,7 @@ class Tests
 
        [Category ("DYNCALL")]
        [Category ("GSHAREDVT")]
+       [Category ("!FULLAOT-AMD64")]
        static int test_0_arm64_dyncall_gsharedvt_out_hfa_double () {
                /* gsharedvt out trampoline with double hfa argument */
                double arg1 = 1.0f;
@@ -129,6 +132,7 @@ class Tests
 
        [Category ("DYNCALL")]
        [Category ("GSHAREDVT")]
+       [Category ("!FULLAOT-AMD64")]
        static int test_0_arm64_dyncall_gsharedvt_out_hfa_float () {
                /* gsharedvt out trampoline with double hfa argument */
                double arg1 = 1.0f;
@@ -190,6 +194,8 @@ class Tests
        }
 
        [Category ("DYNCALL")]
+       [Category ("GSHAREDVT")]
+       [Category ("!FULLAOT-AMD64")]
        static int test_0_arm64_dyncall_vtypebyref_ret () {
                var s = new VTypeByRefStruct () { o1 = 1, o2 = 2, o3 = 3 };
                Type t = typeof (Foo5<>).MakeGenericType (new Type [] { typeof (VTypeByRefStruct) });
@@ -210,7 +216,8 @@ class Tests
                }
        }
 
-       [Category("DYNCALL")]
+       [Category ("DYNCALL")]
+       [Category ("GSHAREDVT")]
        static int test_0_arm_dyncall_reg_stack_split () {
                var m = typeof (Foo6).GetMethod ("reg_stack_split_inner").MakeGenericMethod (new Type[] { typeof (long) });
                var o = new Foo6 ();
@@ -251,6 +258,7 @@ class Tests
        }
 
        [Category ("DYNCALL")]
+       [Category ("!FULLAOT-AMD64")]
        public static int test_0_dyncall_nullable () {
                int? v;
 
@@ -367,6 +375,7 @@ class Tests
                return 0;
        }
 
+       [Category ("DYNCALL")]
        public static int test_0_array_accessor_runtime_invoke_ref () {
                var t = typeof (string[]);
                var arr = Array.CreateInstance (typeof (string), 1);
@@ -399,6 +408,7 @@ class Tests
        }
 
        [Category ("DYNCALL")]
+       [Category ("!FULLAOT-AMD64")]
        public static int test_0_large_nullable_invoke () {
                var s = new LargeStruct () { a = 1, b = 2, c = 3, d = 4 };
 
index a4303eae8ad5f21757c05aaca08d3c782dea4d8d..f7b4426bad376351151d3d9f15b2280ecf62b6ad 100644 (file)
@@ -1953,7 +1953,7 @@ get_objref (MonoObject *obj)
        int hash = 0;
 
        if (obj == NULL)
-               return 0;
+               return NULL;
 
        if (suspend_count) {
                /*
@@ -2028,7 +2028,10 @@ clear_suspended_objs (void)
 static inline int
 get_objid (MonoObject *obj)
 {
-       return get_objref (obj)->id;
+       if (!obj)
+               return 0;
+       else
+               return get_objref (obj)->id;
 }
 
 /*
@@ -3626,11 +3629,15 @@ process_event (EventKind event, gpointer arg, gint32 il_offset, MonoContext *ctx
 
                ecount ++;
 
-               if (!thread)
-                       thread = mono_thread_current ();
+               if (event == EVENT_KIND_VM_DEATH) {
+                       thread = NULL;
+               } else {
+                       if (!thread)
+                               thread = mono_thread_current ();
 
-               if (event == EVENT_KIND_VM_START && arg != NULL)
-                       thread = (MonoThread *)arg;
+                       if (event == EVENT_KIND_VM_START && arg != NULL)
+                               thread = (MonoThread *)arg;
+               }
 
                buffer_add_objid (&buf, (MonoObject*)thread); // thread
 
@@ -3792,7 +3799,7 @@ runtime_initialized (MonoProfiler *prof)
 static void
 runtime_shutdown (MonoProfiler *prof)
 {
-       process_profiler_event (EVENT_KIND_VM_DEATH, mono_thread_current ());
+       process_profiler_event (EVENT_KIND_VM_DEATH, NULL);
 
        mono_debugger_agent_cleanup ();
 }
@@ -5430,6 +5437,7 @@ ss_clear_for_assembly (SingleStepReq *req, MonoAssembly *assembly)
 void
 mono_debugger_agent_debug_log (int level, MonoString *category, MonoString *message)
 {
+       MonoError error;
        int suspend_policy;
        GSList *events;
        EventInfo ei;
@@ -5442,8 +5450,16 @@ mono_debugger_agent_debug_log (int level, MonoString *category, MonoString *mess
        mono_loader_unlock ();
 
        ei.level = level;
-       ei.category = category ? mono_string_to_utf8 (category) : NULL;
-       ei.message = message ? mono_string_to_utf8 (message) : NULL;
+       ei.category = NULL;
+       if (category) {
+               ei.category = mono_string_to_utf8_checked (category, &error);
+               mono_error_cleanup (&error);
+       }
+       ei.message = NULL;
+       if (message) {
+               ei.message = mono_string_to_utf8_checked (message, &error);
+               mono_error_cleanup  (&error);
+       }
 
        process_event (EVENT_KIND_USER_LOG, &ei, 0, NULL, events, suspend_policy);
 
@@ -7787,7 +7803,7 @@ field_commands (int command, guint8 *p, guint8 *end, Buffer *buf)
 static void
 buffer_add_cattr_arg (Buffer *buf, MonoType *t, MonoDomain *domain, MonoObject *val)
 {
-       if (val && val->vtable->klass == mono_defaults.monotype_class) {
+       if (val && val->vtable->klass == mono_defaults.runtimetype_class) {
                /* Special case these so the client doesn't have to handle Type objects */
                
                buffer_add_byte (buf, VALUE_TYPE_ID_TYPE);
@@ -8676,7 +8692,8 @@ method_commands_internal (int command, MonoMethod *method, MonoDomain *domain, g
                        s = mono_ldstr_checked (domain, method->klass->image, mono_metadata_token_index (token), &error);
                        mono_error_assert_ok (&error); /* FIXME don't swallow the error */
 
-                       s2 = mono_string_to_utf8 (s);
+                       s2 = mono_string_to_utf8_checked (s, &error);
+                       mono_error_assert_ok (&error);
 
                        buffer_add_byte (buf, TOKEN_TYPE_STRING);
                        buffer_add_string (buf, s2);
@@ -8684,6 +8701,7 @@ method_commands_internal (int command, MonoMethod *method, MonoDomain *domain, g
                        break;
                }
                default: {
+                       MonoError error;
                        gpointer val;
                        MonoClass *handle_class;
 
@@ -8697,7 +8715,6 @@ method_commands_internal (int command, MonoMethod *method, MonoDomain *domain, g
                                        break;
                                }
                        } else {
-                               MonoError error;
                                val = mono_ldtoken_checked (method->klass->image, token, &handle_class, NULL, &error);
                                if (!val)
                                        g_error ("Could not load token due to %s", mono_error_get_message (&error));
@@ -8718,7 +8735,8 @@ method_commands_internal (int command, MonoMethod *method, MonoDomain *domain, g
                        } else if (handle_class == mono_defaults.string_class) {
                                char *s;
 
-                               s = mono_string_to_utf8 ((MonoString *)val);
+                               s = mono_string_to_utf8_checked ((MonoString *)val, &error);
+                               mono_error_assert_ok (&error);
                                buffer_add_byte (buf, TOKEN_TYPE_STRING);
                                buffer_add_string (buf, s);
                                g_free (s);
@@ -9234,7 +9252,9 @@ string_commands (int command, guint8 *p, guint8 *end, Buffer *buf)
                        buffer_add_int (buf, mono_string_length (str) * 2);
                        buffer_add_data (buf, (guint8*)mono_string_chars (str), mono_string_length (str) * 2);
                } else {
-                       s = mono_string_to_utf8 (str);
+                       MonoError error;
+                       s = mono_string_to_utf8_checked (str, &error);
+                       mono_error_assert_ok (&error);
                        buffer_add_string (buf, s);
                        g_free (s);
                }
index 8f7b81b30a217b43f87cf259b4fd02b59454e039..abfa1ffe73b3cf93737bc63885693e13034587f3 100644 (file)
@@ -262,7 +262,7 @@ alloc_dreg (MonoCompile *cfg, MonoStackType stack_type)
 
 #define NEW_LDSTRLITCONST(cfg,dest,val) NEW_AOTCONST ((cfg), (dest), MONO_PATCH_INFO_LDSTR_LIT, (val))
 
-#define NEW_TYPE_FROM_HANDLE_CONST(cfg,dest,image,token,generic_context) NEW_AOTCONST_TOKEN ((cfg), (dest), MONO_PATCH_INFO_TYPE_FROM_HANDLE, (image), (token), (generic_context), STACK_OBJ, mono_defaults.monotype_class)
+#define NEW_TYPE_FROM_HANDLE_CONST(cfg,dest,image,token,generic_context) NEW_AOTCONST_TOKEN ((cfg), (dest), MONO_PATCH_INFO_TYPE_FROM_HANDLE, (image), (token), (generic_context), STACK_OBJ, mono_defaults.runtimetype_class)
 
 #define NEW_LDTOKENCONST(cfg,dest,image,token,generic_context) NEW_AOTCONST_TOKEN ((cfg), (dest), MONO_PATCH_INFO_LDTOKEN, (image), (token), (generic_context), STACK_PTR, NULL)
 
@@ -448,7 +448,7 @@ handle_gsharedvt_ldaddr (MonoCompile *cfg)
 
 #define EMIT_NEW_LDSTRLITCONST(cfg,dest,val) do { NEW_AOTCONST ((cfg), (dest), MONO_PATCH_INFO_LDSTR_LIT, (val)); MONO_ADD_INS ((cfg)->cbb, (dest)); } while (0)
 
-#define EMIT_NEW_TYPE_FROM_HANDLE_CONST(cfg,dest,image,token,generic_context) do { NEW_AOTCONST_TOKEN ((cfg), (dest), MONO_PATCH_INFO_TYPE_FROM_HANDLE, (image), (token), (generic_context), STACK_OBJ, mono_defaults.monotype_class); MONO_ADD_INS ((cfg)->cbb, (dest)); } while (0)
+#define EMIT_NEW_TYPE_FROM_HANDLE_CONST(cfg,dest,image,token,generic_context) do { NEW_AOTCONST_TOKEN ((cfg), (dest), MONO_PATCH_INFO_TYPE_FROM_HANDLE, (image), (token), (generic_context), STACK_OBJ, mono_defaults.runtimetype_class); MONO_ADD_INS ((cfg)->cbb, (dest)); } while (0)
 
 #define EMIT_NEW_LDTOKENCONST(cfg,dest,image,token,generic_context) do { NEW_AOTCONST_TOKEN ((cfg), (dest), MONO_PATCH_INFO_LDTOKEN, (image), (token), (generic_context), STACK_PTR, NULL); MONO_ADD_INS ((cfg)->cbb, (dest)); } while (0)
 
index eea343db4a75b35238914bf4a406f720891fb38e..39abeb285497461e407cb5f3f1bfb3dd0fa96d7b 100644 (file)
@@ -1869,3 +1869,17 @@ mono_interruption_checkpoint_from_trampoline (void)
        if (ex)
                mono_raise_exception (ex);
 }
+
+void
+mono_throw_method_access (MonoMethod *callee, MonoMethod *caller)
+{
+       char *callee_name = mono_method_full_name (callee, 1);
+       char *caller_name = mono_method_full_name (caller, 1);
+       MonoError error;
+
+       mono_error_init (&error);
+       mono_error_set_generic_error (&error, "System", "MethodAccessException", "Method `%s' is inaccessible from method `%s'\n", callee_name, caller_name);
+       mono_error_set_pending_exception (&error);
+       g_free (callee_name);
+       g_free (caller_name);
+}
index 8e2b37d367628cd1f4e3799960bd2622a77a410b..319ec902a013c47aaac095493c859aee047d2149 100644 (file)
@@ -224,4 +224,6 @@ MonoObject* mono_get_method_object (MonoMethod *method);
 
 double mono_ckfinite (double d);
 
+void mono_throw_method_access (MonoMethod *callee, MonoMethod *caller);
+
 #endif /* __MONO_JIT_ICALLS_H__ */
index c8cd9d6d0a6e5c19e57f5c9311a84448442ef4eb..a35a7a39f21405c92b2b9602205116099f4b7852 100644 (file)
@@ -555,13 +555,13 @@ mono_local_cprop (MonoCompile *cfg)
                                        ins->inst_destbasereg = def->sreg1;
                                        ins->inst_offset += def->inst_imm;
                                }
+
+                               if (!MONO_IS_STORE_MEMBASE (ins) && !vreg_is_volatile (cfg, ins->dreg)) {
+                                       defs [ins->dreg] = ins;
+                                       def_index [ins->dreg] = ins_index;
+                               }
                        }
                        
-                       if ((spec [MONO_INST_DEST] != ' ') && !MONO_IS_STORE_MEMBASE (ins) && !vreg_is_volatile (cfg, ins->dreg)) {
-                               defs [ins->dreg] = ins;
-                               def_index [ins->dreg] = ins_index;
-                       }
-
                        if (MONO_IS_CALL (ins))
                                last_call_index = ins_index;
 
index b7bb7790fac84a7154b274e145c43cdb53d9c68d..ec4e6f429e462e45bc5388dda0501834aeb51601 100644 (file)
                if (cfg->exception_type != MONO_EXCEPTION_NONE) \
                        goto exception_exit;                                            \
        } while (0)
-#define METHOD_ACCESS_FAILURE(method, cmethod) do {                    \
-               method_access_failure ((cfg), (method), (cmethod));                     \
-               goto exception_exit;                                                                            \
-       } while (0)
 #define FIELD_ACCESS_FAILURE(method, field) do {                                       \
                field_access_failure ((cfg), (method), (field));                        \
                goto exception_exit;    \
@@ -377,17 +373,6 @@ break_on_unverified (void)
                G_BREAKPOINT ();
 }
 
-static MONO_NEVER_INLINE void
-method_access_failure (MonoCompile *cfg, MonoMethod *method, MonoMethod *cil_method)
-{
-       char *method_fname = mono_method_full_name (method, TRUE);
-       char *cil_method_fname = mono_method_full_name (cil_method, TRUE);
-       mono_cfg_set_exception (cfg, MONO_EXCEPTION_MONO_ERROR);
-       mono_error_set_generic_error (&cfg->error, "System", "MethodAccessException", "Method `%s' is inaccessible from method `%s'\n", cil_method_fname, method_fname);
-       g_free (method_fname);
-       g_free (cil_method_fname);
-}
-
 static MONO_NEVER_INLINE void
 field_access_failure (MonoCompile *cfg, MonoMethod *method, MonoClassField *field)
 {
@@ -3156,6 +3141,18 @@ mono_emit_widen_call_res (MonoCompile *cfg, MonoInst *ins, MonoMethodSignature *
        return ins;
 }
 
+
+static void
+emit_method_access_failure (MonoCompile *cfg, MonoMethod *method, MonoMethod *cil_method)
+{
+       MonoInst *args [16];
+
+       args [0] = emit_get_rgctx_method (cfg, mono_method_check_context_used (method), method, MONO_RGCTX_INFO_METHOD);
+       args [1] = emit_get_rgctx_method (cfg, mono_method_check_context_used (cil_method), cil_method, MONO_RGCTX_INFO_METHOD);
+
+       mono_emit_jit_icall (cfg, mono_throw_method_access, args);
+}
+
 static MonoMethod*
 get_memcpy_method (void)
 {
@@ -6834,7 +6831,8 @@ mini_emit_inst_for_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSign
                        MONO_INST_NEW (cfg, ins, OP_OBJC_GET_SELECTOR);
                        ins->dreg = mono_alloc_ireg (cfg);
                        // FIXME: Leaks
-                       ins->inst_p0 = mono_string_to_utf8 (s);
+                       ins->inst_p0 = mono_string_to_utf8_checked (s, &cfg->error);
+                       return_val_if_nok (&cfg->error, NULL);
                        MONO_ADD_INS (cfg->cbb, ins);
                        return ins;
                }
@@ -9268,7 +9266,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                }
                                if (!mono_method_can_access_method (method_definition, target_method) &&
                                        !mono_method_can_access_method (method, cil_method))
-                                       METHOD_ACCESS_FAILURE (method, cil_method);
+                                       emit_method_access_failure (cfg, method, cil_method);
                        }
 
                        if (mono_security_core_clr_enabled ())
@@ -13079,7 +13077,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
 
                                cil_method = cmethod;
                                if (!dont_verify && !cfg->skip_visibility && !mono_method_can_access_method (method, cmethod))
-                                       METHOD_ACCESS_FAILURE (method, cil_method);
+                                       emit_method_access_failure (cfg, method, cil_method);
 
                                if (mono_security_core_clr_enabled ())
                                        ensure_method_is_allowed_to_call_method (cfg, method, cmethod);
index 2930a31e58526064279b25364aa023b29e8e6acb..ddf699c58caf5878afcec17bdb707222e4820d97 100644 (file)
@@ -5,6 +5,7 @@
  *   Zoltan Varga <vargaz@gmail.com>
  *   Rodrigo Kumpera <kumpera@gmail.com>
  *   Andi McClure <andi.mcclure@xamarin.com>
+ *   Johan Lorensson <johan.lorensson@xamarin.com>
  *
  * Copyright 2015 Xamarin, Inc (http://www.xamarin.com)
  * Licensed under the MIT license. See LICENSE file in the project root for full license information.
@@ -80,9 +81,17 @@ add_to_map (GPtrArray *map, int src, int dst)
 
 /*
  * Slot mapping:
+ *
+ * System V:
  * 0..5  - rdi, rsi, rdx, rcx, r8, r9
  * 6..13 - xmm0..xmm7
  * 14..  - stack slots
+ *
+ * Windows:
+ * 0..3 - rcx, rdx, r8, r9
+ * 4..7 - xmm0..xmm3
+ * 8..  - stack slots
+ *
  */
 static inline int
 map_reg (int reg)
@@ -356,7 +365,7 @@ mono_arch_get_gsharedvt_call_info (gpointer addr, MonoMethodSignature *normal_si
        DEBUG_AMD64_GSHAREDVT_PRINT ("-- return in (%s) out (%s) var_ret %d\n", arg_info_desc (&caller_cinfo->ret),  arg_info_desc (&callee_cinfo->ret), var_ret);
 
        if (cinfo->ret.storage == ArgValuetypeAddrInIReg) {
-               /* Both the caller and the callee pass the vtype ret address in r8 */
+               /* Both the caller and the callee pass the vtype ret address in r8 (System V) and RCX or RDX (Windows) */
                g_assert (gcinfo->ret.storage == ArgValuetypeAddrInIReg || gcinfo->ret.storage == ArgGsharedvtVariableInReg);
                add_to_map (map, map_reg (cinfo->ret.reg), map_reg (cinfo->ret.reg));
        }
index 3e3d56c54f2db331337cdc190c81cdb7fc65f9c2..1bb14e5abd2c4f43eed0d67118a82037ad151d71 100644 (file)
@@ -5,6 +5,7 @@
  *   Zoltan Varga <vargaz@gmail.com>
  *   Rodrigo Kumpera <kumpera@gmail.com>
  *   Andi McClure <andi.mcclure@xamarin.com>
+ *   Johan Lorensson <johan.lorensson@xamarin.com>
  *
  * Copyright 2015 Xamarin, Inc (http://www.xamarin.com)
  * Licensed under the MIT license. See LICENSE file in the project root for full license information.
index aa7acf5abc72eb26d1200dce837653f7885f2eab..f7d2973db8c9b4e66bcd8ab9d17d75b110f1bc5a 100644 (file)
@@ -797,9 +797,11 @@ add_valuetype (MonoMethodSignature *sig, ArgInfo *ainfo, MonoType *type,
 /*
  * get_call_info:
  *
- *  Obtain information about a call according to the calling convention.
- * For AMD64, see the "System V ABI, x86-64 Architecture Processor Supplement 
+ * Obtain information about a call according to the calling convention.
+ * For AMD64 System V, see the "System V ABI, x86-64 Architecture Processor Supplement
  * Draft Version 0.23" document for more information.
+ * For AMD64 Windows, see "Overview of x64 Calling Conventions",
+ * https://msdn.microsoft.com/en-us/library/ms235286.aspx
  */
 static CallInfo*
 get_call_info (MonoMemPool *mp, MonoMethodSignature *sig)
@@ -2325,10 +2327,6 @@ dyn_call_supported (MonoMethodSignature *sig, CallInfo *cinfo)
 {
        int i;
 
-#ifdef HOST_WIN32
-       return FALSE;
-#endif
-
        switch (cinfo->ret.storage) {
        case ArgNone:
        case ArgInIReg:
index 753c091a3b7963720f010b2f1797b7f6255fa95c..dc87a104e228e9e6de9342950938c96fdf248586 100644 (file)
@@ -412,9 +412,7 @@ typedef struct {
 #define MONO_ARCH_HAVE_TLS_GET_REG 1
 #endif
 
-#if !defined (TARGET_WIN32)
 #define MONO_ARCH_GSHAREDVT_SUPPORTED 1
-#endif
 
 
 #if defined(TARGET_APPLETVOS)
index 8e7e351b08070e417be7b1524e85581d2797af8e..e8cfe51c5a56b9107815595df3c94c0015940b1f 100644 (file)
@@ -1362,10 +1362,25 @@ get_call_info (MonoMemPool *mp, MonoMethodSignature *sig)
                        cinfo->ret.nregs = nfields;
                        cinfo->ret.esize = esize;
                } else {
-                       if (is_pinvoke && mono_class_native_size (mono_class_from_mono_type (t), &align) <= sizeof (gpointer))
-                               cinfo->ret.storage = RegTypeStructByVal;
-                       else
+                       if (is_pinvoke) {
+                               int native_size = mono_class_native_size (mono_class_from_mono_type (t), &align);
+                               int max_size;
+
+#ifdef TARGET_WATCHOS
+                               max_size = 16;
+#else
+                               max_size = 4;
+#endif
+                               if (native_size <= max_size) {
+                                       cinfo->ret.storage = RegTypeStructByVal;
+                                       cinfo->ret.struct_size = native_size;
+                                       cinfo->ret.nregs = ALIGN_TO (native_size, 4) / 4;
+                               } else {
+                                       cinfo->ret.storage = RegTypeStructByAddr;
+                               }
+                       } else {
                                cinfo->ret.storage = RegTypeStructByAddr;
+                       }
                }
                break;
        case MONO_TYPE_VAR:
@@ -1518,6 +1533,27 @@ get_call_info (MonoMemPool *mp, MonoMethodSignature *sig)
                                        size = mini_type_stack_size_full (t, &align, FALSE);
                        }
                        DEBUG(g_print ("load %d bytes struct\n", size));
+
+#ifdef TARGET_WATCHOS
+                       /* Watchos pass large structures by ref */
+                       /* We only do this for pinvoke to make gsharedvt/dyncall simpler */
+                       if (sig->pinvoke && size > 16) {
+                               add_general (&gr, &stack_size, ainfo, TRUE);
+                               switch (ainfo->storage) {
+                               case RegTypeGeneral:
+                                       ainfo->storage = RegTypeStructByAddr;
+                                       break;
+                               case RegTypeBase:
+                                       ainfo->storage = RegTypeStructByAddrOnStack;
+                                       break;
+                               default:
+                                       g_assert_not_reached ();
+                                       break;
+                               }
+                               break;
+                       }
+#endif
+
                        align_size = size;
                        nwords = 0;
                        align_size += (sizeof (gpointer) - 1);
@@ -1804,21 +1840,16 @@ mono_arch_allocate_vars (MonoCompile *cfg)
 
        switch (cinfo->ret.storage) {
        case RegTypeStructByVal:
-               cfg->ret->opcode = OP_REGOFFSET;
-               cfg->ret->inst_basereg = cfg->frame_reg;
-               offset += sizeof (gpointer) - 1;
-               offset &= ~(sizeof (gpointer) - 1);
-               cfg->ret->inst_offset = - offset;
-               offset += sizeof(gpointer);
-               break;
        case RegTypeHFA:
                /* Allocate a local to hold the result, the epilog will copy it to the correct place */
                offset = ALIGN_TO (offset, 8);
                cfg->ret->opcode = OP_REGOFFSET;
                cfg->ret->inst_basereg = cfg->frame_reg;
                cfg->ret->inst_offset = offset;
-               // FIXME:
-               offset += 32;
+               if (cinfo->ret.storage == RegTypeStructByVal)
+                       offset += cinfo->ret.nregs * sizeof (gpointer);
+               else
+                       offset += 32;
                break;
        case RegTypeStructByAddr:
                ins = cfg->vret_addr;
@@ -2140,6 +2171,13 @@ mono_arch_get_llvm_call_info (MonoCompile *cfg, MonoMethodSignature *sig)
                linfo->ret.storage = LLVMArgVtypeRetAddr;
                linfo->vret_arg_index = cinfo->vret_arg_index;
                break;
+#if TARGET_WATCHOS
+       case RegTypeStructByVal:
+               /* LLVM models this by returning an int array */
+               linfo->ret.storage = LLVMArgAsIArgs;
+               linfo->ret.nslots = cinfo->ret.nregs;
+               break;
+#endif
        default:
                cfg->exception_message = g_strdup_printf ("unknown ret conv (%d)", cinfo->ret.storage);
                cfg->disable_llvm = TRUE;
@@ -2147,9 +2185,10 @@ mono_arch_get_llvm_call_info (MonoCompile *cfg, MonoMethodSignature *sig)
        }
 
        for (i = 0; i < n; ++i) {
+               LLVMArgInfo *lainfo = &linfo->args [i];
                ainfo = cinfo->args + i;
 
-               linfo->args [i].storage = LLVMArgNone;
+               lainfo->storage = LLVMArgNone;
 
                switch (ainfo->storage) {
                case RegTypeGeneral:
@@ -2157,11 +2196,15 @@ mono_arch_get_llvm_call_info (MonoCompile *cfg, MonoMethodSignature *sig)
                case RegTypeBase:
                case RegTypeBaseGen:
                case RegTypeFP:
-                       linfo->args [i].storage = LLVMArgNormal;
+                       lainfo->storage = LLVMArgNormal;
                        break;
                case RegTypeStructByVal:
-                       linfo->args [i].storage = LLVMArgAsIArgs;
-                       linfo->args [i].nslots = ainfo->struct_size / sizeof (gpointer);
+                       lainfo->storage = LLVMArgAsIArgs;
+                       lainfo->nslots = ainfo->struct_size / sizeof (gpointer);
+                       break;
+               case RegTypeStructByAddr:
+               case RegTypeStructByAddrOnStack:
+                       lainfo->storage = LLVMArgVtypeByRef;
                        break;
                default:
                        cfg->exception_message = g_strdup_printf ("ainfo->storage (%d)", ainfo->storage);
@@ -2189,10 +2232,14 @@ mono_arch_emit_call (MonoCompile *cfg, MonoCallInst *call)
 
        switch (cinfo->ret.storage) {
        case RegTypeStructByVal:
-               /* The JIT will transform this into a normal call */
-               call->vret_in_reg = TRUE;
-               break;
        case RegTypeHFA:
+               if (cinfo->ret.storage == RegTypeStructByVal && cinfo->ret.nregs == 1) {
+                       /* The JIT will transform this into a normal call */
+                       call->vret_in_reg = TRUE;
+                       break;
+               }
+               if (call->inst.opcode == OP_TAILCALL)
+                       break;
                /*
                 * The vtype is returned in registers, save the return area address in a local, and save the vtype into
                 * the location pointed to by it after call in emit_move_return_value ().
@@ -2306,19 +2353,12 @@ mono_arch_emit_call (MonoCompile *cfg, MonoCallInst *call)
                                mono_call_inst_add_outarg_reg (cfg, call, ins->dreg, ainfo->reg, FALSE);
                        }
                        break;
-               case RegTypeStructByAddr:
-                       NOT_IMPLEMENTED;
-#if 0
-                       /* FIXME: where si the data allocated? */
-                       arg->backend.reg3 = ainfo->reg;
-                       call->used_iregs |= 1 << ainfo->reg;
-                       g_assert_not_reached ();
-#endif
-                       break;
                case RegTypeStructByVal:
                case RegTypeGSharedVtInReg:
                case RegTypeGSharedVtOnStack:
                case RegTypeHFA:
+               case RegTypeStructByAddr:
+               case RegTypeStructByAddrOnStack:
                        MONO_INST_NEW (cfg, ins, OP_OUTARG_VT);
                        ins->opcode = OP_OUTARG_VT;
                        ins->sreg1 = in->dreg;
@@ -2464,10 +2504,12 @@ mono_arch_emit_outarg_vt (MonoCompile *cfg, MonoInst *ins, MonoInst *src)
 
        switch (ainfo->storage) {
        case RegTypeGSharedVtInReg:
+       case RegTypeStructByAddr:
                /* Pass by addr */
                mono_call_inst_add_outarg_reg (cfg, call, src->dreg, ainfo->reg, FALSE);
                break;
        case RegTypeGSharedVtOnStack:
+       case RegTypeStructByAddrOnStack:
                /* Pass by addr on stack */
                MONO_EMIT_NEW_STORE_MEMBASE (cfg, OP_STORE_MEMBASE_REG, ARMREG_SP, ainfo->offset, src->dreg);
                break;
@@ -4037,10 +4079,16 @@ emit_move_return_value (MonoCompile *cfg, MonoInst *ins, guint8 *code)
        cinfo = call->call_info;
 
        switch (cinfo->ret.storage) {
+       case RegTypeStructByVal:
        case RegTypeHFA: {
                MonoInst *loc = cfg->arch.vret_addr_loc;
                int i;
 
+               if (cinfo->ret.storage == RegTypeStructByVal && cinfo->ret.nregs == 1) {
+                       /* The JIT treats this as a normal call */
+                       break;
+               }
+
                /* Load the destination address */
                g_assert (loc && loc->opcode == OP_REGOFFSET);
 
@@ -4050,11 +4098,34 @@ emit_move_return_value (MonoCompile *cfg, MonoInst *ins, guint8 *code)
                        code = mono_arm_emit_load_imm (code, ARMREG_LR, loc->inst_offset);
                        ARM_LDR_REG_REG (code, ARMREG_LR, loc->inst_basereg, ARMREG_LR);
                }
-               for (i = 0; i < cinfo->ret.nregs; ++i) {
-                       if (cinfo->ret.esize == 4)
-                               ARM_FSTS (code, cinfo->ret.reg + i, ARMREG_LR, i * 4);
-                       else
-                               ARM_FSTD (code, cinfo->ret.reg + (i * 2), ARMREG_LR, i * 8);
+
+               if (cinfo->ret.storage == RegTypeStructByVal) {
+                       int rsize = cinfo->ret.struct_size;
+
+                       for (i = 0; i < cinfo->ret.nregs; ++i) {
+                               g_assert (rsize >= 0);
+                               switch (rsize) {
+                               case 0:
+                                       break;
+                               case 1:
+                                       ARM_STRB_IMM (code, i, ARMREG_LR, i * 4);
+                                       break;
+                               case 2:
+                                       ARM_STRH_IMM (code, i, ARMREG_LR, i * 4);
+                                       break;
+                               default:
+                                       ARM_STR_IMM (code, i, ARMREG_LR, i * 4);
+                                       break;
+                               }
+                               rsize -= 4;
+                       }
+               } else {
+                       for (i = 0; i < cinfo->ret.nregs; ++i) {
+                               if (cinfo->ret.esize == 4)
+                                       ARM_FSTS (code, cinfo->ret.reg + i, ARMREG_LR, i * 4);
+                               else
+                                       ARM_FSTD (code, cinfo->ret.reg + (i * 2), ARMREG_LR, i * 8);
+                       }
                }
                return code;
        }
@@ -6228,6 +6299,7 @@ mono_arch_emit_prolog (MonoCompile *cfg)
                        case RegTypeGeneral:
                        case RegTypeIRegPair:
                        case RegTypeGSharedVtInReg:
+                       case RegTypeStructByAddr:
                                switch (ainfo->size) {
                                case 1:
                                        if (arm_is_imm12 (inst->inst_offset))
@@ -6288,6 +6360,7 @@ mono_arch_emit_prolog (MonoCompile *cfg)
                                break;
                        case RegTypeBase:
                        case RegTypeGSharedVtOnStack:
+                       case RegTypeStructByAddrOnStack:
                                if (arm_is_imm12 (prev_sp_offset + ainfo->offset)) {
                                        ARM_LDR_IMM (code, ARMREG_LR, ARMREG_SP, (prev_sp_offset + ainfo->offset));
                                } else {
@@ -6380,10 +6453,6 @@ mono_arch_emit_prolog (MonoCompile *cfg)
                                }
                                break;
                        }
-                       case RegTypeStructByAddr:
-                               g_assert_not_reached ();
-                               /* FIXME: handle overrun! with struct sizes not multiple of 4 */
-                               code = emit_memcpy (code, ainfo->vtsize * sizeof (gpointer), inst->inst_basereg, inst->inst_offset, ainfo->reg, 0);
                        default:
                                g_assert_not_reached ();
                                break;
@@ -6507,11 +6576,23 @@ mono_arch_emit_epilog (MonoCompile *cfg)
        case RegTypeStructByVal: {
                MonoInst *ins = cfg->ret;
 
-               if (arm_is_imm12 (ins->inst_offset)) {
-                       ARM_LDR_IMM (code, ARMREG_R0, ins->inst_basereg, ins->inst_offset);
+               if (cinfo->ret.nregs == 1) {
+                       if (arm_is_imm12 (ins->inst_offset)) {
+                               ARM_LDR_IMM (code, ARMREG_R0, ins->inst_basereg, ins->inst_offset);
+                       } else {
+                               code = mono_arm_emit_load_imm (code, ARMREG_LR, ins->inst_offset);
+                               ARM_LDR_REG_REG (code, ARMREG_R0, ins->inst_basereg, ARMREG_LR);
+                       }
                } else {
-                       code = mono_arm_emit_load_imm (code, ARMREG_LR, ins->inst_offset);
-                       ARM_LDR_REG_REG (code, ARMREG_R0, ins->inst_basereg, ARMREG_LR);
+                       for (i = 0; i < cinfo->ret.nregs; ++i) {
+                               int offset = ins->inst_offset + (i * 4);
+                               if (arm_is_imm12 (offset)) {
+                                       ARM_LDR_IMM (code, i, ins->inst_basereg, offset);
+                               } else {
+                                       code = mono_arm_emit_load_imm (code, ARMREG_LR, offset);
+                                       ARM_LDR_REG_REG (code, i, ins->inst_basereg, ARMREG_LR);
+                               }
+                       }
                }
                break;
        }
index 2e127929ba7e0955a90f239cf1f777b92b22f666..046b8c543fff784b91b7342b1d1d00eb7ce4d856 100644 (file)
@@ -187,8 +187,10 @@ typedef enum {
        RegTypeBaseGen,
        /* FP value passed in either an ireg or a vfp reg */
        RegTypeFP,
+       /* Struct passed/returned in gregs */
        RegTypeStructByVal,
        RegTypeStructByAddr,
+       RegTypeStructByAddrOnStack,
        /* gsharedvt argument passed by addr in greg */
        RegTypeGSharedVtInReg,
        /* gsharedvt argument passed by addr on stack */
@@ -201,10 +203,11 @@ typedef struct {
        guint16 vtsize; /* in param area */
        /* RegTypeHFA */
        int esize;
-       /* RegTypeHFA */
+       /* RegTypeHFA/RegTypeStructByVal */
        int nregs;
        guint8  reg;
        ArgStorage  storage;
+       /* RegTypeStructByVal */
        gint32  struct_size;
        guint8  size    : 4; /* 1, 2, 4, 8, or regs used by RegTypeStructByVal */
 } ArgInfo;
index 60edcce554c91b89eeefd835771b4b2018599f69..3db1e173d794ff535fdce56b75c738289fcabdd8 100644 (file)
@@ -1697,7 +1697,15 @@ mono_handle_exception_internal (MonoContext *ctx, MonoObject *obj, gboolean resu
                                mono_error_assert_ok (&error);
                        }
                        if (msg == NULL) {
-                               msg = message ? mono_string_to_utf8 ((MonoString *) message) : g_strdup ("(System.Exception.Message property not available)");
+                               if (message) {
+                                       msg = mono_string_to_utf8_checked ((MonoString *) message, &error);
+                                       if (!is_ok (&error)) {
+                                               mono_error_cleanup (&error);
+                                               msg = g_strdup ("(error while display System.Exception.Message property)");
+                                       }
+                               } else {
+                                       msg = g_strdup ("(System.Exception.Message property not available)");
+                               }
                        }
                        g_print ("[%p:] EXCEPTION handling: %s.%s: %s\n", (void*)mono_native_thread_id_get (), mono_object_class (obj)->name_space, mono_object_class (obj)->name, msg);
                        g_free (msg);
@@ -2827,13 +2835,18 @@ mono_invoke_unhandled_exception_hook (MonoObject *exc)
        if (unhandled_exception_hook) {
                unhandled_exception_hook (exc, unhandled_exception_hook_data);
        } else {
+               MonoError inner_error;
                MonoObject *other = NULL;
-               MonoString *str = mono_object_to_string (exc, &other);
+               MonoString *str = mono_object_try_to_string (exc, &other, &inner_error);
                char *msg = NULL;
                
-               if (str)
-                       msg = mono_string_to_utf8 (str);
-               else if (other) {
+               if (str && is_ok (&inner_error)) {
+                       msg = mono_string_to_utf8_checked (str, &inner_error);
+               }
+               if (!is_ok (&inner_error)) {
+                       msg = g_strdup_printf ("Nested exception while formatting original exception");
+                       mono_error_cleanup (&inner_error);
+               } else if (other) {
                        char *original_backtrace = mono_exception_get_managed_backtrace ((MonoException*)exc);
                        char *nested_backtrace = mono_exception_get_managed_backtrace ((MonoException*)other);
 
index 564c0de7d03b271a30f1663277095a4afb6fa0c5..84c21c5890e9dfedf73e95a441857fc6875f370a 100644 (file)
@@ -1102,7 +1102,7 @@ get_wrapper_shared_type (MonoType *t)
                int i;
 
                if (!MONO_TYPE_ISSTRUCT (t))
-                       return &mono_defaults.int_class->byval_arg;
+                       return get_wrapper_shared_type (&mono_defaults.object_class->byval_arg);
 
                klass = mono_class_from_mono_type (t);
                orig_ctx = &klass->generic_class->context;
index 8f33bb655a977867a859c49f0f616e8c627083e6..ca7a3ce12b2ba071c84d3b0c1583c0cc56bf09cc 100644 (file)
@@ -1282,6 +1282,9 @@ sig_to_llvm_sig_full (EmitContext *ctx, MonoMethodSignature *sig, LLVMCallInfo *
                }
                break;
        }
+       case LLVMArgAsIArgs:
+               ret_type = LLVMArrayType (IntPtrType (), cinfo->ret.nslots);
+               break;
        case LLVMArgFpStruct: {
                /* Vtype returned as a fp struct */
                LLVMTypeRef members [16];
@@ -3532,6 +3535,7 @@ process_call (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef *builder_ref,
                        addresses [call->inst.dreg] = build_alloca (ctx, sig->ret);
                LLVMBuildStore (builder, lcall, addresses [call->inst.dreg]);
                break;
+       case LLVMArgAsIArgs:
        case LLVMArgFpStruct:
                if (!addresses [call->inst.dreg])
                        addresses [call->inst.dreg] = build_alloca (ctx, sig->ret);
@@ -4359,6 +4363,7 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
                                LLVMBuildRetVoid (builder);
                                break;
                        }
+                       case LLVMArgAsIArgs:
                        case LLVMArgFpStruct: {
                                LLVMTypeRef ret_type = LLVMGetReturnType (LLVMGetElementType (LLVMTypeOf (method)));
                                LLVMValueRef retval;
index ad48c07158e3f0877ae4033b5c2dd0ab9a1f207a..883fc1af323b2eab7427b492160bef2dda2e8411 100644 (file)
@@ -42,6 +42,7 @@ MINI_OP(OP_SEQ_POINT, "seq_point", NONE, NONE, NONE)
 MINI_OP(OP_IL_SEQ_POINT, "il_seq_point", NONE, NONE, NONE)
 MINI_OP(OP_IMPLICIT_EXCEPTION, "implicit_exception", NONE, NONE, NONE)
 
+/* CALL opcodes need to stay together, see MONO_IS_CALL macro */
 MINI_OP(OP_VOIDCALL,   "voidcall", NONE, NONE, NONE)
 MINI_OP(OP_VOIDCALL_REG,       "voidcall_reg", NONE, IREG, NONE)
 MINI_OP(OP_VOIDCALL_MEMBASE,   "voidcall_membase", NONE, IREG, NONE)
index b1cb79734d5b607f96df20034f6f866da27c07d9..9bb896ee4ee78fee3cf09cbd47c8913aca853c78 100644 (file)
@@ -3951,6 +3951,7 @@ register_icalls (void)
        register_icall (mono_llvmonly_init_delegate_virtual, "mono_llvmonly_init_delegate_virtual", "void object object ptr", TRUE);
        register_icall (mono_get_assembly_object, "mono_get_assembly_object", "object ptr", TRUE);
        register_icall (mono_get_method_object, "mono_get_method_object", "object ptr", TRUE);
+       register_icall (mono_throw_method_access, "mono_throw_method_access", "void ptr ptr", FALSE);
 
        register_icall_with_wrapper (mono_monitor_enter, "mono_monitor_enter", "void obj");
        register_icall_with_wrapper (mono_monitor_enter_v4, "mono_monitor_enter_v4", "void obj ptr");
index 9cecc8b84458e8a66d02370fa66c521c24867e0c..3fe40d2cfc28fdd8a055b003ad58785d5cbd3427 100644 (file)
@@ -264,6 +264,8 @@ if (ins->inst_target_bb->native_offset) {                                   \
 #include <mono/metadata/appdomain.h>
 #include <mono/metadata/debug-helpers.h>
 #include <mono/metadata/profiler-private.h>
+#include <mono/utils/mono-error.h>
+#include <mono/utils/mono-error-internals.h>
 #include <mono/utils/mono-math.h>
 #include <mono/utils/mono-mmap.h>
 #include <mono/utils/mono-hwcap-s390x.h>
@@ -765,6 +767,20 @@ cvtMonoType(MonoTypeEnum t)
 /*                                                                 */
 /*------------------------------------------------------------------*/
 
+static void
+decodeParmString (MonoString *s)
+{
+       MonoError error;
+       char *str = mono_string_to_utf8_checked(s, &error);
+       if (is_ok (&error))  {
+               printf("[STRING:%p:%s], ", s, str);
+               g_free (str);
+       } else {
+               mono_error_cleanup (&error);
+               printf("[STRING:%p:], ", s);
+       }
+}
+
 static void 
 decodeParm(MonoType *type, void *curParm, int size)
 {
@@ -813,7 +829,7 @@ enum_parmtype:
                                MonoString *s = *((MonoString **) curParm);
                                if (s) {
                                        g_assert (((MonoObject *) s)->vtable->klass == mono_defaults.string_class);
-                                       printf("[STRING:%p:%s], ", s, mono_string_to_utf8(s));
+                                       decodeParmString (s);
                                } else {
                                        printf("[STRING:null], ");
                                }
@@ -828,8 +844,7 @@ enum_parmtype:
                                        klass = obj->vtable->klass;
                                        printf("%p [%p] ",obj,curParm);
                                        if (klass == mono_defaults.string_class) {
-                                               printf("[STRING:%p:%s]", 
-                                                      obj, mono_string_to_utf8 ((MonoString *) obj));
+                                               decodeParmString ((MonoString *)obj);
                                        } else if (klass == mono_defaults.int32_class) { 
                                                printf("[INT32:%p:%d]", 
                                                        obj, *(gint32 *)((char *)obj + sizeof (MonoObject)));
@@ -969,8 +984,8 @@ enter_method (MonoMethod *method, RegParm *rParm, char *sp)
                                if (obj->vtable) {
                                        klass = obj->vtable->klass;
                                        if (klass == mono_defaults.string_class) {
-                                               printf ("this:[STRING:%p:%s], ", 
-                                                       obj, mono_string_to_utf8 ((MonoString *)obj));
+                                               printf ("this:");
+                                               decodeParmString((MonoString *)obj);
                                        } else {
                                                printf ("this:%p[%s.%s], ", 
                                                        obj, klass->name_space, klass->name);
@@ -1126,7 +1141,7 @@ handle_enum:
 ;
                if (s) {
                        g_assert (((MonoObject *)s)->vtable->klass == mono_defaults.string_class);
-                       printf ("[STRING:%p:%s]", s, mono_string_to_utf8 (s));
+                       decodeParmString (s);
                } else 
                        printf ("[STRING:null], ");
                break;
index 1f2d43208115b5dd6122a86d26abc944861961d7..bb9608f740d5a5dc1985f4f0e7d37decb75cd2bd 100644 (file)
@@ -484,7 +484,8 @@ enum {
 #define MONO_IS_STORE_MEMBASE(ins) (((ins)->opcode >= OP_STORE_MEMBASE_REG && (ins)->opcode <= OP_STOREV_MEMBASE) || ((ins)->opcode >= OP_ATOMIC_STORE_I1 && (ins)->opcode <= OP_ATOMIC_STORE_R8))
 #define MONO_IS_STORE_MEMINDEX(ins) (((ins)->opcode >= OP_STORE_MEMINDEX) && ((ins)->opcode <= OP_STORER8_MEMINDEX))
 
-#define MONO_IS_CALL(ins) (((ins->opcode >= OP_VOIDCALL) && (ins->opcode <= OP_VOIDCALL_MEMBASE)) || ((ins->opcode >= OP_FCALL) && (ins->opcode <= OP_FCALL_MEMBASE)) || ((ins->opcode >= OP_LCALL) && (ins->opcode <= OP_LCALL_MEMBASE)) || ((ins->opcode >= OP_VCALL) && (ins->opcode <= OP_VCALL_MEMBASE)) || ((ins->opcode >= OP_CALL) && (ins->opcode <= OP_CALL_MEMBASE)) || ((ins->opcode >= OP_VCALL2) && (ins->opcode <= OP_VCALL2_MEMBASE)) || (ins->opcode == OP_TAILCALL) || ((ins->opcode >= OP_RCALL) && (ins->opcode <= OP_RCALL_MEMBASE)))
+// OP_DYN_CALL is not a MonoCallInst
+#define MONO_IS_CALL(ins) (((ins->opcode >= OP_VOIDCALL) && (ins->opcode <= OP_VCALL2_MEMBASE)) || (ins->opcode == OP_TAILCALL))
 
 #define MONO_IS_JUMP_TABLE(ins) (((ins)->opcode == OP_JUMP_TABLE) ? TRUE : ((((ins)->opcode == OP_AOTCONST) && (ins->inst_i1 == (gpointer)MONO_PATCH_INFO_SWITCH)) ? TRUE : ((ins)->opcode == OP_SWITCH) ? TRUE : ((((ins)->opcode == OP_GOT_ENTRY) && ((ins)->inst_right->inst_i1 == (gpointer)MONO_PATCH_INFO_SWITCH)) ? TRUE : FALSE)))
 
@@ -776,7 +777,7 @@ typedef enum {
        LLVMArgGsharedvtFixedVtype,
        /* Variable sized argument passed to/returned from gsharedvt method by ref */
        LLVMArgGsharedvtVariable,
-       /* Vtype passed as one int array argument */
+       /* Vtype passed/returned as one int array argument */
        LLVMArgAsIArgs,
        /* Vtype passed as a set of fp arguments */
        LLVMArgAsFpArgs,
index d8e4437b75d5ddb7836dbee0230e052f673744d6..98f89d63500b7fe89ea677a7bbe041a911dd4a00 100644 (file)
@@ -534,7 +534,7 @@ mono_trace_enter_method (MonoMethod *method, char *ebp)
                                        g_free (as);
                                } else if (klass == mono_defaults.int32_class) {
                                        printf ("[INT32:%p:%d], ", o, *(gint32 *)((char *)o + sizeof (MonoObject)));
-                               } else if (klass == mono_defaults.monotype_class) {
+                               } else if (klass == mono_defaults.runtimetype_class) {
                                        printf ("[TYPE:%s], ", mono_type_full_name (((MonoReflectionType*)o)->type));
                                } else
                                        printf ("[%s.%s:%p], ", klass->name_space, klass->name, o);
index 94289f9d571f3e52017596f3236752e5972298fe..f5600adbde78198f5a9935ef9971316cc1abfb8c 100644 (file)
@@ -5,6 +5,7 @@
  *   Zoltan Varga <vargaz@gmail.com>
  *   Rodrigo Kumpera <kumpera@gmail.com>
  *   Andi McClure <andi.mcclure@xamarin.com>
+ *   Johan Lorensson <johan.lorensson@xamarin.com>
  *
  * Copyright 2015 Xamarin, Inc (http://www.xamarin.com)
  * Licensed under the MIT license. See LICENSE file in the project root for full license information.
@@ -145,7 +146,6 @@ mono_arch_get_gsharedvt_arg_trampoline (MonoDomain *domain, gpointer arg, gpoint
        return start;
 }
 
-
 gpointer
 mono_arch_get_gsharedvt_trampoline (MonoTrampInfo **info, gboolean aot)
 {
@@ -245,8 +245,8 @@ mono_arch_get_gsharedvt_trampoline (MonoTrampInfo **info, gboolean aot)
        <caller registers area>
        <rgctx>
        <gsharedvt info>
-       <calee stack area>
-       <calee reg area>
+       <callee stack area>
+       <callee reg area>
         */
 
        /* Call start_gsharedvt_call () */
@@ -263,7 +263,23 @@ mono_arch_get_gsharedvt_trampoline (MonoTrampInfo **info, gboolean aot)
 
        if (aot) {
                code = mono_arch_emit_load_aotconst (buf, code, &ji, MONO_PATCH_INFO_JIT_ICALL_ADDR, "mono_amd64_start_gsharedvt_call");
-               amd64_call_reg (code, AMD64_R11);
+               #ifdef TARGET_WIN32
+                       /* Since we are doing a call as part of setting up stackframe, the reserved shadow stack used by Windows platform is allocated up in
+                       the callee stack area but currently the callee reg area is in between. Windows calling convention dictates that room is made on stack where
+                       callee can save any parameters passed in registers. Since Windows x64 calling convention
+                       uses 4 registers for the first 4 parameters, stack needs to be adjusted before making the call.
+                       NOTE, Windows calling convention assumes that space for all registers have been reserved, regardless
+                       of the number of function parameters actually used.
+                       */
+                       int shadow_reg_size = 0;
+
+                       shadow_reg_size = ALIGN_TO (PARAM_REGS * sizeof(gpointer), MONO_ARCH_FRAME_ALIGNMENT);
+                       amd64_alu_reg_imm (code, X86_SUB, AMD64_RSP, shadow_reg_size);
+                       amd64_call_reg (code, AMD64_R11);
+                       amd64_alu_reg_imm (code, X86_ADD, AMD64_RSP, shadow_reg_size);
+               #else
+                       amd64_call_reg (code, AMD64_R11);
+               #endif
        } else {
                g_error ("no aot");
        }
@@ -302,13 +318,14 @@ mono_arch_get_gsharedvt_trampoline (MonoTrampInfo **info, gboolean aot)
         */
 
        /* Load vret_slot */
-       amd64_mov_reg_membase (code, AMD64_RDI, AMD64_R10, MONO_STRUCT_OFFSET (GSharedVtCallInfo, vret_slot), 4);
-       amd64_alu_reg_imm (code, X86_SUB, AMD64_RDI, n_arg_regs + n_arg_fregs);
-       amd64_shift_reg_imm (code, X86_SHL, AMD64_RDI, 3);
+       /* Use first input parameter register as scratch since it is volatile on all platforms */
+       amd64_mov_reg_membase (code, MONO_AMD64_ARG_REG1, AMD64_R10, MONO_STRUCT_OFFSET (GSharedVtCallInfo, vret_slot), 4);
+       amd64_alu_reg_imm (code, X86_SUB, MONO_AMD64_ARG_REG1, n_arg_regs + n_arg_fregs);
+       amd64_shift_reg_imm (code, X86_SHL, MONO_AMD64_ARG_REG1, 3);
 
        /* vret address is RBP - (framesize - caller_reg_area_offset) */
        amd64_mov_reg_reg (code, AMD64_R11, AMD64_RSP, sizeof(mgreg_t));
-       amd64_alu_reg_reg (code, X86_ADD, AMD64_R11, AMD64_RDI);
+       amd64_alu_reg_reg (code, X86_ADD, AMD64_R11, MONO_AMD64_ARG_REG1);
 
        /* Load ret marshal type */
        /* Load vret address in R11 */
@@ -366,10 +383,10 @@ mono_arch_get_gsharedvt_trampoline (MonoTrampInfo **info, gboolean aot)
 
        /*
                Address to write return to is in the original value of the register specified by vret_arg_reg.
-               This will be either RSI or RDI depending on whether this is a static call.
+               This will be either RSI, RDI (System V) or RCX, RDX (Windows) depending on whether this is a static call.
                Its location:
                We alloc 'framesize' bytes below RBP to save regs, info and rgctx. RSP = RBP - framesize
-               We store rdi at RSP + caller_reg_area_offset + slot_index_of (register) * 8.
+               We store RDI (System V), RCX (Windows) at RSP + caller_reg_area_offset + slot_index_of (register) * 8.
 
                address: RBP - framesize + caller_reg_area_offset + 8*slot
        */
index 75b2348e53ce678f12ce2b4a443dd017e880dc8c..41e62a8a1b528645239bdbadc8502e1d9cec55de 100644 (file)
@@ -84,6 +84,10 @@ endif
 mprof_report_SOURCES = decode.c
 mprof_report_LDADD = $(Z_LIBS) $(GLIB_LIBS) $(LIBICONV)
 
+# FIXME fix the profiler tests to work with coop.
+if ENABLE_COOP
+DISABLE_PROFILER_TESTS=1
+endif
 PLOG_TESTS_SRC=test-alloc.cs test-busy.cs test-monitor.cs test-excleave.cs \
        test-heapshot.cs test-traces.cs
 PLOG_TESTS=$(PLOG_TESTS_SRC:.cs=.exe)
@@ -99,7 +103,12 @@ MCS = $(RUNTIME) $(mcs_topdir)/class/lib/build/mcs.exe -unsafe -nowarn:0162 -now
        $(MCS) -out:$@ $<
 
 testlog: $(PLOG_TESTS)
-       $(with_mono_path) perl $(srcdir)/ptestrunner.pl $(top_builddir)
+       if [ "z$(DISABLE_PROFILER_TESTS)" != z1 ]; then \
+               $(with_mono_path) perl $(srcdir)/ptestrunner.pl $(top_builddir) ; \
+       else \
+               echo "Profiler tests disabled with cooperative GC" ; \
+       fi
+
 
 if NACL_CODEGEN
 check-local:
index e9983a3b0697dd01c5e6dbb8153c406c769287eb..15baec017ac03cd4dc6a5451303577f73ab1433e 100644 (file)
@@ -203,7 +203,8 @@ static inline void print_report (const gchar *format, ...)
        prop = mono_class_get_property_from_name (klass, "StackTrace");
        str = (MonoString*)mono_property_get_value_checked (prop, NULL, NULL, &error);
        mono_error_assert_ok (&error);
-       stack_trace = mono_string_to_utf8 (str);
+       stack_trace = mono_string_to_utf8_checked (str, &error);
+       mono_error_assert_ok (&error);
 
        fprintf (stdout, "-= Stack Trace =-\n%s\n\n", stack_trace);
        g_free (stack_trace);
@@ -223,6 +224,7 @@ static inline void append_report (GString **report, const gchar *format, ...)
 
 static gboolean saved_strings_find_func (gpointer key, gpointer value, gpointer user_data)
 {
+       MonoError error;
        SavedStringFindInfo *info = (SavedStringFindInfo*)user_data;
        SavedString *saved = (SavedString*)value;
        gchar *utf_str;
@@ -231,7 +233,8 @@ static gboolean saved_strings_find_func (gpointer key, gpointer value, gpointer
        if (!info || !saved || mono_string_length (saved->string) != info->len)
                return FALSE;
 
-       utf_str = mono_string_to_utf8 (saved->string);
+       utf_str = mono_string_to_utf8_checked (saved->string, &error);
+       mono_error_assert_ok (&error);
        hash = do_calc_string_hash (0, utf_str);
        g_free (utf_str);
 
index 05dfe7d90743b041f12bcf26d587213920fe46c0..50369b0a783f22a7314279f70f0416c6a3ab84aa 100644 (file)
@@ -410,7 +410,7 @@ static void
 sgen_card_table_clear_cards (void)
 {
        /*XXX we could do this in 2 ways. using mincore or iterating over all sections/los objects */
-       sgen_major_collector_iterate_live_block_ranges (clear_cards);
+       sgen_major_collector_iterate_block_ranges (clear_cards);
        sgen_los_iterate_live_block_ranges (clear_cards);
 }
 
@@ -431,7 +431,7 @@ sgen_card_table_scan_remsets (ScanCopyContext ctx)
 #ifdef SGEN_HAVE_OVERLAPPING_CARDS
        /*FIXME we should have a bit on each block/los object telling if the object have marked cards.*/
        /*First we copy*/
-       sgen_major_collector_iterate_live_block_ranges (move_cards_to_shadow_table);
+       sgen_major_collector_iterate_block_ranges (move_cards_to_shadow_table);
        sgen_los_iterate_live_block_ranges (move_cards_to_shadow_table);
 
        /*Then we clear*/
index 852d93e366217d9c50f45f136db0845950d02335..6d60c3516c6a380c8a2de1c47827a34229ea853a 100644 (file)
@@ -174,7 +174,7 @@ void sgen_client_scan_thread_data (void *start_nursery, void *end_nursery, gbool
  * single-threaded programs this is a nop.
  */
 void sgen_client_stop_world (int generation);
-void sgen_client_restart_world (int generation, GGTimingInfo *timing);
+void sgen_client_restart_world (int generation, gint64 *stw_time);
 
 /*
  * Must return FALSE.  The bridge is not supported outside of Mono.
@@ -197,12 +197,6 @@ void sgen_client_bridge_register_finalized_object (GCObject *object);
 void sgen_client_mark_togglerefs (char *start, char *end, ScanCopyContext ctx);
 void sgen_client_clear_togglerefs (char *start, char *end, ScanCopyContext ctx);
 
-/*
- * Called after collections, reporting the amount of time they took.  No action is
- * necessary.
- */
-void sgen_client_log_timing (GGTimingInfo *info, mword promoted_size, mword major_used_size);
-
 /*
  * Called to handle `MONO_GC_PARAMS` and `MONO_GC_DEBUG` options.  The `handle` functions
  * must return TRUE if they have recognized and processed the option, FALSE otherwise.
index 1d3c897bd726f4277fc1c7a04d1590aea4acb066..6daa9199dfcea5d7067518d98732a153cb5f6abc 100644 (file)
@@ -992,9 +992,11 @@ check_reference_for_xdomain (GCObject **ptr, GCObject *obj, MonoDomain *domain)
                        break;
        }
 
-       if (ref->vtable->klass == mono_defaults.string_class)
-               str = mono_string_to_utf8 ((MonoString*)ref);
-       else
+       if (ref->vtable->klass == mono_defaults.string_class) {
+               MonoError error;
+               str = mono_string_to_utf8_checked ((MonoString*)ref, &error);
+               mono_error_cleanup (&error);
+       } else
                str = NULL;
        g_print ("xdomain reference in %p (%s.%s) at offset %d (%s) to %p (%s.%s) (%s)  -  pointed to by:\n",
                        obj, obj->vtable->klass->name_space, obj->vtable->klass->name,
index 41843b19cc788f351ee7fd94c3ca211b16db227b..b327ebd5a4d74b5e221611b0951d8695f57440b0 100644 (file)
@@ -326,6 +326,15 @@ nursery_canaries_enabled (void)
 
 #define safe_object_get_size   sgen_safe_object_get_size
 
+#if defined(PLATFORM_MACOSX) || defined(HOST_WIN32) || (defined(__linux__) && !defined(PLATFORM_ANDROID))
+/* Use concurrent major on deskstop platforms */
+#define DEFAULT_MAJOR_INIT sgen_marksweep_conc_init
+#define DEFAULT_MAJOR_NAME "marksweep-conc"
+#else
+#define DEFAULT_MAJOR_INIT sgen_marksweep_init
+#define DEFAULT_MAJOR_NAME "marksweep"
+#endif
+
 /*
  * ######################################################################
  * ########  Global data.
@@ -692,7 +701,7 @@ pin_objects_from_nursery_pin_queue (gboolean do_scan_objects, ScanCopyContext ct
 
                        pin_object (obj_to_pin);
                        GRAY_OBJECT_ENQUEUE (queue, obj_to_pin, desc);
-                       sgen_pin_stats_register_object (obj_to_pin, obj_to_pin_size);
+                       sgen_pin_stats_register_object (obj_to_pin, GENERATION_NURSERY);
                        definitely_pinned [count] = obj_to_pin;
                        count++;
                }
@@ -727,6 +736,8 @@ pin_objects_in_nursery (gboolean do_scan_objects, ScanCopyContext ctx)
 void
 sgen_pin_object (GCObject *object, GrayQueue *queue)
 {
+       SGEN_ASSERT (0, sgen_ptr_in_nursery (object), "We're only supposed to use this for pinning nursery objects when out of memory.");
+
        /*
         * All pinned objects are assumed to have been staged, so we need to stage as well.
         * Also, the count of staged objects shows that "late pinning" happened.
@@ -737,7 +748,7 @@ sgen_pin_object (GCObject *object, GrayQueue *queue)
        binary_protocol_pin (object, (gpointer)LOAD_VTABLE (object), safe_object_get_size (object));
 
        ++objects_pinned;
-       sgen_pin_stats_register_object (object, safe_object_get_size (object));
+       sgen_pin_stats_register_object (object, GENERATION_NURSERY);
 
        GRAY_OBJECT_ENQUEUE (queue, object, sgen_obj_get_descriptor_safe (object));
 }
@@ -1474,7 +1485,7 @@ enqueue_scan_from_roots_jobs (char *heap_start, char *heap_end, SgenObjectOperat
  * Return whether any objects were late-pinned due to being out of memory.
  */
 static gboolean
-collect_nursery (SgenGrayQueue *unpin_queue, gboolean finish_up_concurrent_mark)
+collect_nursery (const char *reason, gboolean is_overflow, SgenGrayQueue *unpin_queue, gboolean finish_up_concurrent_mark)
 {
        gboolean needs_major;
        size_t max_garbage_amount;
@@ -1569,7 +1580,7 @@ collect_nursery (SgenGrayQueue *unpin_queue, gboolean finish_up_concurrent_mark)
        time_minor_scan_remsets += TV_ELAPSED (atv, btv);
        SGEN_LOG (2, "Old generation scan: %lld usecs", (long long)TV_ELAPSED (atv, btv));
 
-       sgen_pin_stats_print_class_stats ();
+       sgen_pin_stats_report ();
 
        /* FIXME: Why do we do this at this specific, seemingly random, point? */
        sgen_client_collecting_minor (&fin_ready_queue, &critical_fin_queue);
@@ -1638,7 +1649,7 @@ collect_nursery (SgenGrayQueue *unpin_queue, gboolean finish_up_concurrent_mark)
 
        binary_protocol_flush_buffers (FALSE);
 
-       sgen_memgov_minor_collection_end ();
+       sgen_memgov_minor_collection_end (reason, is_overflow);
 
        /*objects are late pinned because of lack of memory, so a major is a good call*/
        needs_major = objects_pinned > 0;
@@ -1766,7 +1777,7 @@ major_copy_or_mark_from_roots (size_t *old_next_pin_slot, CopyOrMarkFromRootsMod
                        sgen_los_pin_object (bigobj->data);
                        if (SGEN_OBJECT_HAS_REFERENCES (bigobj->data))
                                GRAY_OBJECT_ENQUEUE (WORKERS_DISTRIBUTE_GRAY_QUEUE, bigobj->data, sgen_obj_get_descriptor ((GCObject*)bigobj->data));
-                       sgen_pin_stats_register_object (bigobj->data, safe_object_get_size (bigobj->data));
+                       sgen_pin_stats_register_object (bigobj->data, GENERATION_OLD);
                        SGEN_LOG (6, "Marked large object %p (%s) size: %lu from roots", bigobj->data,
                                        sgen_client_vtable_get_name (SGEN_LOAD_VTABLE (bigobj->data)),
                                        (unsigned long)sgen_los_object_size (bigobj));
@@ -1852,7 +1863,7 @@ major_copy_or_mark_from_roots (size_t *old_next_pin_slot, CopyOrMarkFromRootsMod
                time_major_scan_mod_union += TV_ELAPSED (btv, atv);
        }
 
-       sgen_pin_stats_print_class_stats ();
+       sgen_pin_stats_report ();
 }
 
 static void
@@ -1869,7 +1880,7 @@ major_finish_copy_or_mark (CopyOrMarkFromRootsMode mode)
 }
 
 static void
-major_start_collection (gboolean concurrent, size_t *old_next_pin_slot)
+major_start_collection (const char *reason, gboolean concurrent, size_t *old_next_pin_slot)
 {
        SgenObjectOperations *object_ops;
 
@@ -1893,7 +1904,7 @@ major_start_collection (gboolean concurrent, size_t *old_next_pin_slot)
 
        reset_pinned_from_failed_allocation ();
 
-       sgen_memgov_major_collection_start ();
+       sgen_memgov_major_collection_start (concurrent, reason);
 
        //count_ref_nonref_objs ();
        //consistency_check ();
@@ -1912,7 +1923,7 @@ major_start_collection (gboolean concurrent, size_t *old_next_pin_slot)
 }
 
 static void
-major_finish_collection (const char *reason, size_t old_next_pin_slot, gboolean forced)
+major_finish_collection (const char *reason, gboolean is_overflow, size_t old_next_pin_slot, gboolean forced)
 {
        ScannedObjectCounts counts;
        SgenObjectOperations *object_ops;
@@ -2025,7 +2036,7 @@ major_finish_collection (const char *reason, size_t old_next_pin_slot, gboolean
 
        g_assert (sgen_gray_object_queue_is_empty (&gray_queue));
 
-       sgen_memgov_major_collection_end (forced);
+       sgen_memgov_major_collection_end (forced, concurrent_collection_in_progress, reason, is_overflow);
        current_collection_generation = -1;
 
        memset (&counts, 0, sizeof (ScannedObjectCounts));
@@ -2047,7 +2058,7 @@ major_finish_collection (const char *reason, size_t old_next_pin_slot, gboolean
 }
 
 static gboolean
-major_do_collection (const char *reason, gboolean forced)
+major_do_collection (const char *reason, gboolean is_overflow, gboolean forced)
 {
        TV_DECLARE (time_start);
        TV_DECLARE (time_end);
@@ -2064,8 +2075,8 @@ major_do_collection (const char *reason, gboolean forced)
        /* world must be stopped already */
        TV_GETTIME (time_start);
 
-       major_start_collection (FALSE, &old_next_pin_slot);
-       major_finish_collection (reason, old_next_pin_slot, forced);
+       major_start_collection (reason, FALSE, &old_next_pin_slot);
+       major_finish_collection (reason, is_overflow, old_next_pin_slot, forced);
 
        TV_GETTIME (time_end);
        gc_stats.major_gc_time += TV_ELAPSED (time_start, time_end);
@@ -2096,7 +2107,7 @@ major_start_concurrent_collection (const char *reason)
        binary_protocol_concurrent_start ();
 
        // FIXME: store reason and pass it when finishing
-       major_start_collection (TRUE, NULL);
+       major_start_collection (reason, TRUE, NULL);
 
        gray_queue_redirect (&gray_queue);
 
@@ -2163,7 +2174,7 @@ major_finish_concurrent_collection (gboolean forced)
 
        current_collection_generation = GENERATION_OLD;
        sgen_cement_reset ();
-       major_finish_collection ("finishing", -1, forced);
+       major_finish_collection ("finishing", FALSE, -1, forced);
 
        if (whole_heap_check_before_collection)
                sgen_check_whole_heap (FALSE);
@@ -2223,11 +2234,8 @@ sgen_ensure_free_space (size_t size, int generation)
 void
 sgen_perform_collection (size_t requested_size, int generation_to_collect, const char *reason, gboolean wait_to_finish)
 {
-       TV_DECLARE (gc_start);
-       TV_DECLARE (gc_end);
        TV_DECLARE (gc_total_start);
        TV_DECLARE (gc_total_end);
-       GGTimingInfo infos [2];
        int overflow_generation_to_collect = -1;
        int oldest_generation_collected = generation_to_collect;
        const char *overflow_reason = NULL;
@@ -2237,8 +2245,6 @@ sgen_perform_collection (size_t requested_size, int generation_to_collect, const
 
        SGEN_ASSERT (0, generation_to_collect == GENERATION_NURSERY || generation_to_collect == GENERATION_OLD, "What generation is this?");
 
-       TV_GETTIME (gc_start);
-
        sgen_stop_world (generation_to_collect);
 
        TV_GETTIME (gc_total_start);
@@ -2249,7 +2255,7 @@ sgen_perform_collection (size_t requested_size, int generation_to_collect, const
                if (concurrent_collection_in_progress)
                        major_update_concurrent_collection ();
 
-               if (collect_nursery (NULL, FALSE) && !concurrent_collection_in_progress) {
+               if (collect_nursery (reason, FALSE, NULL, FALSE) && !concurrent_collection_in_progress) {
                        overflow_generation_to_collect = GENERATION_OLD;
                        overflow_reason = "Minor overflow";
                }
@@ -2259,24 +2265,15 @@ sgen_perform_collection (size_t requested_size, int generation_to_collect, const
        } else {
                SGEN_ASSERT (0, generation_to_collect == GENERATION_OLD, "We should have handled nursery collections above");
                if (major_collector.is_concurrent && !wait_to_finish) {
-                       collect_nursery (NULL, FALSE);
+                       collect_nursery ("Concurrent start", FALSE, NULL, FALSE);
                        major_start_concurrent_collection (reason);
                        oldest_generation_collected = GENERATION_NURSERY;
-               } else if (major_do_collection (reason, wait_to_finish)) {
+               } else if (major_do_collection (reason, FALSE, wait_to_finish)) {
                        overflow_generation_to_collect = GENERATION_NURSERY;
                        overflow_reason = "Excessive pinning";
                }
        }
 
-       TV_GETTIME (gc_end);
-
-       memset (infos, 0, sizeof (infos));
-       infos [0].generation = oldest_generation_collected;
-       infos [0].reason = reason;
-       infos [0].is_overflow = FALSE;
-       infos [1].generation = -1;
-       infos [0].total_time = SGEN_TV_ELAPSED (gc_start, gc_end);
-
        if (overflow_generation_to_collect != -1) {
                SGEN_ASSERT (0, !concurrent_collection_in_progress, "We don't yet support overflow collections with the concurrent collector");
 
@@ -2285,18 +2282,10 @@ sgen_perform_collection (size_t requested_size, int generation_to_collect, const
                 * or the nursery is fully pinned.
                 */
 
-               infos [1].generation = overflow_generation_to_collect;
-               infos [1].reason = overflow_reason;
-               infos [1].is_overflow = TRUE;
-               gc_start = gc_end;
-
                if (overflow_generation_to_collect == GENERATION_NURSERY)
-                       collect_nursery (NULL, FALSE);
+                       collect_nursery (overflow_reason, TRUE, NULL, FALSE);
                else
-                       major_do_collection (overflow_reason, wait_to_finish);
-
-               TV_GETTIME (gc_end);
-               infos [1].total_time = SGEN_TV_ELAPSED (gc_start, gc_end);
+                       major_do_collection (overflow_reason, TRUE, wait_to_finish);
 
                oldest_generation_collected = MAX (oldest_generation_collected, overflow_generation_to_collect);
        }
@@ -2316,7 +2305,7 @@ sgen_perform_collection (size_t requested_size, int generation_to_collect, const
        TV_GETTIME (gc_total_end);
        time_max = MAX (time_max, TV_ELAPSED (gc_total_start, gc_total_end));
 
-       sgen_restart_world (oldest_generation_collected, infos);
+       sgen_restart_world (oldest_generation_collected);
 }
 
 /*
@@ -2833,14 +2822,16 @@ sgen_gc_init (void)
                }
        }
 
-       if (!major_collector_opt || !strcmp (major_collector_opt, "marksweep")) {
-       use_marksweep_major:
+       if (!major_collector_opt) {
+       use_default_major:
+               DEFAULT_MAJOR_INIT (&major_collector);
+       } else if (!strcmp (major_collector_opt, "marksweep")) {
                sgen_marksweep_init (&major_collector);
-       } else if (!major_collector_opt || !strcmp (major_collector_opt, "marksweep-conc")) {
+       } else if (!strcmp (major_collector_opt, "marksweep-conc")) {
                sgen_marksweep_conc_init (&major_collector);
        } else {
-               sgen_env_var_error (MONO_GC_PARAMS_NAME, "Using `marksweep` instead.", "Unknown major collector `%s'.", major_collector_opt);
-               goto use_marksweep_major;
+               sgen_env_var_error (MONO_GC_PARAMS_NAME, "Using `" DEFAULT_MAJOR_NAME "` instead.", "Unknown major collector `%s'.", major_collector_opt);
+               goto use_default_major;
        }
 
        sgen_nursery_size = DEFAULT_NURSERY_SIZE;
@@ -3172,6 +3163,12 @@ sgen_major_collector_iterate_live_block_ranges (sgen_cardtable_block_callback ca
        major_collector.iterate_live_block_ranges (callback);
 }
 
+void
+sgen_major_collector_iterate_block_ranges (sgen_cardtable_block_callback callback)
+{
+       major_collector.iterate_block_ranges (callback);
+}
+
 SgenMajorCollector*
 sgen_get_major_collector (void)
 {
@@ -3214,9 +3211,10 @@ sgen_stop_world (int generation)
 
 /* LOCKING: assumes the GC lock is held */
 void
-sgen_restart_world (int generation, GGTimingInfo *timing)
+sgen_restart_world (int generation)
 {
        long long major_total = -1, major_marked = -1, los_total = -1, los_marked = -1;
+       gint64 stw_time;
 
        SGEN_ASSERT (0, world_is_stopped, "Why are we restarting a running world?");
 
@@ -3226,14 +3224,14 @@ sgen_restart_world (int generation, GGTimingInfo *timing)
 
        world_is_stopped = FALSE;
 
-       sgen_client_restart_world (generation, timing);
+       sgen_client_restart_world (generation, &stw_time);
 
        binary_protocol_world_restarted (generation, sgen_timestamp ());
 
        if (sgen_client_bridge_need_processing ())
                sgen_client_bridge_processing_finish (generation);
 
-       sgen_memgov_collection_end (generation, timing, timing ? 2 : 0);
+       sgen_memgov_collection_end (generation, stw_time);
 }
 
 gboolean
@@ -3248,7 +3246,7 @@ sgen_check_whole_heap_stw (void)
        sgen_stop_world (0);
        sgen_clear_nursery_fragments ();
        sgen_check_whole_heap (FALSE);
-       sgen_restart_world (0, NULL);
+       sgen_restart_world (0);
 }
 
 gint64
index d5e149f1bef25ba7a516909f363d1f35659d8558..3a86cc44f5f9bd077365a6525a26fc1f1735c373 100644 (file)
@@ -315,6 +315,7 @@ enum {
        INTERNAL_MEM_CARDTABLE_MOD_UNION,
        INTERNAL_MEM_BINARY_PROTOCOL,
        INTERNAL_MEM_TEMPORARY,
+       INTERNAL_MEM_LOG_ENTRY,
        INTERNAL_MEM_FIRST_CLIENT
 };
 
@@ -431,9 +432,9 @@ void* sgen_alloc_internal_dynamic (size_t size, int type, gboolean assert_on_fai
 void sgen_free_internal_dynamic (void *addr, size_t size, int type);
 
 void sgen_pin_stats_enable (void);
-void sgen_pin_stats_register_object (GCObject *obj, size_t size);
+void sgen_pin_stats_register_object (GCObject *obj, int generation);
 void sgen_pin_stats_register_global_remset (GCObject *obj);
-void sgen_pin_stats_print_class_stats (void);
+void sgen_pin_stats_report (void);
 
 void sgen_sort_addresses (void **array, size_t size);
 void sgen_add_to_global_remset (gpointer ptr, GCObject *obj);
@@ -570,6 +571,7 @@ sgen_update_reference (GCObject **p, GCObject *o, gboolean allow_null)
 
 typedef void (*sgen_cardtable_block_callback) (mword start, mword size);
 void sgen_major_collector_iterate_live_block_ranges (sgen_cardtable_block_callback callback);
+void sgen_major_collector_iterate_block_ranges (sgen_cardtable_block_callback callback);
 
 typedef enum {
        ITERATE_OBJECTS_SWEEP = 1,
@@ -624,6 +626,7 @@ struct _SgenMajorCollector {
        void (*pin_major_object) (GCObject *obj, SgenGrayQueue *queue);
        void (*scan_card_table) (CardTableScanType scan_type, ScanCopyContext ctx);
        void (*iterate_live_block_ranges) (sgen_cardtable_block_callback callback);
+       void (*iterate_block_ranges) (sgen_cardtable_block_callback callback);
        void (*update_cardtable_mod_union) (void);
        void (*init_to_space) (void);
        void (*sweep) (void);
@@ -811,16 +814,8 @@ size_t sgen_gc_get_total_heap_allocation (void);
 
 /* STW */
 
-typedef struct {
-       int generation;
-       const char *reason;
-       gboolean is_overflow;
-       gint64 total_time;
-       gint64 stw_time;
-} GGTimingInfo;
-
 void sgen_stop_world (int generation);
-void sgen_restart_world (int generation, GGTimingInfo *timing);
+void sgen_restart_world (int generation);
 gboolean sgen_is_world_stopped (void);
 
 gboolean sgen_set_allow_synchronous_major (gboolean flag);
index ad2bb6fe272a44cbf08ce80ac65da5dbd177a0c7..3c96a2f0106bfc78cf20bca223315e7bd3f8c63a 100644 (file)
@@ -117,7 +117,7 @@ COPY_OR_MARK_FUNCTION_NAME (GCObject **ptr, GCObject *obj, SgenGrayQueue *queue)
                MS_CALC_MARK_BIT (word, bit, obj);
                SGEN_ASSERT (9, !MS_MARK_BIT (block, word, bit), "object %p already marked", obj);
                MS_SET_MARK_BIT (block, word, bit);
-               binary_protocol_mark (obj, (gpointer)LOAD_VTABLE (obj), sgen_safe_object_get_size (obj));
+               binary_protocol_mark (obj, (gpointer)SGEN_LOAD_VTABLE (obj), sgen_safe_object_get_size (obj));
 
                return FALSE;
 #endif
index dad1b249af11f4c68e570f0c11d63d9fe960b8d9..f2c646b3952f678b513bd74b6f7667f110ca4a24 100644 (file)
@@ -194,16 +194,23 @@ static SgenArrayList allocated_blocks = SGEN_ARRAY_LIST_INIT (NULL, NULL, NULL,
 static void *empty_blocks = NULL;
 static size_t num_empty_blocks = 0;
 
+/*
+ * We can iterate the block list also while sweep is in progress but we
+ * need to account for blocks that will be checked for sweeping and even
+ * freed in the process.
+ */
 #define FOREACH_BLOCK_NO_LOCK(bl) {                                    \
        volatile gpointer *slot;                                                \
-       SGEN_ASSERT (0, !sweep_in_progress (), "Can't iterate blocks while sweep is in progress."); \
        SGEN_ARRAY_LIST_FOREACH_SLOT (&allocated_blocks, slot) {        \
-               (bl) = BLOCK_UNTAG (*slot);
+               (bl) = BLOCK_UNTAG (*slot);                             \
+               if (!(bl))                                              \
+                       continue;
 #define FOREACH_BLOCK_HAS_REFERENCES_NO_LOCK(bl,hr) {                  \
        volatile gpointer *slot;                                                \
-       SGEN_ASSERT (0, !sweep_in_progress (), "Can't iterate blocks while sweep is in progress."); \
        SGEN_ARRAY_LIST_FOREACH_SLOT (&allocated_blocks, slot) {        \
                (bl) = (MSBlockInfo *) (*slot);                 \
+               if (!(bl))                                              \
+                       continue;                                       \
                (hr) = BLOCK_IS_TAGGED_HAS_REFERENCES ((bl));           \
                (bl) = BLOCK_UNTAG ((bl));
 #define END_FOREACH_BLOCK_NO_LOCK      } SGEN_ARRAY_LIST_END_FOREACH_SLOT; }
@@ -549,16 +556,6 @@ ms_alloc_block (int size_index, gboolean pinned, gboolean has_references)
 
        add_free_block (free_blocks, size_index, info);
 
-       /*
-        * Adding to the allocated_blocks array is racy with the removal of nulls when
-        * sweeping. We wait for sweep to finish to avoid that.
-        *
-        * The memory barrier here and in `sweep_job_func()` are required because we need
-        * `allocated_blocks` synchronized between this and the sweep thread.
-        */
-       major_finish_sweep_checking ();
-       mono_memory_barrier ();
-
        sgen_array_list_add (&allocated_blocks, BLOCK_TAG (info), 0, FALSE);
 
        SGEN_ATOMIC_ADD_P (num_major_sections, 1);
@@ -1084,19 +1081,6 @@ major_block_is_evacuating (MSBlockInfo *block)
        return FALSE;
 }
 
-#define LOAD_VTABLE    SGEN_LOAD_VTABLE
-
-#define MS_MARK_OBJECT_AND_ENQUEUE_CHECKED(obj,desc,block,queue) do {  \
-               int __word, __bit;                                      \
-               MS_CALC_MARK_BIT (__word, __bit, (obj));                \
-               if (!MS_MARK_BIT ((block), __word, __bit) && MS_OBJ_ALLOCED ((obj), (block))) { \
-                       MS_SET_MARK_BIT ((block), __word, __bit);       \
-                       if (sgen_gc_descr_has_references (desc))                        \
-                               GRAY_OBJECT_ENQUEUE ((queue), (obj), (desc)); \
-                       binary_protocol_mark ((obj), (gpointer)LOAD_VTABLE ((obj)), sgen_safe_object_get_size ((obj))); \
-                       INC_NUM_MAJOR_OBJECTS_MARKED ();                \
-               }                                                       \
-       } while (0)
 #define MS_MARK_OBJECT_AND_ENQUEUE(obj,desc,block,queue) do {          \
                int __word, __bit;                                      \
                MS_CALC_MARK_BIT (__word, __bit, (obj));                \
@@ -1105,7 +1089,7 @@ major_block_is_evacuating (MSBlockInfo *block)
                        MS_SET_MARK_BIT ((block), __word, __bit);       \
                        if (sgen_gc_descr_has_references (desc))                        \
                                GRAY_OBJECT_ENQUEUE ((queue), (obj), (desc)); \
-                       binary_protocol_mark ((obj), (gpointer)LOAD_VTABLE ((obj)), sgen_safe_object_get_size ((obj))); \
+                       binary_protocol_mark ((obj), (gpointer)SGEN_LOAD_VTABLE ((obj)), sgen_safe_object_get_size ((obj))); \
                        INC_NUM_MAJOR_OBJECTS_MARKED ();                \
                }                                                       \
        } while (0)
@@ -1256,8 +1240,6 @@ mark_pinned_objects_in_block (MSBlockInfo *block, size_t first_entry, size_t las
        if (first_entry == last_entry)
                return;
 
-       block->has_pinned = TRUE;
-
        entry = sgen_pinning_get_entry (first_entry);
        end = sgen_pinning_get_entry (last_entry);
 
@@ -1268,9 +1250,19 @@ mark_pinned_objects_in_block (MSBlockInfo *block, size_t first_entry, size_t las
                if (index == last_index)
                        continue;
                obj = MS_BLOCK_OBJ (block, index);
-               MS_MARK_OBJECT_AND_ENQUEUE_CHECKED (obj, sgen_obj_get_descriptor (obj), block, queue);
+               if (!MS_OBJ_ALLOCED (obj, block))
+                       continue;
+               MS_MARK_OBJECT_AND_ENQUEUE (obj, sgen_obj_get_descriptor (obj), block, queue);
+               sgen_pin_stats_register_object (obj, GENERATION_OLD);
                last_index = index;
        }
+
+       /*
+        * There might have been potential pinning "pointers" into this block, but none of
+        * them pointed to occupied slots, in which case we don't have to pin the block.
+        */
+       if (last_index >= 0)
+               block->has_pinned = TRUE;
 }
 
 static inline void
@@ -1318,6 +1310,7 @@ set_block_state (MSBlockInfo *block, gint32 new_state, gint32 expected_state)
 {
        SGEN_ASSERT (6, block->state == expected_state, "Block state incorrect before set");
        block->state = new_state;
+       binary_protocol_block_set_state (block, MS_BLOCK_SIZE, expected_state, new_state);
 }
 
 /*
@@ -1431,6 +1424,8 @@ sweep_start (void)
                for (j = 0; j < num_block_obj_sizes; ++j)
                        free_blocks [j] = NULL;
        }
+
+       sgen_array_list_remove_nulls (&allocated_blocks);
 }
 
 static void sweep_finish (void);
@@ -1585,9 +1580,12 @@ static void
 sweep_blocks_job_func (void *thread_data_untyped, SgenThreadPoolJob *job)
 {
        volatile gpointer *slot;
+       MSBlockInfo *bl;
 
        SGEN_ARRAY_LIST_FOREACH_SLOT (&allocated_blocks, slot) {
-               sweep_block (BLOCK_UNTAG (*slot));
+               bl = BLOCK_UNTAG (*slot);
+               if (bl)
+                       sweep_block (bl);
        } SGEN_ARRAY_LIST_END_FOREACH_SLOT;
 
        mono_memory_write_barrier ();
@@ -1634,8 +1632,6 @@ sweep_job_func (void *thread_data_untyped, SgenThreadPoolJob *job)
                }
        }
 
-       sgen_array_list_remove_nulls (&allocated_blocks);
-
        /*
         * Concurrently sweep all the blocks to reduce workload during minor
         * pauses where we need certain blocks to be swept. At the start of
@@ -1714,7 +1710,7 @@ static int count_nonpinned_nonref;
 static void
 count_nonpinned_callback (GCObject *obj, size_t size, void *data)
 {
-       GCVTable vtable = LOAD_VTABLE (obj);
+       GCVTable vtable = SGEN_LOAD_VTABLE (obj);
 
        if (SGEN_VTABLE_HAS_REFERENCES (vtable))
                ++count_nonpinned_ref;
@@ -1725,7 +1721,7 @@ count_nonpinned_callback (GCObject *obj, size_t size, void *data)
 static void
 count_pinned_callback (GCObject *obj, size_t size, void *data)
 {
-       GCVTable vtable = LOAD_VTABLE (obj);
+       GCVTable vtable = SGEN_LOAD_VTABLE (obj);
 
        if (SGEN_VTABLE_HAS_REFERENCES (vtable))
                ++count_pinned_ref;
@@ -2224,6 +2220,18 @@ major_print_gc_param_usage (void)
 /*
  * This callback is used to clear cards, move cards to the shadow table and do counting.
  */
+static void
+major_iterate_block_ranges (sgen_cardtable_block_callback callback)
+{
+       MSBlockInfo *block;
+       gboolean has_references;
+
+       FOREACH_BLOCK_HAS_REFERENCES_NO_LOCK (block, has_references) {
+               if (has_references)
+                       callback ((mword)MS_BLOCK_FOR_BLOCK_INFO (block), MS_BLOCK_SIZE);
+       } END_FOREACH_BLOCK_NO_LOCK;
+}
+
 static void
 major_iterate_live_block_ranges (sgen_cardtable_block_callback callback)
 {
@@ -2423,12 +2431,15 @@ static void
 major_scan_card_table (CardTableScanType scan_type, ScanCopyContext ctx)
 {
        MSBlockInfo *block;
-       gboolean has_references;
+       gboolean has_references, was_sweeping, skip_scan;
 
        if (!concurrent_mark)
                g_assert (scan_type == CARDTABLE_SCAN_GLOBAL);
 
-       major_finish_sweep_checking ();
+       if (scan_type != CARDTABLE_SCAN_GLOBAL)
+               SGEN_ASSERT (0, !sweep_in_progress (), "Sweep should be finished when we scan mod union card table");
+       was_sweeping = sweep_in_progress ();
+
        binary_protocol_major_card_table_scan_start (sgen_timestamp (), scan_type & CARDTABLE_SCAN_MOD_UNION);
        FOREACH_BLOCK_HAS_REFERENCES_NO_LOCK (block, has_references) {
 #ifdef PREFETCH_CARDS
@@ -2446,8 +2457,36 @@ major_scan_card_table (CardTableScanType scan_type, ScanCopyContext ctx)
 
                if (!has_references)
                        continue;
+               skip_scan = FALSE;
 
-               scan_card_table_for_block (block, scan_type, ctx);
+               if (scan_type == CARDTABLE_SCAN_GLOBAL) {
+                       gpointer *card_start = (gpointer*) sgen_card_table_get_card_scan_address ((mword)MS_BLOCK_FOR_BLOCK_INFO (block));
+                       gboolean has_dirty_cards = FALSE;
+                       int i;
+                       for (i = 0; i < CARDS_PER_BLOCK / sizeof(gpointer); i++) {
+                               if (card_start [i]) {
+                                       has_dirty_cards = TRUE;
+                                       break;
+                               }
+                       }
+                       if (!has_dirty_cards) {
+                               skip_scan = TRUE;
+                       } else {
+                               /*
+                                * After the start of the concurrent collections, blocks change state
+                                * to marking. We should not sweep it in that case. We can't race with
+                                * sweep start since we are in a nursery collection. Also avoid CAS-ing
+                                */
+                               if (sweep_in_progress ()) {
+                                       skip_scan = !ensure_block_is_checked_for_sweeping (__index, TRUE, NULL);
+                               } else if (was_sweeping) {
+                                       /* Recheck in case sweep finished after dereferencing the slot */
+                                       skip_scan = *sgen_array_list_get_slot (&allocated_blocks, __index) == 0;
+                               }
+                       }
+               }
+               if (!skip_scan)
+                       scan_card_table_for_block (block, scan_type, ctx);
        } END_FOREACH_BLOCK_NO_LOCK;
        binary_protocol_major_card_table_scan_end (sgen_timestamp (), scan_type & CARDTABLE_SCAN_MOD_UNION);
 }
@@ -2584,6 +2623,7 @@ sgen_marksweep_init_internal (SgenMajorCollector *collector, gboolean is_concurr
        collector->pin_major_object = pin_major_object;
        collector->scan_card_table = major_scan_card_table;
        collector->iterate_live_block_ranges = major_iterate_live_block_ranges;
+       collector->iterate_block_ranges = major_iterate_block_ranges;
        if (is_concurrent) {
                collector->update_cardtable_mod_union = update_cardtable_mod_union;
                collector->get_cardtable_mod_union_for_reference = major_get_cardtable_mod_union_for_reference;
index 4648d8d761d444cbb8b6ec411d6fff6d3d2ad4da..e7de362976055377c0a67e6da9e4874d0c3b2db5 100644 (file)
@@ -25,6 +25,9 @@
 
 #define MIN_MINOR_COLLECTION_ALLOWANCE ((mword)(DEFAULT_NURSERY_SIZE * default_allowance_nursery_size_ratio))
 
+static SgenPointerQueue log_entries = SGEN_POINTER_QUEUE_INIT (INTERNAL_MEM_TEMPORARY);
+static MonoCoopMutex log_entries_mutex;
+
 mword total_promoted_size = 0;
 mword total_allocated_major = 0;
 static mword total_promoted_size_start;
@@ -42,6 +45,9 @@ static mword allocated_heap;
 static mword total_alloc = 0;
 static mword total_alloc_max = 0;
 
+static SGEN_TV_DECLARE(last_minor_start);
+static SGEN_TV_DECLARE(last_major_start);
+
 /* GC triggers. */
 
 static gboolean debug_print_allowance = FALSE;
@@ -164,11 +170,37 @@ void
 sgen_memgov_minor_collection_start (void)
 {
        total_promoted_size_start = total_promoted_size;
+       SGEN_TV_GETTIME (last_minor_start);
+}
+
+static void
+sgen_add_log_entry (SgenLogEntry *log_entry)
+{
+       mono_coop_mutex_lock (&log_entries_mutex);
+       sgen_pointer_queue_add (&log_entries, log_entry);
+       mono_coop_mutex_unlock (&log_entries_mutex);
 }
 
 void
-sgen_memgov_minor_collection_end (void)
+sgen_memgov_minor_collection_end (const char *reason, gboolean is_overflow)
 {
+       if (mono_trace_is_traced (G_LOG_LEVEL_INFO, MONO_TRACE_GC)) {
+               SgenLogEntry *log_entry = (SgenLogEntry*)sgen_alloc_internal (INTERNAL_MEM_LOG_ENTRY);
+               SGEN_TV_DECLARE (current_time);
+               SGEN_TV_GETTIME (current_time);
+
+               log_entry->type = SGEN_LOG_NURSERY;
+               log_entry->reason = reason;
+               log_entry->is_overflow = is_overflow;
+               log_entry->time = SGEN_TV_ELAPSED (last_minor_start, current_time);
+               log_entry->promoted_size = total_promoted_size - total_promoted_size_start;
+               log_entry->major_size = major_collector.get_num_major_sections () * major_collector.section_size;
+               log_entry->major_size_in_use = last_used_slots_size + total_allocated_major - total_allocated_major_end;
+               log_entry->los_size = los_memory_usage_total;
+               log_entry->los_size_in_use = los_memory_usage;
+
+               sgen_add_log_entry (log_entry);
+       }
 }
 
 void
@@ -185,16 +217,20 @@ sgen_memgov_major_pre_sweep (void)
 void
 sgen_memgov_major_post_sweep (mword used_slots_size)
 {
-       mword num_major_sections = major_collector.get_num_major_sections ();
+       if (mono_trace_is_traced (G_LOG_LEVEL_INFO, MONO_TRACE_GC)) {
+               SgenLogEntry *log_entry = (SgenLogEntry*)sgen_alloc_internal (INTERNAL_MEM_LOG_ENTRY);
+
+               log_entry->type = SGEN_LOG_MAJOR_SWEEP_FINISH;
+               log_entry->major_size = major_collector.get_num_major_sections () * major_collector.section_size;
+               log_entry->major_size_in_use = used_slots_size + total_allocated_major - total_allocated_major_end;
 
-       mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_GC, "GC_MAJOR_SWEEP: major size: %dK in use: %dK",
-               num_major_sections * major_collector.section_size / 1024,
-               (used_slots_size + total_allocated_major - total_allocated_major_end) / 1024);
+               sgen_add_log_entry (log_entry);
+       }
        last_used_slots_size = used_slots_size;
 }
 
 void
-sgen_memgov_major_collection_start (void)
+sgen_memgov_major_collection_start (gboolean concurrent, const char *reason)
 {
        need_calculate_minor_collection_allowance = TRUE;
        major_start_heap_size = get_heap_size ();
@@ -202,13 +238,40 @@ sgen_memgov_major_collection_start (void)
        if (debug_print_allowance) {
                SGEN_LOG (0, "Starting collection with heap size %ld bytes", (long)major_start_heap_size);
        }
+       if (concurrent && mono_trace_is_traced (G_LOG_LEVEL_INFO, MONO_TRACE_GC)) {
+               SgenLogEntry *log_entry = (SgenLogEntry*)sgen_alloc_internal (INTERNAL_MEM_LOG_ENTRY);
+
+               log_entry->type = SGEN_LOG_MAJOR_CONC_START;
+               log_entry->reason = reason;
+
+               sgen_add_log_entry (log_entry);
+       }
+       SGEN_TV_GETTIME (last_major_start);
 }
 
 void
-sgen_memgov_major_collection_end (gboolean forced)
+sgen_memgov_major_collection_end (gboolean forced, gboolean concurrent, const char *reason, gboolean is_overflow)
 {
-       last_collection_los_memory_usage = los_memory_usage;
+       if (mono_trace_is_traced (G_LOG_LEVEL_INFO, MONO_TRACE_GC)) {
+               SgenLogEntry *log_entry = (SgenLogEntry*)sgen_alloc_internal (INTERNAL_MEM_LOG_ENTRY);
+               SGEN_TV_DECLARE (current_time);
+               SGEN_TV_GETTIME (current_time);
+
+               if (concurrent) {
+                       log_entry->type = SGEN_LOG_MAJOR_CONC_FINISH;
+               } else {
+                       log_entry->type = SGEN_LOG_MAJOR_SERIAL;
+               }
+               log_entry->time = SGEN_TV_ELAPSED (last_major_start, current_time);
+               log_entry->reason = reason;
+               log_entry->is_overflow = is_overflow;
+               log_entry->los_size = los_memory_usage_total;
+               log_entry->los_size_in_use = los_memory_usage;
+
+               sgen_add_log_entry (log_entry);
+       }
 
+       last_collection_los_memory_usage = los_memory_usage;
        total_allocated_major_end = total_allocated_major;
        if (forced) {
                sgen_get_major_collector ()->finish_sweeping ();
@@ -221,13 +284,76 @@ sgen_memgov_collection_start (int generation)
 {
 }
 
+static void
+sgen_output_log_entry (SgenLogEntry *entry, gint64 stw_time, int generation)
+{
+       char full_timing_buff [1024];
+       full_timing_buff [0] = '\0';
+
+       if (!entry->is_overflow)
+                sprintf (full_timing_buff, "stw %.2fms", stw_time / 10000.0f);
+
+       switch (entry->type) {
+               case SGEN_LOG_NURSERY:
+                       mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_GC, "GC_MINOR%s: (%s) time %.2fms, %s promoted %dK major size: %dK in use: %dK los size: %dK in use: %dK",
+                               entry->is_overflow ? "_OVERFLOW" : "",
+                               entry->reason ? entry->reason : "",
+                               entry->time / 10000.0f,
+                               (generation == GENERATION_NURSERY) ? full_timing_buff : "",
+                               entry->promoted_size / 1024,
+                               entry->major_size / 1024,
+                               entry->major_size_in_use / 1024,
+                               entry->los_size / 1024,
+                               entry->los_size_in_use / 1024);
+                       break;
+               case SGEN_LOG_MAJOR_SERIAL:
+                       mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_GC, "GC_MAJOR%s: (%s) time %.2fms, %s los size: %dK in use: %dK",
+                               entry->is_overflow ? "_OVERFLOW" : "",
+                               entry->reason ? entry->reason : "",
+                               (int)entry->time / 10000.0f,
+                               full_timing_buff,
+                               entry->los_size / 1024,
+                               entry->los_size_in_use / 1024);
+                       break;
+               case SGEN_LOG_MAJOR_CONC_START:
+                       mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_GC, "GC_MAJOR_CONCURRENT_START: (%s)", entry->reason ? entry->reason : "");
+                       break;
+               case SGEN_LOG_MAJOR_CONC_FINISH:
+                       mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_GC, "GC_MAJOR_CONCURRENT_FINISH: (%s) time %.2fms, %s los size: %dK in use: %dK",
+                               entry->reason ? entry->reason : "",
+                               entry->time / 10000.0f,
+                               full_timing_buff,
+                               entry->los_size / 1024,
+                               entry->los_size_in_use / 1024);
+                       break;
+               case SGEN_LOG_MAJOR_SWEEP_FINISH:
+                       mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_GC, "GC_MAJOR_SWEEP: major size: %dK in use: %dK",
+                               entry->major_size / 1024,
+                               entry->major_size_in_use / 1024);
+                       break;
+               default:
+                       SGEN_ASSERT (0, FALSE, "Invalid log entry type");
+                       break;
+       }
+}
+
 void
-sgen_memgov_collection_end (int generation, GGTimingInfo* info, int info_count)
+sgen_memgov_collection_end (int generation, gint64 stw_time)
 {
-       int i;
-       for (i = 0; i < info_count; ++i) {
-               if (info[i].generation != -1)
-                       sgen_client_log_timing (&info [i], total_promoted_size - total_promoted_size_start, last_used_slots_size + total_allocated_major - total_allocated_major_end);
+       /*
+        * At this moment the world has been restarted which means we can log all pending entries
+        * without risking deadlocks.
+        */
+       if (mono_trace_is_traced (G_LOG_LEVEL_INFO, MONO_TRACE_GC)) {
+               size_t i;
+               SGEN_ASSERT (0, !sgen_is_world_stopped (), "We can't log if the world is stopped");
+               mono_coop_mutex_lock (&log_entries_mutex);
+               for (i = 0; i < log_entries.next_slot; i++) {
+                       sgen_output_log_entry (log_entries.data [i], stw_time, generation);
+                       sgen_free_internal (log_entries.data [i], INTERNAL_MEM_LOG_ENTRY);
+               }
+               sgen_pointer_queue_clear (&log_entries);
+               mono_coop_mutex_unlock (&log_entries_mutex);
        }
 }
 
@@ -353,6 +479,10 @@ sgen_memgov_init (size_t max_heap, size_t soft_limit, gboolean debug_allowance,
        mono_counters_register ("Memgov alloc", MONO_COUNTER_GC | MONO_COUNTER_WORD | MONO_COUNTER_BYTES | MONO_COUNTER_VARIABLE, &total_alloc);
        mono_counters_register ("Memgov max alloc", MONO_COUNTER_GC | MONO_COUNTER_WORD | MONO_COUNTER_BYTES | MONO_COUNTER_MONOTONIC, &total_alloc_max);
 
+       mono_coop_mutex_init (&log_entries_mutex);
+
+       sgen_register_fixed_internal_mem_type (INTERNAL_MEM_LOG_ENTRY, sizeof (SgenLogEntry));
+
        if (max_heap == 0)
                return;
 
index 5e33b042837a983ed97cbbe1cbe84b8ac24833e9..d669e4730d18a058c44a026e9ae7dd48446c71a5 100644 (file)
@@ -14,15 +14,15 @@ gboolean sgen_memgov_try_alloc_space (mword size, int space);
 
 /* GC trigger heuristics */
 void sgen_memgov_minor_collection_start (void);
-void sgen_memgov_minor_collection_end (void);
+void sgen_memgov_minor_collection_end (const char *reason, gboolean is_overflow);
 
 void sgen_memgov_major_pre_sweep (void);
 void sgen_memgov_major_post_sweep (mword used_slots_size);
-void sgen_memgov_major_collection_start (void);
-void sgen_memgov_major_collection_end (gboolean forced);
+void sgen_memgov_major_collection_start (gboolean concurrent, const char *reason);
+void sgen_memgov_major_collection_end (gboolean forced, gboolean concurrent, const char *reason, gboolean is_overflow);
 
 void sgen_memgov_collection_start (int generation);
-void sgen_memgov_collection_end (int generation, GGTimingInfo* info, int info_count);
+void sgen_memgov_collection_end (int generation, gint64 stw);
 
 gboolean sgen_need_major_collection (mword space_needed);
 
@@ -33,6 +33,26 @@ typedef enum {
        SGEN_ALLOC_ACTIVATE = 2
 } SgenAllocFlags;
 
+typedef enum {
+       SGEN_LOG_NURSERY,
+       SGEN_LOG_MAJOR_SERIAL,
+       SGEN_LOG_MAJOR_CONC_START,
+       SGEN_LOG_MAJOR_CONC_FINISH,
+       SGEN_LOG_MAJOR_SWEEP_FINISH
+} SgenLogType;
+
+typedef struct {
+       SgenLogType type;
+       const char *reason;
+       gboolean is_overflow;
+       gint64 time;
+       mword promoted_size;
+       mword major_size;
+       mword major_size_in_use;
+       mword los_size;
+       mword los_size_in_use;
+} SgenLogEntry;
+
 /* OS memory allocation */
 void* sgen_alloc_os_memory (size_t size, SgenAllocFlags flags, const char *assert_description);
 void* sgen_alloc_os_memory_aligned (size_t size, mword alignment, SgenAllocFlags flags, const char *assert_description);
index 26fcfd116af32464cb5d01bcb1a6573144c5082e..ab00a56d66dd26cca6eb188000031cde4e95d3f0 100644 (file)
@@ -37,6 +37,9 @@ static gboolean do_pin_stats = FALSE;
 static PinStatAddress *pin_stat_addresses = NULL;
 static size_t pinned_byte_counts [PIN_TYPE_MAX];
 
+static size_t pinned_bytes_in_generation [GENERATION_MAX];
+static int pinned_objects_in_generation [GENERATION_MAX];
+
 static SgenPointerQueue pinned_objects = SGEN_POINTER_QUEUE_INIT (INTERNAL_MEM_STATISTICS);
 
 static SgenHashTable pinned_class_hash_table = SGEN_HASH_TABLE_INIT (INTERNAL_MEM_STATISTICS, INTERNAL_MEM_STAT_PINNED_CLASS, sizeof (PinnedClassEntry), g_str_hash, g_str_equal);
@@ -66,6 +69,10 @@ sgen_pin_stats_reset (void)
        pin_stat_addresses = NULL;
        for (i = 0; i < PIN_TYPE_MAX; ++i)
                pinned_byte_counts [i] = 0;
+       for (i = 0; i < GENERATION_MAX; ++i) {
+               pinned_bytes_in_generation [i] = 0;
+               pinned_objects_in_generation [i] = 0;
+       }
        sgen_pointer_queue_clear (&pinned_objects);
        sgen_hash_table_clean (&pinned_class_hash_table);
        sgen_hash_table_clean (&global_remset_class_hash_table);
@@ -78,6 +85,8 @@ sgen_pin_stats_register_address (char *addr, int pin_type)
        PinStatAddress *node;
        int pin_type_bit = 1 << pin_type;
 
+       if (!do_pin_stats)
+               return;
        while (*node_ptr) {
                node = *node_ptr;
                if (addr == node->addr) {
@@ -153,13 +162,23 @@ register_vtable (GCVTable vtable, int pin_types)
 }
 
 void
-sgen_pin_stats_register_object (GCObject *obj, size_t size)
+sgen_pin_stats_register_object (GCObject *obj, int generation)
 {
        int pin_types = 0;
+       size_t size = 0;
+
+       if (binary_protocol_is_enabled ()) {
+               size = sgen_safe_object_get_size (obj);
+               pinned_bytes_in_generation [generation] += size;
+               ++pinned_objects_in_generation [generation];
+       }
 
        if (!do_pin_stats)
                return;
 
+       if (!size)
+               size = sgen_safe_object_get_size (obj);
+
        pin_stats_count_object_from_tree (obj, size, pin_stat_addresses, &pin_types);
        sgen_pointer_queue_add (&pinned_objects, obj);
 
@@ -183,12 +202,15 @@ sgen_pin_stats_register_global_remset (GCObject *obj)
 }
 
 void
-sgen_pin_stats_print_class_stats (void)
+sgen_pin_stats_report (void)
 {
        char *name;
        PinnedClassEntry *pinned_entry;
        GlobalRemsetClassEntry *remset_entry;
 
+       binary_protocol_pin_stats (pinned_objects_in_generation [GENERATION_NURSERY], pinned_bytes_in_generation [GENERATION_NURSERY],
+                       pinned_objects_in_generation [GENERATION_OLD], pinned_bytes_in_generation [GENERATION_OLD]);
+
        if (!do_pin_stats)
                return;
 
index 41b8b83829183ecfcefe33f0a761c877c8b25f2c..e6f1f775c917bbfcece04939dda8a6d4d0e3e3a5 100644 (file)
@@ -449,6 +449,13 @@ MATCH_INDEX (BINARY_PROTOCOL_MATCH)
 IS_VTABLE_MATCH (FALSE)
 END_PROTOCOL_ENTRY_FLUSH
 
+BEGIN_PROTOCOL_ENTRY4 (binary_protocol_pin_stats, TYPE_INT, objects_pinned_in_nursery, TYPE_SIZE, bytes_pinned_in_nursery, TYPE_INT, objects_pinned_in_major, TYPE_SIZE, bytes_pinned_in_major)
+DEFAULT_PRINT ()
+IS_ALWAYS_MATCH (TRUE)
+MATCH_INDEX (BINARY_PROTOCOL_MATCH)
+IS_VTABLE_MATCH (FALSE)
+END_PROTOCOL_ENTRY
+
 #undef BEGIN_PROTOCOL_ENTRY0
 #undef BEGIN_PROTOCOL_ENTRY1
 #undef BEGIN_PROTOCOL_ENTRY2
index 0e77588044ccb5e57630f1bcd699bb740ac10c9c..2e59b6359a4b1aea6f4e650998ae1590e4318d50 100644 (file)
@@ -19,6 +19,7 @@
 #include "sgen-thread-pool.h"
 #include "sgen-client.h"
 #include "mono/utils/mono-membar.h"
+#include "mono/utils/mono-proclib.h"
 
 #include <errno.h>
 #include <string.h>
@@ -73,9 +74,16 @@ free_filename (char *filename)
 }
 
 static void
-binary_protocol_open_file (void)
+binary_protocol_open_file (gboolean assert_on_failure)
 {
        char *filename;
+#ifdef F_SETLK
+       struct flock lock;
+       lock.l_type = F_WRLCK;
+       lock.l_whence = SEEK_SET;
+       lock.l_start = 0;
+       lock.l_len = 0;
+#endif
 
        if (file_size_limit > 0)
                filename = filename_for_index (current_file_index);
@@ -83,12 +91,24 @@ binary_protocol_open_file (void)
                filename = filename_or_prefix;
 
        do {
-               binary_protocol_file = open (filename, O_CREAT|O_WRONLY|O_TRUNC, 0644);
-               if (binary_protocol_file == -1 && errno != EINTR)
-                       break; /* Failed */
+               binary_protocol_file = open (filename, O_CREAT | O_WRONLY, 0644);
+               if (binary_protocol_file == -1) {
+                       if (errno != EINTR)
+                               break; /* Failed */
+#ifdef F_SETLK
+               } else if (fcntl (binary_protocol_file, F_SETLK, &lock) == -1) {
+                       /* The lock for the file is already taken. Fail */
+                       close (binary_protocol_file);
+                       binary_protocol_file = -1;
+                       break;
+#endif
+               } else {
+                       /* We have acquired the lock. Truncate the file */
+                       ftruncate (binary_protocol_file, 0);
+               }
        } while (binary_protocol_file == -1);
 
-       if (binary_protocol_file == -1)
+       if (binary_protocol_file == -1 && assert_on_failure)
                g_error ("sgen binary protocol: failed to open file");
 
        if (file_size_limit > 0)
@@ -100,12 +120,23 @@ void
 binary_protocol_init (const char *filename, long long limit)
 {
 #ifdef HAVE_UNISTD_H
-       filename_or_prefix = (char *)sgen_alloc_internal_dynamic (strlen (filename) + 1, INTERNAL_MEM_BINARY_PROTOCOL, TRUE);
-       strcpy (filename_or_prefix, filename);
-
        file_size_limit = limit;
 
-       binary_protocol_open_file ();
+       /* Original name length + . + pid length in hex + null terminator */
+       filename_or_prefix = g_strdup_printf ("%s", filename);
+       binary_protocol_open_file (FALSE);
+
+       if (binary_protocol_file == -1) {
+               /* Another process owns the file, try adding the pid suffix to the filename */
+               gint32 pid = mono_process_current_pid ();
+               g_free (filename_or_prefix);
+               filename_or_prefix = g_strdup_printf ("%s.%x", filename, pid);
+               binary_protocol_open_file (TRUE);
+       }
+
+       /* If we have a file size limit, we might need to open additional files */
+       if (file_size_limit == 0)
+               g_free (filename_or_prefix);
 
        binary_protocol_header (PROTOCOL_HEADER_CHECK, PROTOCOL_HEADER_VERSION, SIZEOF_VOID_P, G_BYTE_ORDER == G_LITTLE_ENDIAN);
 #else
@@ -220,7 +251,7 @@ binary_protocol_check_file_overflow (void)
        ++current_file_index;
        current_file_size = 0;
 
-       binary_protocol_open_file ();
+       binary_protocol_open_file (TRUE);
 }
 #endif
 
diff --git a/msvc/scripts/Microsoft.Build.pre b/msvc/scripts/Microsoft.Build.pre
new file mode 100644 (file)
index 0000000..7d981d5
--- /dev/null
@@ -0,0 +1 @@
+$(ProjectDir)\..\..\jay\jay.exe -ct &lt; $(ProjectDir)\..\..\jay\skeleton.cs $(ProjectDir)\Microsoft.Build.Internal\ExpressionParser.jay > $(ProjectDir)\Microsoft.Build.Internal\ExpressionParser.cs
diff --git a/msvc/scripts/RabbitMQ.Client.Apigen.post b/msvc/scripts/RabbitMQ.Client.Apigen.post
new file mode 100644 (file)
index 0000000..675c09b
--- /dev/null
@@ -0,0 +1,6 @@
+@MONO@ RabbitMQ.Client.Apigen.exe /n:v0_9 "/apiName:AMQP_0_9" $(ProjectDir)..\..\docs\specs\amqp0-9.stripped.xml $(ProjectDir)..\..\docs\specs\net_4_x-api-0-9.cs
+@MONO@ RabbitMQ.Client.Apigen.exe /n:v0_8 "/apiName:AMQP_0_8" $(ProjectDir)..\..\docs\specs\amqp0-8.stripped.xml $(ProjectDir)..\..\docs\specs\net_4_x-api-0-8.cs
+@MONO@ RabbitMQ.Client.Apigen.exe /n:v0_8qpid "/apiName:AMQP_0_8_QPID" $(ProjectDir)..\..\docs\specs\qpid-amqp.0-8.stripped.xml $(ProjectDir)..\..\docs\specs\net_4_x-api-qpid-0-8.cs
+
+
+
diff --git a/msvc/scripts/System.ComponentModel.Composition.pre b/msvc/scripts/System.ComponentModel.Composition.pre
new file mode 100644 (file)
index 0000000..70fe6d0
--- /dev/null
@@ -0,0 +1 @@
+resgen $(ProjectDir)\src\ComponentModel\Strings.resx $(ProjectDir)\Microsoft.Internal.Strings.resx
\ No newline at end of file
diff --git a/msvc/scripts/System.Data.Services.Client.pre b/msvc/scripts/System.Data.Services.Client.pre
new file mode 100644 (file)
index 0000000..a8709db
--- /dev/null
@@ -0,0 +1 @@
+resgen $(ProjectDir)\Client\System.Data.Services.Client.txt $(ProjectDir)\Client\System.Data.Services.Client.resx
\ No newline at end of file
diff --git a/msvc/scripts/System.Json.Microsoft.pre b/msvc/scripts/System.Json.Microsoft.pre
new file mode 100644 (file)
index 0000000..3938879
--- /dev/null
@@ -0,0 +1 @@
+cp $(ProjectDir)\System.Json\Properties\Resources.resx System.Json.Properties.Resources.resx
\ No newline at end of file
diff --git a/msvc/scripts/System.Net.Http.Formatting.pre b/msvc/scripts/System.Net.Http.Formatting.pre
new file mode 100644 (file)
index 0000000..0324a81
--- /dev/null
@@ -0,0 +1,2 @@
+@COPY@ $(ProjectDir)/../../../external/aspnetwebstack/src/Common/CommonWebApiResources.resx $(ProjectDir)/System.Net.Http.Properties.CommonWebApiResources.resx
+@COPY@ $(ProjectDir)/../../../external/aspnetwebstack/src/System.Net.Http.Formatting/Properties/Resources.resx $(ProjectDir)/System.Net.Http.Properties.Resources.resx
diff --git a/msvc/scripts/System.Web.Razor.pre b/msvc/scripts/System.Web.Razor.pre
new file mode 100644 (file)
index 0000000..a33b050
--- /dev/null
@@ -0,0 +1,2 @@
+resgen $(ProjectDir)\..\..\..\external\aspnetwebstack\src\CommonResources.resx $(ProjectDir)\System.Web.Razor.Common.CommonResources.resx
+resgen $(ProjectDir)\..\..\..\external\aspnetwebstack\src\System.Web.Razor\Resources\RazorResources.resx $(ProjectDir)\System.Web.Razor.Resources.RazorResources.resx
\ No newline at end of file
diff --git a/msvc/scripts/System.Web.pre b/msvc/scripts/System.Web.pre
new file mode 100644 (file)
index 0000000..c071bf4
--- /dev/null
@@ -0,0 +1 @@
+@MONO@ $(ProjectDir)\..\lib\net_4_x\culevel.exe -o $(ProjectDir)\System.Web\UplevelHelper.cs $(ProjectDir)\UplevelHelperDefinitions.xml
diff --git a/msvc/scripts/TODO.md b/msvc/scripts/TODO.md
new file mode 100644 (file)
index 0000000..7d195a3
--- /dev/null
@@ -0,0 +1,11 @@
+These are the tasks that are pending in the MSVC scripts to fully roll it out:
+
+[ ] Validate that all generated assemblies are identical
+[ ] Add support for listing CLEAN_FILES in the `csproj` file
+[ ] Adding an "install" target
+[ ] On Windows- have a solution that builds both runtime and libraries all in one
+[ ] Add the other profiles (mobile, iOS, etc)
+[ ] Generate the dependency files
+[ ] Eliminate the need for "build-libs.sh/build-libs.bat" at the toplevel with proper MSBuild idioms
+[ ] Integrate the "update-solution-files" with each build, so we auto-update the files on commits
+[ ] Make it work with MSBuild instead of xbuild
index ccaa3b3149c9059691926e96e6a17433c2ee84b8..d442697c3ce92389f3396c4cd502b66b0bc57126 100644 (file)
@@ -698,25 +698,8 @@ class MsbuildGenerator {
                // Prebuild code, might be in inputs, check:
                //  inputs/LIBRARY.pre
                //
-               string prebuild = Load (library + ".pre");
-               string prebuild_windows, prebuild_unix;
-               
-               int q = library.IndexOf ("-");
-               if (q != -1)
-                       prebuild = prebuild + Load (library.Substring (0, q) + ".pre");
-               
-               if (prebuild.IndexOf ("@MONO@") != -1){
-                       prebuild_unix = prebuild.Replace ("@MONO@", "mono").Replace ("@CAT@", "cat");
-                       prebuild_windows = prebuild.Replace ("@MONO@", "").Replace ("@CAT@", "type");
-               } else {
-                       prebuild_unix = prebuild.Replace ("jay.exe", "jay");
-                       prebuild_windows = prebuild;
-               }
-               const string condition_unix    = "Condition=\" '$(OS)' != 'Windows_NT' \"";
-               const string condition_windows = "Condition=\" '$(OS)' == 'Windows_NT' \"";
-               prebuild =
-                       "    <PreBuildEvent " + condition_unix + ">\n" + prebuild_unix + "\n    </PreBuildEvent>" + NewLine +
-                       "    <PreBuildEvent " + condition_windows + ">" + NewLine + prebuild_windows + NewLine + "    </PreBuildEvent>" + NewLine;
+               string prebuild = GenerateStep (library, ".pre", "PreBuildEvent");
+               string postbuild = GenerateStep (library, ".post", "PostBuildEvent");
 
                var all_args = new Queue<string []> ();
                all_args.Enqueue (flags.Split ());
@@ -812,7 +795,15 @@ class MsbuildGenerator {
                                var source = dk.Key;
                                if (source.EndsWith (".resources"))
                                        source = source.Replace (".resources", ".resx");
-                               Console.WriteLine ("Got {0} -> {1}", dk.Key, source);
+
+                               // try to find a pre-built resource, and use that instead of trying to build it
+                               if (source.EndsWith (".resx")) {
+                                       var probe_prebuilt = Path.Combine (base_dir, source.Replace (".resx", ".resources.prebuilt"));
+                                       if (File.Exists (probe_prebuilt)) {
+                                               
+                                               source = GetRelativePath (base_dir + "/", probe_prebuilt);
+                                       }
+                               }
                                resources.AppendFormat ("    <EmbeddedResource Include=\"{0}\">" + NewLine, source);
                                resources.AppendFormat ("      <LogicalName>{0}</LogicalName>" + NewLine, dk.Value);
                                resources.AppendFormat ("    </EmbeddedResource>" + NewLine);
@@ -878,15 +869,6 @@ class MsbuildGenerator {
                        build_output_dir = Path.GetDirectoryName (LibraryOutput);
                else
                        build_output_dir = "bin\\Debug\\" + library;
-               
-
-               string postbuild_unix = string.Empty;
-               string postbuild_windows = string.Empty;
-
-               var postbuild =  
-                       "    <PostBuildEvent " + condition_unix + ">" + NewLine + postbuild_unix + NewLine + "    </PostBuildEvent>" + NewLine +
-                       "    <PostBuildEvent " + condition_windows + ">" + NewLine + postbuild_windows + NewLine + "    </PostBuildEvent>";
-                       
 
                bool basic_or_build = (library.Contains ("-basic") || library.Contains ("-build"));
 
@@ -924,8 +906,8 @@ class MsbuildGenerator {
                        Replace ("@DEBUGTYPE@", want_debugging_support ? "full" : "pdbonly").
                        Replace ("@REFERENCES@", refs.ToString ()).
                        Replace ("@PREBUILD@", prebuild).
-                       Replace ("@STARTUPOBJECT@", main == null ? "" : $"<StartupObject>{main}</StartupObject>").
                        Replace ("@POSTBUILD@", postbuild).
+                       Replace ("@STARTUPOBJECT@", main == null ? "" : $"<StartupObject>{main}</StartupObject>").
                        //Replace ("@ADDITIONALLIBPATHS@", String.Format ("<AdditionalLibPaths>{0}</AdditionalLibPaths>", string.Join (",", libs.ToArray ()))).
                        Replace ("@ADDITIONALLIBPATHS@", String.Empty).
                        Replace ("@RESOURCES@", resources.ToString ()).
@@ -940,6 +922,34 @@ class MsbuildGenerator {
                return Csproj;
        }
 
+       string GenerateStep (string library, string suffix, string eventKey)
+       {
+               string target = Load (library + suffix);
+               string target_windows, target_unix;
+
+               int q = library.IndexOf ("-");
+               if (q != -1)
+                       target = target + Load (library.Substring (0, q) + suffix);
+
+               if (target.IndexOf ("@MONO@") != -1){
+                       target_unix = target.Replace ("@MONO@", "mono").Replace ("@CAT@", "cat");
+                       target_windows = target.Replace ("@MONO@", "").Replace ("@CAT@", "type");
+               } else {
+                       target_unix = target.Replace ("jay.exe", "jay");
+                       target_windows = target;
+               }
+               target_unix = target_unix.Replace ("@COPY@", "cp");
+               target_windows = target_unix.Replace ("@COPY@", "copy");
+
+               target_unix = target_unix.Replace ("\r", "");
+               const string condition_unix    = "Condition=\" '$(OS)' != 'Windows_NT' \"";
+               const string condition_windows = "Condition=\" '$(OS)' == 'Windows_NT' \"";
+               var result =
+                       $"    <{eventKey} {condition_unix}>\n{target_unix}\n    </{eventKey}>{NewLine}" +
+                       $"    <{eventKey} {condition_windows}>{NewLine}{target_windows}{NewLine}    </{eventKey}>";
+               return result;
+       }
+       
        void AddProjectReference (StringBuilder refs, VsCsproj result, MsbuildGenerator match, string r, string alias)
        {
                refs.AppendFormat ("    <ProjectReference Include=\"{0}\">{1}", GetRelativePath (result.csProjFilename, match.CsprojFilename), NewLine);
diff --git a/msvc/scripts/ilasm.pre b/msvc/scripts/ilasm.pre
new file mode 100644 (file)
index 0000000..fec25b7
--- /dev/null
@@ -0,0 +1,2 @@
+$(ProjectDir)\..\jay\jay.exe -ct &lt; $(ProjectDir)\..\jay\skeleton.cs $(ProjectDir)\parser\ILParser.jay > $(ProjectDir)\ILParser.cs
+
index 0c19d3a7dc627f5bc4ff09e30aafa38670e73ff7..2126ebd7731d83ee32adb2f8868648e4874e7468 100644 (file)
@@ -1 +1,2 @@
 $(ProjectDir)\..\jay\jay.exe -ct &lt; $(ProjectDir)\..\jay\skeleton.cs $(ProjectDir)\cs-parser.jay > $(ProjectDir)\cs-parser.cs\r
+\r
diff --git a/msvc/scripts/monodoc.pre b/msvc/scripts/monodoc.pre
new file mode 100644 (file)
index 0000000..f1b34e1
--- /dev/null
@@ -0,0 +1,2 @@
+$(ProjectDir)\..\..\jay\jay.exe -ct &lt; $(ProjectDir)\..\..\jay\skeleton.cs $(ProjectDir)\Monodoc.Ecma\EcmaUrlParser.jay > $(ProjectDir)\Monodoc.Ecma\EcmaUrlParser.cs
+
index 77ecf6866502b1a3ca8022ecb976712d13e2362d..60128ee6fdb2de331048390f253682a3021fbcc5 100644 (file)
@@ -32,7 +32,7 @@
     </project>
     <project dir="class/System" library="System-basic">
       <boot>true</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:BOOTSTRAP_BASIC -nowarn:1699 -d:DISABLE_CAS_USE -lib:./../../class/lib/basic -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -d:CONFIGURATION_DEP -r:./../../class/lib/basic/System.Xml.dll -r:./../../class/lib/basic/System.Configuration.dll -r:MonoSecurity=./../../class/lib/basic/Mono.Security.dll</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:BOOTSTRAP_BASIC -nowarn:1699 -d:DISABLE_CAS_USE -lib:./../../class/lib/basic -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -d:CONFIGURATION_DEP -r:./../../class/lib/basic/System.Xml.dll -r:./../../class/lib/basic/System.Configuration.dll -r:MonoSecurity=./../../class/lib/basic/Mono.Security.dll</flags>
       <output>System.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/basic/System.dll</library_output>
@@ -82,7 +82,7 @@
     </project>
     <project dir="class/System" library="System-build">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/build/mscorlib.dll -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -d:CONFIGURATION_DEP -r:./../../class/lib/build/System.Xml.dll -r:./../../class/lib/build/System.Configuration.dll -r:MonoSecurity=./../../class/lib/build/Mono.Security.dll</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/build/mscorlib.dll -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -d:CONFIGURATION_DEP -r:./../../class/lib/build/System.Xml.dll -r:./../../class/lib/build/System.Configuration.dll -r:MonoSecurity=./../../class/lib/build/Mono.Security.dll</flags>
       <output>System.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/build/System.dll</library_output>
@@ -92,7 +92,7 @@
     </project>
     <project dir="class/System" library="System-bare-build">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/build/mscorlib.dll -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/build/mscorlib.dll -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav</flags>
       <output>System.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/build/bare/System.dll</library_output>
     </project>
     <project dir="class/System" library="System-secxml-build">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/build/mscorlib.dll -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -r:./../../class/lib/build/bare/System.Xml.dll -r:MonoSecurity=./../../class/lib/build/Mono.Security.dll</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/build/mscorlib.dll -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -r:./../../class/lib/build/bare/System.Xml.dll -r:MonoSecurity=./../../class/lib/build/Mono.Security.dll</flags>
       <output>System.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/build/secxml/System.dll</library_output>
     </project>
     <project dir="class/System" library="System-net_4_x">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -d:CONFIGURATION_DEP -r:./../../class/lib/net_4_x/System.Xml.dll -r:./../../class/lib/net_4_x/System.Configuration.dll -r:MonoSecurity=./../../class/lib/net_4_x/Mono.Security.dll</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -d:CONFIGURATION_DEP -r:./../../class/lib/net_4_x/System.Xml.dll -r:./../../class/lib/net_4_x/System.Configuration.dll -r:MonoSecurity=./../../class/lib/net_4_x/Mono.Security.dll</flags>
       <output>System.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/net_4_x/System.dll</library_output>
     </project>
     <project dir="class/System" library="System-tests-net_4_x">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_x/secxml/System.dll -nowarn:618,672,219,67,169,612 -resource:Test/System/test-uri-props.txt,test-uri-props.txt -resource:Test/System/test-uri-props-manual.txt,test-uri-props-manual.txt -resource:Test/System/test-uri-relative-props.txt,test-uri-relative-props.txt -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_x/secxml/System.dll -nowarn:618,672,219,67,169,612 -resource:Test/System/test-uri-props.txt,test-uri-props.txt -resource:Test/System/test-uri-props-manual.txt,test-uri-props-manual.txt -resource:Test/System/test-uri-relative-props.txt,test-uri-relative-props.txt -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS</flags>
       <output>net_4_x_System_test.dll</output>
       <built_sources></built_sources>
       <library_output>net_4_x_System_test.dll</library_output>
     </project>
     <project dir="class/System" library="System-bare-net_4_x">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav</flags>
       <output>System.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/net_4_x/bare/System.dll</library_output>
     </project>
     <project dir="class/System" library="System-tests-net_4_x">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_x/secxml/System.dll -nowarn:618,672,219,67,169,612 -resource:Test/System/test-uri-props.txt,test-uri-props.txt -resource:Test/System/test-uri-props-manual.txt,test-uri-props-manual.txt -resource:Test/System/test-uri-relative-props.txt,test-uri-relative-props.txt -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_x/secxml/System.dll -nowarn:618,672,219,67,169,612 -resource:Test/System/test-uri-props.txt,test-uri-props.txt -resource:Test/System/test-uri-props-manual.txt,test-uri-props-manual.txt -resource:Test/System/test-uri-relative-props.txt,test-uri-relative-props.txt -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS</flags>
       <output>net_4_x_System_test.dll</output>
       <built_sources></built_sources>
       <library_output>net_4_x_System_test.dll</library_output>
     </project>
     <project dir="class/System" library="System-secxml-net_4_x">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -r:./../../class/lib/net_4_x/bare/System.Xml.dll -r:MonoSecurity=./../../class/lib/net_4_x/Mono.Security.dll</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -r:./../../class/lib/net_4_x/bare/System.Xml.dll -r:MonoSecurity=./../../class/lib/net_4_x/Mono.Security.dll</flags>
       <output>System.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/net_4_x/secxml/System.dll</library_output>
     </project>
     <project dir="class/System" library="System-tests-net_4_x">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_x/secxml/System.dll -nowarn:618,672,219,67,169,612 -resource:Test/System/test-uri-props.txt,test-uri-props.txt -resource:Test/System/test-uri-props-manual.txt,test-uri-props-manual.txt -resource:Test/System/test-uri-relative-props.txt,test-uri-relative-props.txt -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_x/secxml/System.dll -nowarn:618,672,219,67,169,612 -resource:Test/System/test-uri-props.txt,test-uri-props.txt -resource:Test/System/test-uri-props-manual.txt,test-uri-props-manual.txt -resource:Test/System/test-uri-relative-props.txt,test-uri-relative-props.txt -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS</flags>
       <output>net_4_x_System_test.dll</output>
       <built_sources></built_sources>
       <library_output>net_4_x_System_test.dll</library_output>
     </project>
     <project dir="class/System.Json.Microsoft" library="System.Json.Microsoft-net_4_x">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize /noconfig /d:ASPNETMVC -keyfile:../winfx.pub -delaysign /resource:System.Json.Properties.Resources.resources -d:FEATURE_DYNAMIC -r:./../../class/lib/net_4_x/System.dll -r:./../../class/lib/net_4_x/System.Xml.dll -r:./../../class/lib/net_4_x/System.Core.dll -r:./../../class/lib/net_4_x/System.Runtime.Serialization.dll -r:./../../class/lib/net_4_x/Microsoft.CSharp.dll</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize /noconfig /d:ASPNETMVC -keyfile:../winfx.pub -delaysign /resource:System.Json/Properties/Resources.resources,System.Json.Properties.Resources.resources -d:FEATURE_DYNAMIC -r:./../../class/lib/net_4_x/System.dll -r:./../../class/lib/net_4_x/System.Xml.dll -r:./../../class/lib/net_4_x/System.Core.dll -r:./../../class/lib/net_4_x/System.Runtime.Serialization.dll -r:./../../class/lib/net_4_x/Microsoft.CSharp.dll</flags>
       <output>System.Json.Microsoft.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/net_4_x/System.Json.Microsoft.dll</library_output>
     </project>
     <project dir="class/System.Json.Microsoft" library="System.Json.Microsoft-tests-net_4_x">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_x/System.Json.Microsoft.dll /d:ASPNETMVC -keyfile:../winfx.pub -delaysign /resource:System.Json.Properties.Resources.resources -d:FEATURE_DYNAMIC -r:./../../class/lib/net_4_x/System.dll -r:./../../class/lib/net_4_x/System.Xml.dll -r:./../../class/lib/net_4_x/System.Core.dll -r:./../../class/lib/net_4_x/System.Runtime.Serialization.dll -r:./../../class/lib/net_4_x/Microsoft.CSharp.dll</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_x/System.Json.Microsoft.dll /d:ASPNETMVC -keyfile:../winfx.pub -delaysign /resource:System.Json/Properties/Resources.resources,System.Json.Properties.Resources.resources -d:FEATURE_DYNAMIC -r:./../../class/lib/net_4_x/System.dll -r:./../../class/lib/net_4_x/System.Xml.dll -r:./../../class/lib/net_4_x/System.Core.dll -r:./../../class/lib/net_4_x/System.Runtime.Serialization.dll -r:./../../class/lib/net_4_x/Microsoft.CSharp.dll</flags>
       <output>net_4_x_System.Json.Microsoft_test.dll</output>
       <built_sources></built_sources>
       <library_output>net_4_x_System.Json.Microsoft_test.dll</library_output>
       <boot></boot>
       <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize /noconfig -r:System.Xml -r:System</flags>
       <output>mconfig.exe</output>
-      <built_sources>Mono.MonoConfig/consts.cs</built_sources>
+      <built_sources></built_sources>
       <library_output>./../../class/lib/net_4_x/mconfig.exe</library_output>
       <fx_version>4.5</fx_version>
       <profile>net_4_x</profile>
       <profile>xbuild_14</profile>
       <response>xbuild.exe.sources</response>
     </project>
+    <project dir="class/System.Json.Microsoft" library="System.Json.Microsoft-net_4_x">
+      <boot>false</boot>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize /noconfig /d:ASPNETMVC -keyfile:../winfx.pub -delaysign /resource:System.Json/Properties/Resources.resources,System.Json.Properties.Resources.resources -d:FEATURE_DYNAMIC -r:./../../class/lib/net_4_x/System.dll -r:./../../class/lib/net_4_x/System.Xml.dll -r:./../../class/lib/net_4_x/System.Core.dll -r:./../../class/lib/net_4_x/System.Runtime.Serialization.dll -r:./../../class/lib/net_4_x/Microsoft.CSharp.dll</flags>
+      <output>System.Json.Microsoft.dll</output>
+      <built_sources></built_sources>
+      <library_output>./../../class/lib/net_4_x/System.Json.Microsoft.dll</library_output>
+      <fx_version>4.5</fx_version>
+      <profile>net_4_x</profile>
+      <response>System.Json.Microsoft.dll.sources</response>
+    </project>
+    <project dir="class/System.Json.Microsoft" library="System.Json.Microsoft-tests-net_4_x">
+      <boot>false</boot>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_x/System.Json.Microsoft.dll /d:ASPNETMVC -keyfile:../winfx.pub -delaysign /resource:System.Json/Properties/Resources.resources,System.Json.Properties.Resources.resources -d:FEATURE_DYNAMIC -r:./../../class/lib/net_4_x/System.dll -r:./../../class/lib/net_4_x/System.Xml.dll -r:./../../class/lib/net_4_x/System.Core.dll -r:./../../class/lib/net_4_x/System.Runtime.Serialization.dll -r:./../../class/lib/net_4_x/Microsoft.CSharp.dll</flags>
+      <output>net_4_x_System.Json.Microsoft_test.dll</output>
+      <built_sources></built_sources>
+      <library_output>net_4_x_System.Json.Microsoft_test.dll</library_output>
+      <fx_version>4.5</fx_version>
+      <profile>net_4_x</profile>
+      <response>./../../build/deps/net_4_x_System.Json.Microsoft_test.dll.response</response>
+    </project>
 </root>
index fba952f0701f56e37bebc921a4bd5de1510f0c88..20f78e5cf85b836bfc219964fc9d1a7f6af2cdbb 100644 (file)
@@ -17,6 +17,46 @@ class Prepare {
                        }
                }
        }
+
+       static void SystemDataConnectionReplace (string srcdir, string targetdir, string target, string ns, string factory, string conn)
+       {
+               var t = File.ReadAllText (Path.Combine (srcdir, "DbConnectionHelper.cs"));
+
+               File.WriteAllText (Path.Combine (targetdir, target), t.Replace ("NAMESPACE", ns).Replace ("CONNECTIONFACTORYOBJECTNAME", factory).Replace ("CONNECTIONOBJECTNAME", conn));
+       }
+
+       static void SystemDataParameterReplace (string srcdir, string targetdir, string target, string resns, string ns, string parname)
+       {
+               var t = File.ReadAllText (Path.Combine (srcdir, "DbParameterHelper.cs"));
+
+               File.WriteAllText (Path.Combine (targetdir, target), t.Replace ("RESNAMESPACE", resns).Replace ("NAMESPACE", ns).Replace ("PARAMETEROBJECTNAME", parname));
+       }
+
+       static void SystemDataParameterCollReplace (string srcdir, string targetdir, string target, string resns, string ns, string parname)
+       {
+               var t = File.ReadAllText (Path.Combine (srcdir, "DbParameterCollectionHelper.cs"));
+
+               Console.WriteLine ("Creating " + Path.Combine (targetdir, target));
+               File.WriteAllText (Path.Combine (targetdir, target), t.Replace ("RESNAMESPACE", resns).Replace ("PARAMETERCOLLECTIONOBJECTNAME", parname + "Collection").Replace ("NAMESPACE", ns).Replace ("PARAMETEROBJECTNAME", parname));
+       }
+       
+       static void GenerateSystemData (string bdir)
+       {
+               var rs = Path.Combine (bdir, "class", "referencesource", "System.Data", "System", "Data", "ProviderBase");
+               var sd = Path.Combine (bdir, "class", "System.Data");
+
+               SystemDataConnectionReplace (rs, sd, "gen_OdbcConnection.cs", "System.Data.Odbc", "OdbcConnectionFactory.SingletonInstance", "OdbcConnection");
+               SystemDataConnectionReplace (rs, sd, "gen_OleDbConnection.cs", "System.Data.OleDb", "OleDbConnectionFactory.SingletonInstance", "OleDbConnection");
+               SystemDataConnectionReplace (rs, sd, "gen_SqlConnection.cs", "System.Data.SqlClient", "SqlConnectionFactory.SingletonInstance", "SqlConnection");
+
+               SystemDataParameterReplace (rs, sd, "gen_OdbcParameter.cs", "System.Data", "System.Data.Odbc", "OdbcParameter");
+               SystemDataParameterReplace (rs, sd, "gen_OleDbParameter.cs", "System.Data", "System.Data.OleDb", "OleDbParameter");
+               SystemDataParameterReplace (rs, sd, "gen_SqlParameter.cs", "System.Data", "System.Data.SqlClient", "SqlParameter");
+
+               SystemDataParameterCollReplace (rs, sd, "gen_OdbcParameterCollection.cs", "System.Data", "System.Data.Odbc", "OdbcParameter");
+               SystemDataParameterCollReplace (rs, sd, "gen_OleDbParameterCollection.cs", "System.Data", "System.Data.OleDb", "OleDbParameter");
+               SystemDataParameterCollReplace (rs, sd, "gen_SqlParameterCollection.cs", "System.Data", "System.Data.SqlClient", "SqlParameter");
+       }
        
        static void Main (string [] args)
        {
@@ -32,6 +72,8 @@ class Prepare {
                        Filter (bdir + "/build/common/Consts.cs.in",
                                bdir + "/build/common/Consts.cs",
                                (i, o) => o.Write (i.ReadToEnd ().Replace ("@MONO_VERSION@", "2.5.0")));
+
+                       GenerateSystemData (bdir);
                        break;
                        
                default:
index ba17c5e4e215857005ff74c9b74f17746742998a..55750f27a09c017337d8d581cb0980efa79ee477 100644 (file)
@@ -23,10 +23,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Security-net_4_x", "
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Core-net_4_x", "mcs/class/System.Core/System.Core-net_4_x.csproj", "{359142A1-D80F-401E-AA64-7167C9317649}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mono.Posix-net_4_x", "mcs/class/Mono.Posix/Mono.Posix-net_4_x.csproj", "{66DBB049-785B-4C2E-9EF6-C9E163F7DDD1}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mono.CompilerServices.SymbolWriter-net_4_x", "mcs/class/Mono.CompilerServices.SymbolWriter/Mono.CompilerServices.SymbolWriter-net_4_x.csproj", "{88177C4B-894F-485D-B95A-44199C06BE9F}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mono.Posix-net_4_x", "mcs/class/Mono.Posix/Mono.Posix-net_4_x.csproj", "{66DBB049-785B-4C2E-9EF6-C9E163F7DDD1}"
+EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Core-plaincore-net_4_x", "mcs/class/System.Core/System.Core-plaincore-net_4_x.csproj", "{1EC0EBC0-0B35-454C-89AE-3F8F0FDD9705}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "resgen-net_4_x", "mcs/tools/resgen/resgen-net_4_x.csproj", "{647DC12E-A4EE-424A-9EC7-CE6643EE2EF7}"
@@ -725,14 +725,14 @@ Global
                {359142A1-D80F-401E-AA64-7167C9317649}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {359142A1-D80F-401E-AA64-7167C9317649}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {359142A1-D80F-401E-AA64-7167C9317649}.Release|Any CPU.Build.0 = Release|Any CPU
-               {66DBB049-785B-4C2E-9EF6-C9E163F7DDD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {66DBB049-785B-4C2E-9EF6-C9E163F7DDD1}.Debug|Any CPU.Build.0 = Debug|Any CPU
-               {66DBB049-785B-4C2E-9EF6-C9E163F7DDD1}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {66DBB049-785B-4C2E-9EF6-C9E163F7DDD1}.Release|Any CPU.Build.0 = Release|Any CPU
                {88177C4B-894F-485D-B95A-44199C06BE9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
                {88177C4B-894F-485D-B95A-44199C06BE9F}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {88177C4B-894F-485D-B95A-44199C06BE9F}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {88177C4B-894F-485D-B95A-44199C06BE9F}.Release|Any CPU.Build.0 = Release|Any CPU
+               {66DBB049-785B-4C2E-9EF6-C9E163F7DDD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {66DBB049-785B-4C2E-9EF6-C9E163F7DDD1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {66DBB049-785B-4C2E-9EF6-C9E163F7DDD1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {66DBB049-785B-4C2E-9EF6-C9E163F7DDD1}.Release|Any CPU.Build.0 = Release|Any CPU
                {1EC0EBC0-0B35-454C-89AE-3F8F0FDD9705}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
                {1EC0EBC0-0B35-454C-89AE-3F8F0FDD9705}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {1EC0EBC0-0B35-454C-89AE-3F8F0FDD9705}.Release|Any CPU.ActiveCfg = Release|Any CPU
index e7df3e218c59d227b575b95128c707e9200a2ac4..f6d49c64944f4c1ac6027ff62c8cf19a94238f93 100755 (executable)
@@ -37,7 +37,7 @@ if [[ -n "${ghprbPullId}" ]] && [[ ${label} == w* ]];
     # we don't run the test suite on Windows PRs, we just ensure the build succeeds, so end here
 fi
 ${TESTCMD} --label=mini --timeout=5m make -w -C mono/mini -k check
-${TESTCMD} --label=runtime --timeout=140m make -w -C mono/tests -k test-wrench V=1 CI=1
+${TESTCMD} --label=runtime --timeout=160m make -w -C mono/tests -k test-wrench V=1 CI=1
 ${TESTCMD} --label=corlib --timeout=30m make -w -C mcs/class/corlib run-test
 ${TESTCMD} --label=verify --timeout=15m make -w -C runtime mcs-compileall
 ${TESTCMD} --label=profiler --timeout=30m make -w -C mono/profiler -k check
index d4e07fd8965d5796ac61c0cf557c18c12a2e1d11..b4c6b68c22369b55c3ffcb20899241328b3287f5 100644 (file)
@@ -11,7 +11,7 @@ MONO_OPTIONS_SRC = $(SRC_ROOT)/mcs/class/Mono.Options/Mono.Options/Options.cs
 
 .stamp-clone:
        @if [ ! -d $(CPPSHARP_DIR) ]; then \
-               git clone git@github.com:xamarin/CppSharpBinaries.git $(CPPSHARP_DIR) && touch $@; \
+               git clone git://github.com/xamarin/CppSharpBinaries.git $(CPPSHARP_DIR) && touch $@; \
        fi
 
 MonoAotOffsetsDumper.exe: .stamp-clone MonoAotOffsetsDumper.cs $(MONO_OPTIONS_SRC)