Merge pull request #3056 from BrzVlad/fix-multiple-binprot
authorVlad Brezae <brezaevlad@gmail.com>
Mon, 30 May 2016 16:06:09 +0000 (19:06 +0300)
committerVlad Brezae <brezaevlad@gmail.com>
Mon, 30 May 2016 16:06:09 +0000 (19:06 +0300)
[sgen] Exclusive write on binary protocol file

451 files changed:
README.md
build-libs.sh
libgc/win32_threads.c
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.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/Mono.Data.Sqlite-net_4_x.csproj
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.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.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.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.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.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/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.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/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/SystemWebTestShim/SystemWebTestShim-net_4_x.csproj
mcs/class/WebMatrix.Data/WebMatrix.Data-net_4_x.csproj
mcs/class/WindowsBase/WindowsBase-net_4_x.csproj
mcs/class/corlib/ReferenceSources/RuntimeType.cs
mcs/class/corlib/System.Reflection/MonoMethod.cs
mcs/class/corlib/System.Runtime.InteropServices/ArrayWithOffset.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/AssemblyRegistrationFlags.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/BStrWrapper.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/COMException.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/CallingConvention.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/CharSet.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/ComMemberType.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/CriticalHandle.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/CurrencyWrapper.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/DispatchWrapper.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/ErrorWrapper.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/ExternalException.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/HandleRef.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/ICustomAdapter.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/ICustomFactory.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/ICustomMarshaler.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/IRegistrationServices.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/InvalidComObjectException.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/InvalidOleVariantTypeException.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/LayoutKind.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/Marshal.cs
mcs/class/corlib/System.Runtime.InteropServices/MarshalDirectiveException.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/ObjectCreationDelegate.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/SEHException.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/SafeArrayRankMismatchException.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/SafeArrayTypeMismatchException.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/SafeHandle.cs
mcs/class/corlib/System.Runtime.InteropServices/UnknownWrapper.cs [deleted file]
mcs/class/corlib/System.Runtime.InteropServices/VariantWrapper.cs [deleted file]
mcs/class/corlib/System.Runtime.Remoting/RemotingServices.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.Threading/ThreadTest.cs
mcs/class/corlib/corlib-net_4_x.csproj
mcs/class/corlib/corlib.dll.sources
mcs/class/monodoc/monodoc-net_4_x.csproj
mcs/class/referencesource/mscorlib/system/rttype.cs
mcs/class/referencesource/mscorlib/system/runtime/interopservices/arraywithoffset.cs
mcs/class/referencesource/mscorlib/system/runtime/interopservices/criticalhandle.cs
mcs/class/referencesource/mscorlib/system/runtime/interopservices/dispatchwrapper.cs
mcs/class/referencesource/mscorlib/system/runtime/interopservices/errorwrapper.cs
mcs/class/referencesource/mscorlib/system/runtime/interopservices/safehandle.cs
mcs/ilasm/ilasm-net_4_x.csproj
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/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/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/mconfig-net_4_x.csproj
mcs/tools/mdbrebase/mdbrebase-net_4_x.csproj
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-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/security-core-clr.c
mono/metadata/sgen-mono.c
mono/metadata/sgen-stw.c
mono/metadata/socket-io.c
mono/metadata/threadpool-ms.c
mono/metadata/threads.c
mono/mini/Makefile.am.in
mono/mini/aot-compiler.c
mono/mini/aot-runtime.c
mono/mini/debugger-agent.c
mono/mini/driver.c
mono/mini/ir-emit.h
mono/mini/jit-icalls.c
mono/mini/jit-icalls.h
mono/mini/jit.h
mono/mini/local-propagation.c
mono/mini/method-to-ir.c
mono/mini/mini-exceptions.c
mono/mini/mini-generic-sharing.c
mono/mini/mini-ops.h
mono/mini/mini-runtime.c
mono/mini/mini-s390x.c
mono/mini/mini-trampolines.c
mono/mini/mini.h
mono/mini/trace.c
mono/profiler/mono-profiler-iomap.c
mono/sgen/sgen-client.h
mono/sgen/sgen-debug.c
mono/sgen/sgen-gc.c
mono/sgen/sgen-gc.h
mono/sgen/sgen-memory-governor.c
mono/sgen/sgen-memory-governor.h
mono/utils/mono-error.c
mono/utils/mono-error.h
msvc/scripts/RabbitMQ.Client.Apigen.post [new file with mode: 0644]
msvc/scripts/genproj.cs
net_4_x.sln
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 17b2e16e7eefe0ab20d3a47563665a2dcb29542b..1b339764f8882e235cf17df74826f6987e4b0074 100755 (executable)
@@ -1,3 +1,4 @@
 #!/bin/sh
 (cd mcs/jay; make)
+(cd msvc/scripts/; make prepare.exe; mono prepare.exe `pwd`/mcs core)
 msbuild net_4_x.sln
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 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..3d8430294067191c48a165e460c4435327689cc3 100644 (file)
@@ -104,9 +104,8 @@ $(ProjectDir)\..\..\jay\jay -ct &lt; $(ProjectDir)\..\..\jay\skeleton.cs $(Proje
 $(ProjectDir)\..\..\jay\jay.exe -ct &lt; $(ProjectDir)\..\..\jay\skeleton.cs $(ProjectDir)\Commons.Xml.Relaxng.Rnc\RncParser.jay > $(ProjectDir)\Commons.Xml.Relaxng.Rnc\RncParser.cs
 \r
     </PreBuildEvent>\r
-\r
-    <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 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..5c8625482862a1226106901042b315a3cff8c42d 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 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 a5ea5e1483dbe2fb90905b1cb95fb81e5a734511..2b722aaff49d9c9feaa9a84a9495827c537e3655 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
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 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
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..774bd89e35cbaf42a517229146f7243dde3e5038 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
+ 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
+ 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
+ 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..7f8014de96be2c404d1e2fb33ce5db5de55df652 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 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
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
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..86f2abd37b1638c00c0730e3b4a28e6667890b35 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 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
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 9ae3c0813a12f97e79406e2ed6bfc9fac61f9e46..3496fd33365732f90db076316a6ea3918008e631 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 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..519672e1ef01005c87165f0e8027614cb91b9497 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 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..0a372455e9cdebcadb0ec219c9349e5b4d47263c 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 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..cd90704cc90c9fc098e3b348e57b6ffdd5f7e291 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 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..6b5d1cfbe8318344512ef82ab964bea5e98e9596 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 2dee913e1134e6ecadf4a426ea7487fbad370342..3fd5344a43b50e3714e68197661d0640f50bcc9a 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
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..abb30575708aa4226193b6ba5477e9344a96feb7 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 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..495234806c5aeb054e9d7462b682a03cba6485c8 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 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
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..c3cd7cc5262760c37a0f5f22aeed89da1c81bf3c 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 6d65c01cc378bbd0ec0b79b4a8a8311e76988f83..1cff71822308af45d45c170da6acfc5aa0d7bff6 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 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..52e2326bdce8362c55bf0f232c115db28e5b1c18 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 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 deb1d4cdb2b91625a080472b475dc82ad1ee9e87..3419b1ba3ada43d1da8920fe76950b33d065b0b6 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 96325e477f02f4c01efcf731e37d9b48aadfaf56..757869a3165e88a36667fb9b1e13f20b0f681056 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 12e35ada5e73ba899216fbed4194ad9339eae6ec..ebfc1d0cc3ad7464e3eb20240169c99827487924 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 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 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 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 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;
                        }
 
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/ArrayWithOffset.cs b/mcs/class/corlib/System.Runtime.InteropServices/ArrayWithOffset.cs
deleted file mode 100644 (file)
index 1ad70d3..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-//
-// System.Runtime.InteropServices.ArrayWithOffset.cs
-//
-// Author:
-//   Miguel de Icaza (miguel@ximian.com)
-//
-// (C) Novell, Inc.  http://www.ximian.com
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.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;
-
-namespace System.Runtime.InteropServices {
-
-       [Serializable]
-       [ComVisible (true)]
-       public struct ArrayWithOffset {
-               object array;
-               int offset;
-
-               public ArrayWithOffset (object array, int offset)
-               {
-                       this.array = array;
-                       this.offset = offset;
-               }
-
-               public override bool Equals (object obj)
-               {
-                       if (obj == null)
-                               return false;
-                       if (!(obj is ArrayWithOffset))
-                               return false;
-                       ArrayWithOffset other = (ArrayWithOffset) obj;
-
-                       return (other.array == array && other.offset == offset);
-               }
-
-               public bool Equals (ArrayWithOffset obj)
-               {
-                       return obj.array == array && obj.offset == offset;
-               }
-
-               public static bool operator == (ArrayWithOffset a, ArrayWithOffset b)
-               {
-                       return a.Equals (b);
-               }
-
-               public static bool operator != (ArrayWithOffset a, ArrayWithOffset b)
-               {
-                       return !a.Equals (b);
-               }
-
-               public override int GetHashCode ()
-               {
-                       return offset;
-               }
-
-               public object GetArray ()
-               {
-                       return array;
-               }                               
-
-               public int GetOffset ()
-               {
-                       return offset;
-               }                               
-       }
-}
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/AssemblyRegistrationFlags.cs b/mcs/class/corlib/System.Runtime.InteropServices/AssemblyRegistrationFlags.cs
deleted file mode 100644 (file)
index 244e727..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-//
-// System.Runtime.InteropServices.AssemblyRegistrationFlags.cs
-//
-// Author:
-//   Kevin Winchester (kwin@ns.sympatico.ca)
-//
-// (C) 2002 Kevin Winchester
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.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.
-//
-
-namespace System.Runtime.InteropServices
-{
-       [Flags]
-       [ComVisible(true)]
-       public enum AssemblyRegistrationFlags {
-               None = 0,
-               SetCodeBase,
-       }
-}
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/BStrWrapper.cs b/mcs/class/corlib/System.Runtime.InteropServices/BStrWrapper.cs
deleted file mode 100644 (file)
index 5f392b8..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// System.Runtime.InteropServices.BStrWrapper
-//
-// Author:
-//   Kazuki Oikawa  (kazuki@panicode.com)
-//
-
-using System;
-
-namespace System.Runtime.InteropServices
-{
-       [Serializable]
-       [ComVisible (true)]
-       public sealed class BStrWrapper
-       {
-               string _value;
-
-               public BStrWrapper (string value)
-               {
-                       _value = value;
-               }
-               
-               public BStrWrapper (object value)
-               {
-                       _value = (string)value;
-               }
-
-               public string WrappedObject { get { return _value; } }
-       }
-}
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/COMException.cs b/mcs/class/corlib/System.Runtime.InteropServices/COMException.cs
deleted file mode 100644 (file)
index f7ad9af..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-//
-// COMException.cs - COM Exception
-//
-// Author:
-//     Sebastien Pouliot  <sebastien@ximian.com>
-//
-// (C) 2002 Motus Technologies Inc. (http://www.motus.com)
-// Copyright (C) 2004, 2008 Novell, Inc (http://www.novell.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.Runtime.Serialization;
-
-namespace System.Runtime.InteropServices {
-
-[Serializable]
-[ComVisible (true)]
-public class COMException : ExternalException {
-
-       public COMException () 
-               : base () {}
-
-       public COMException (string message) 
-               : base (message) {}
-
-       public COMException (string message, Exception inner) 
-               : base (message, inner) {}
-
-       public COMException (string message, int errorCode) 
-               : base (message, errorCode) {}
-
-       protected COMException (SerializationInfo info, StreamingContext context) 
-               : base (info, context) {}
-
-       public override string ToString ()
-       {
-               return String.Format (
-                       "{0} (0x{1:x}): {2} {3}{4}{5}",
-                       GetType (), HResult, Message, InnerException == null ? String.Empty : InnerException.ToString (),
-                       Environment.NewLine, StackTrace != null ? StackTrace : String.Empty);
-       }
-} 
-
-}
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/CallingConvention.cs b/mcs/class/corlib/System.Runtime.InteropServices/CallingConvention.cs
deleted file mode 100644 (file)
index 4dab193..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-// CallingConvention.cs
-//
-// This code was automatically generated from
-// ECMA CLI XML Library Specification.
-// Generator: libgen.xsl [1.0; (C) Sergey Chaban (serge@wildwestsoftware.com)]
-// Created: Fri, 7 Sep 2001 16:33:29 UTC
-// Source file: AllTypes.xml
-// URL: http://msdn.microsoft.com/net/ecma/AllTypes.xml
-//
-// (C) 2001 Ximian, Inc.  http://www.ximian.com
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.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;
-
-namespace System.Runtime.InteropServices {
-
-       [Serializable]
-       [ComVisible (true)]
-       public enum CallingConvention {
-               Winapi = 1,
-               Cdecl = 2,
-               StdCall = 3,
-               ThisCall = 4,
-               FastCall = 5,
-       } 
-
-} // System.Runtime.InteropServices
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/CharSet.cs b/mcs/class/corlib/System.Runtime.InteropServices/CharSet.cs
deleted file mode 100644 (file)
index 565380a..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-// CharSet.cs
-//
-// This code was automatically generated from
-// ECMA CLI XML Library Specification.
-// Generator: libgen.xsl [1.0; (C) Sergey Chaban (serge@wildwestsoftware.com)]
-// Created: Fri, 7 Sep 2001 16:33:35 UTC
-// Source file: AllTypes.xml
-// URL: http://msdn.microsoft.com/net/ecma/AllTypes.xml
-//
-// (C) 2001 Ximian, Inc.  http://www.ximian.com
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.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;
-
-namespace System.Runtime.InteropServices {
-
-       [Serializable]
-       [ComVisible (true)]
-       public enum CharSet {
-               None = 1,
-               Ansi = 2,
-               Unicode = 3,
-               Auto = 4,
-       } 
-
-} // System.Runtime.InteropServices
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/ComMemberType.cs b/mcs/class/corlib/System.Runtime.InteropServices/ComMemberType.cs
deleted file mode 100644 (file)
index 480d18a..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.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.
-//
-
-// System.Runtime.InteropServices/ComMemberType.cs
-//
-// Paolo Molaro (lupus@ximian.com)
-//
-// (C) 2002 Ximian, Inc.
-
-using System;
-
-namespace System.Runtime.InteropServices
-{
-       [Serializable]
-       [ComVisible (true)]
-       public enum ComMemberType {
-               Method  = 0,
-               PropGet = 1,
-               PropSet = 2
-       }
-}
-
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/CriticalHandle.cs b/mcs/class/corlib/System.Runtime.InteropServices/CriticalHandle.cs
deleted file mode 100644 (file)
index ce50aff..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// System.Runtime.InteropServices.CriticalHandle
-//
-// Author:
-//   Kazuki Oikawa  (kazuki@panicode.com)
-//
-
-
-using System;
-using System.Runtime.ConstrainedExecution;
-using System.Runtime.Serialization;
-
-namespace System.Runtime.InteropServices
-{
-       public abstract class CriticalHandle : CriticalFinalizerObject, IDisposable
-       {
-               protected IntPtr handle;
-               bool _disposed = false;
-
-               [ReliabilityContract (Consistency.WillNotCorruptState, Cer.MayFail)]
-               protected CriticalHandle (IntPtr invalidHandleValue)
-               {
-                       handle = invalidHandleValue;
-               }
-
-               [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
-               ~CriticalHandle ()
-               {
-                       Dispose (false);
-               }
-
-               [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
-               public void Close ()
-               {
-                       Dispose (true);
-               }
-
-               [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
-               public void Dispose ()
-               {
-                       Dispose (true);
-               }
-
-               [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
-               protected virtual void Dispose (bool disposing)
-               {
-                       if (_disposed)
-                               return;
-
-                       if (!IsInvalid){
-                               if (!_disposed && !ReleaseHandle ()) {
-                                       GC.SuppressFinalize (this);
-                               } else {
-                                       // Failed in release...
-                               }
-                       }
-                       _disposed = true;
-               }
-
-               [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
-               protected abstract bool ReleaseHandle ();
-
-               [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
-               protected void SetHandle (IntPtr handle)
-               {
-                       this.handle = handle;
-               }
-
-               [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
-               public void SetHandleAsInvalid()
-               {
-                       _disposed = true;
-               }
-
-               public bool IsClosed {
-                       [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
-                       get { return _disposed; }
-               }
-
-               public abstract bool IsInvalid {
-                       [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
-                       get;
-               }
-       }
-}
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/CurrencyWrapper.cs b/mcs/class/corlib/System.Runtime.InteropServices/CurrencyWrapper.cs
deleted file mode 100644 (file)
index 5460b16..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-//
-// System.Runtime.InteropServices.CurrencyWrapper.cs
-//
-// Author:
-//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.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;
-
-namespace System.Runtime.InteropServices
-{
-       [Serializable]
-       [ComVisible (true)]
-       public sealed class CurrencyWrapper
-       {
-               Decimal currency;
-
-               public CurrencyWrapper (decimal obj)
-               {
-                       currency = obj;
-               }
-
-               public CurrencyWrapper (object obj)
-               {
-                       if (obj.GetType() != typeof(Decimal))
-                               throw new ArgumentException ("obj has to be a Decimal type");
-                       currency = (Decimal)obj;
-               }
-
-               public decimal WrappedObject {
-                       get { return currency; }
-               }
-       }
-}
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/DispatchWrapper.cs b/mcs/class/corlib/System.Runtime.InteropServices/DispatchWrapper.cs
deleted file mode 100644 (file)
index dfc5a2a..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-//
-// System.Runtime.InteropServices.DispatchWrapper.cs
-//
-// Author:
-//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.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.
-//
-
-#if !FULL_AOT_RUNTIME
-using System;
-
-namespace System.Runtime.InteropServices
-{
-       [Serializable]
-       [ComVisible (true)]
-       public sealed class DispatchWrapper
-       {
-               object wrappedObject;
-
-               public DispatchWrapper (object obj)
-               {
-                       Marshal.GetIDispatchForObject (obj);
-                       wrappedObject = obj;
-               }
-
-               public object WrappedObject {
-                       get { return wrappedObject; }
-               }
-       }
-}
-#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/ErrorWrapper.cs b/mcs/class/corlib/System.Runtime.InteropServices/ErrorWrapper.cs
deleted file mode 100644 (file)
index 4bf947a..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-//
-// System.Runtime.InteropServices.ErrorWrapper.cs
-//
-// Author:
-//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.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.
-//
-
-#if !FULL_AOT_RUNTIME
-using System;
-
-namespace System.Runtime.InteropServices
-{
-       [Serializable]
-       [ComVisible (true)]
-       public sealed class ErrorWrapper
-       {
-               int errorCode;
-
-               public ErrorWrapper (Exception e)
-               {
-                       this.errorCode = Marshal.GetHRForException (e);
-               }
-
-               public ErrorWrapper (int errorCode)
-               {
-                       this.errorCode = errorCode;
-               }
-
-               public ErrorWrapper (object errorCode)
-               {
-                       if (errorCode.GetType() != typeof(int))
-                               throw new ArgumentException ("errorCode has to be an int type");
-                       this.errorCode = (int)errorCode;
-               }
-
-               public int ErrorCode {
-                       get { return errorCode; }
-               }
-       }
-}
-#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/ExternalException.cs b/mcs/class/corlib/System.Runtime.InteropServices/ExternalException.cs
deleted file mode 100644 (file)
index f149ed3..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// System.Runtime.InteropServices.ExternalException.cs
-//
-// Author:
-//   Miguel De Icaza (miguel@ximian.com)
-//
-// (C) 2001 Ximian, Inc.  http://www.ximian.com
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.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.Runtime.Serialization;
-using System.Globalization;
-
-namespace System.Runtime.InteropServices
-{
-       [Serializable]
-       [ComVisible (true)]
-       public class ExternalException : SystemException
-       {
-               public ExternalException ()
-                       : base (Locale.GetText ("External exception"))
-               {
-                       HResult = -2147467259;
-               }
-
-               public ExternalException (string message)
-                       : base (message)
-               {
-                       HResult = -2147467259;
-               }
-
-               protected ExternalException(SerializationInfo info, StreamingContext context)
-                       : base (info, context) {
-               }
-
-               public ExternalException (string message, Exception inner)
-                       : base (message, inner)
-               {
-                       HResult = -2147467259;
-               }
-
-               public ExternalException (string message, int errorCode)
-                       : base (message)
-               {
-                       HResult = errorCode;
-               }
-
-               public virtual int ErrorCode {
-                       get {
-                               return HResult;
-                       }
-               }
-       }
-}
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/HandleRef.cs b/mcs/class/corlib/System.Runtime.InteropServices/HandleRef.cs
deleted file mode 100644 (file)
index d61d3bc..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-//
-// System.Runtime.InteropServices.HandleRef
-//
-// Author:
-//   Tim Coleman (tim@timcoleman.com)
-//
-// Copyright (C) 2003 Tim Coleman
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.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;
-
-namespace System.Runtime.InteropServices {
-       [ComVisible (true)]
-       public struct HandleRef {
-
-               #region Fields
-
-               object wrapper;
-               IntPtr handle;
-
-               #endregion // Fields
-
-               #region Constructors
-
-               public HandleRef (object wrapper, IntPtr handle)
-               {
-                       this.wrapper = wrapper;
-                       this.handle = handle;
-               }
-
-               #endregion // Constructors
-
-               #region Properties
-
-               public IntPtr Handle {
-                       get { return handle; }
-               }
-
-               public object Wrapper {
-                       get { return wrapper; }
-               }
-
-               #endregion // Properties
-
-               #region Type Conversions
-
-               public static explicit operator IntPtr (HandleRef value)
-               {
-                       return value.Handle;
-               }
-               
-               #endregion // Type Conversions
-               public static IntPtr ToIntPtr(HandleRef value)
-               {
-                       return value.Handle; 
-                       // Why did MS add a function for this?
-               }
-       }
-}
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/ICustomAdapter.cs b/mcs/class/corlib/System.Runtime.InteropServices/ICustomAdapter.cs
deleted file mode 100644 (file)
index 6ad1e35..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-//
-// System.Runtime.InteropServices.ICustomAdapter.cs
-//
-// Author:
-//   Kevin Winchester (kwin@ns.sympatico.ca)
-//
-// (C) 2002 Kevin Winchester
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.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.
-//
-
-namespace System.Runtime.InteropServices {
-
-       [ComVisible (true)]
-       public interface ICustomAdapter {
-               [return: MarshalAs (UnmanagedType.IUnknown)]
-               object GetUnderlyingObject ();
-       }
-}
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/ICustomFactory.cs b/mcs/class/corlib/System.Runtime.InteropServices/ICustomFactory.cs
deleted file mode 100644 (file)
index 2f22d28..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-//
-// System.Runtime.InteropServices.ICustomFactory.cs
-//
-// Author:
-//   Kevin Winchester (kwin@ns.sympatico.ca)
-//
-// (C) 2002 Kevin Winchester
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.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.
-//
-
-namespace System.Runtime.InteropServices {
-
-       [ComVisible (true)]
-       public interface ICustomFactory {
-               MarshalByRefObject CreateInstance (Type serverType);
-       }
-}
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/ICustomMarshaler.cs b/mcs/class/corlib/System.Runtime.InteropServices/ICustomMarshaler.cs
deleted file mode 100644 (file)
index 629a976..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-//
-// System.Runtime.InteropServices.ICustomMarshaler.cs
-//
-// Author:
-//   Kevin Winchester (kwin@ns.sympatico.ca)
-//
-// (C) 2002 Kevin Winchester
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.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.
-//
-
-namespace System.Runtime.InteropServices {
-
-       [ComVisible (true)]
-       public interface ICustomMarshaler {
-               void CleanUpManagedData (object ManagedObj);
-               void CleanUpNativeData (IntPtr pNativeData);
-               int GetNativeDataSize ();
-               IntPtr MarshalManagedToNative (object ManagedObj);
-               object MarshalNativeToManaged (IntPtr pNativeData);
-       }
-}
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/IRegistrationServices.cs b/mcs/class/corlib/System.Runtime.InteropServices/IRegistrationServices.cs
deleted file mode 100644 (file)
index 415f2a9..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-//
-// System.Runtime.InteropServices.IRegistrationServices.cs
-//
-// Author:
-//   Kevin Winchester (kwin@ns.sympatico.ca)
-//
-// (C) 2002 Kevin Winchester
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.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.Reflection;
-using System.Security.Permissions;
-namespace System.Runtime.InteropServices {
-
-       [ComVisible(true)]
-       [Guid("CCBD682C-73A5-4568-B8B0-C7007E11ABA2")]
-       public interface IRegistrationServices {
-               Guid GetManagedCategoryGuid ();
-               [SecurityPermission(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.UnmanagedCode)]
-               string GetProgIdForType (Type type);
-
-               [SecurityPermission(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.UnmanagedCode)]
-               Type[] GetRegistrableTypesInAssembly (Assembly assembly);
-
-               [SecurityPermission(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.UnmanagedCode)]
-               bool RegisterAssembly (Assembly assembly, AssemblyRegistrationFlags flags);
-
-               [SecurityPermission(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.UnmanagedCode)]
-               void RegisterTypeForComClients (Type type, ref Guid g);
-               
-               bool TypeRepresentsComType (Type type);
-               
-               [SecurityPermission(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.UnmanagedCode)]
-               bool TypeRequiresRegistration (Type type);
-
-               [SecurityPermission(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.UnmanagedCode)]
-               bool UnregisterAssembly (Assembly assembly);
-       }
-}
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/InvalidComObjectException.cs b/mcs/class/corlib/System.Runtime.InteropServices/InvalidComObjectException.cs
deleted file mode 100644 (file)
index c484ed7..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-//
-// System.Runtime.InteropServices.InvalidComObjectException.cs
-//
-// Author:
-//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.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.Runtime.Serialization;
-
-namespace System.Runtime.InteropServices
-{
-       [ComVisible(true)]
-       [Serializable]
-       public class InvalidComObjectException : SystemException
-       {
-               private const int ErrorCode = -2146233049; // = 0x80131527
-
-               public InvalidComObjectException ()
-                       : base (Locale.GetText ("Invalid COM object is used"))
-               {
-                       this.HResult = ErrorCode;
-               }
-
-               public InvalidComObjectException (string message)
-                       : base (message)
-               {
-                       this.HResult = ErrorCode;
-               }
-
-               public InvalidComObjectException (string message, Exception inner)
-                       : base (message, inner)
-               {
-                       this.HResult = ErrorCode;
-               }
-
-               protected InvalidComObjectException (SerializationInfo info, StreamingContext context)
-                       : base (info, context)
-               {
-               }
-       }
-}
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/InvalidOleVariantTypeException.cs b/mcs/class/corlib/System.Runtime.InteropServices/InvalidOleVariantTypeException.cs
deleted file mode 100644 (file)
index d280bf4..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-//
-// System.Runtime.InteropServices.InvalidOleVariantTypeException.cs
-//
-// Author:
-//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.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.Runtime.Serialization;
-
-namespace System.Runtime.InteropServices
-{
-       [ComVisible(true)]
-       [Serializable]
-       public class InvalidOleVariantTypeException : SystemException
-       {
-               private const int ErrorCode = -2146233039; // = 0x80131531
-
-               public InvalidOleVariantTypeException ()
-                       : base (Locale.GetText ("Found native variant type cannot be marshalled to managed code"))
-               {
-                       this.HResult = ErrorCode;
-               }
-
-               public InvalidOleVariantTypeException (string message)
-                       : base (message)
-               {
-                       this.HResult = ErrorCode;
-               }
-
-               public InvalidOleVariantTypeException (string message, Exception inner)
-                       : base (message, inner)
-               {
-                       this.HResult = ErrorCode;
-               }
-
-               protected InvalidOleVariantTypeException (SerializationInfo info, StreamingContext context)
-                       : base (info, context)
-               {
-               }
-       }
-}
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/LayoutKind.cs b/mcs/class/corlib/System.Runtime.InteropServices/LayoutKind.cs
deleted file mode 100644 (file)
index 25fe51b..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-// LayoutKind.cs
-//
-// This code was automatically generated from
-// ECMA CLI XML Library Specification.
-// Generator: libgen.xsl [1.0; (C) Sergey Chaban (serge@wildwestsoftware.com)]
-// Created: Fri, 7 Sep 2001 16:33:48 UTC
-// Source file: AllTypes.xml
-// URL: http://msdn.microsoft.com/net/ecma/AllTypes.xml
-//
-// (C) 2001 Ximian, Inc.  http://www.ximian.com
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.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.
-//
-
-
-namespace System.Runtime.InteropServices {
-
-       [ComVisible(true)]
-       [Serializable]
-       public enum LayoutKind {
-               Sequential = 0,
-               Explicit = 2,
-               Auto = 3
-       }
-       
-} 
index 24f15e3f980437e7877e372bf84a63afb6220ffb..a1b028b08c17a975da156186da5cb736e74ed47d 100644 (file)
@@ -1664,5 +1664,9 @@ namespace System.Runtime.InteropServices
                        
                        return GetFunctionPointerForDelegateInternal ((Delegate)(object)d);
                }
+
+               internal static void SetLastWin32Error (int error)
+               {
+               }
        }
 }
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/MarshalDirectiveException.cs b/mcs/class/corlib/System.Runtime.InteropServices/MarshalDirectiveException.cs
deleted file mode 100644 (file)
index 13c9c15..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-//
-// System.Runtime.InteropServices.MarshalDirectiveException.cs
-//
-// Author:
-//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.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.Runtime.Serialization;
-
-namespace System.Runtime.InteropServices
-{
-       [ComVisible(true)]
-       [Serializable]
-       public class MarshalDirectiveException : SystemException
-       {
-               private const int ErrorCode = -2146233035; // = 0x80131535
-
-               public MarshalDirectiveException ()
-                       : base (Locale.GetText ("Unsupported MarshalAsAttribute found"))
-               {
-                       this.HResult = ErrorCode;
-               }
-
-               public MarshalDirectiveException (string message)
-                       : base (message)
-               {
-                       this.HResult = ErrorCode;
-               }
-
-               public MarshalDirectiveException (string message, Exception inner)
-                       : base (message, inner)
-               {
-                       this.HResult = ErrorCode;
-               }
-
-               protected MarshalDirectiveException (SerializationInfo info, StreamingContext context)
-                       : base (info, context)
-               {
-               }
-       }
-}
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/ObjectCreationDelegate.cs b/mcs/class/corlib/System.Runtime.InteropServices/ObjectCreationDelegate.cs
deleted file mode 100644 (file)
index 92dbc2f..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-//
-// System.Runtime.InteropServices.ObjectCreationDelegate.cs
-//
-// Author:
-//   Miguel de Icaza (miguel@ximian.com)
-//
-// (C) Novell, Inc.  http://www.ximian.com
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.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;
-
-namespace System.Runtime.InteropServices {
-
-       [ComVisible(true)]
-       public delegate IntPtr ObjectCreationDelegate (IntPtr aggregator);
-}
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/SEHException.cs b/mcs/class/corlib/System.Runtime.InteropServices/SEHException.cs
deleted file mode 100644 (file)
index e3547cb..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// System.Runtime.InteropServices.SEHException.cs
-//
-// Authors:
-//    Gonzalo Paniagua Javier <gonzalo@ximian.com>
-//
-// (c) 2003 Ximian, Inc. http://www.ximian.com
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.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.Runtime.Serialization;
-
-namespace System.Runtime.InteropServices
-{
-       [ComVisible(true)]      
-       [Serializable]
-       public class SEHException : ExternalException
-       {
-               public SEHException ()
-               {
-               }
-
-               public SEHException (string message)
-                       : base (message)
-               {
-               }
-
-               public SEHException (string message, Exception inner)
-                       : base (message, inner)
-               {
-               }
-
-               protected SEHException (SerializationInfo info, StreamingContext context)
-                       : base (info, context)
-               {
-               }
-
-               public virtual bool CanResume ()
-               {
-                       return false;
-               }
-       }
-}
-
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/SafeArrayRankMismatchException.cs b/mcs/class/corlib/System.Runtime.InteropServices/SafeArrayRankMismatchException.cs
deleted file mode 100644 (file)
index c712d91..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-//
-// System.Runtime.InteropServices.SafeArrayRankMismatchException.cs
-//
-// Author:
-//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.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.Runtime.Serialization;
-
-namespace System.Runtime.InteropServices
-{
-       [ComVisible(true)]
-       [Serializable]
-       public class SafeArrayRankMismatchException : SystemException
-       {
-               private const int ErrorCode = -2146233032; // = 0x80131538
-
-               public SafeArrayRankMismatchException ()
-                       : base (Locale.GetText ("The incoming SAVEARRAY does not match the rank of the expected managed signature"))
-               {
-                       this.HResult = ErrorCode;
-               }
-
-               public SafeArrayRankMismatchException (string message)
-                       : base (message)
-               {
-                       this.HResult = ErrorCode;
-               }
-
-               public SafeArrayRankMismatchException (string message, Exception inner)
-                       : base (message, inner)
-               {
-                       this.HResult = ErrorCode;
-               }
-
-               protected SafeArrayRankMismatchException (SerializationInfo info, StreamingContext context)
-                       : base (info, context)
-               {
-               }
-       }
-}
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/SafeArrayTypeMismatchException.cs b/mcs/class/corlib/System.Runtime.InteropServices/SafeArrayTypeMismatchException.cs
deleted file mode 100644 (file)
index e23c5f6..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-//
-// System.Runtime.InteropServices.SafeArrayTypeMismatchException.cs
-//
-// Author:
-//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.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.Runtime.Serialization;
-
-namespace System.Runtime.InteropServices
-{
-       [ComVisible(true)]
-       [Serializable]
-       public class SafeArrayTypeMismatchException : SystemException
-       {
-               private const int ErrorCode = -2146233037; // = 0x80131533
-
-               public SafeArrayTypeMismatchException ()
-                       : base (Locale.GetText ("The incoming SAVEARRAY does not match the expected managed signature"))
-               {
-                       this.HResult = ErrorCode;
-               }
-
-               public SafeArrayTypeMismatchException (string message)
-                       : base (message)
-               {
-                       this.HResult = ErrorCode;
-               }
-
-               public SafeArrayTypeMismatchException (string message, Exception inner)
-                       : base (message, inner)
-               {
-                       this.HResult = ErrorCode;
-               }
-
-               protected SafeArrayTypeMismatchException (SerializationInfo info, StreamingContext context)
-                       : base (info, context)
-               {
-               }
-       }
-}
index 305c087a70237b42be089727c7f74099d3cdc16c..b5b59a1ae81ffb3f37822fd47ba5619f08d7469a 100644 (file)
@@ -227,18 +227,5 @@ namespace System.Runtime.InteropServices
                                        ReleaseHandle ();
                        }
                }
-
-               /*
-                * Implement this abstract method in your derived class to specify how to
-                * free the handle. Be careful not write any code that's subject to faults
-                * in this method (the runtime will prepare the infrastructure for you so
-                * that no jit allocations etc. will occur, but don't allocate memory unless
-                * you can deal with the failure and still free the handle).
-                * The boolean returned should be true for success and false if the runtime
-                * should fire a SafeHandleCriticalFailure MDA (CustomerDebugProbe) if that
-                * MDA is enabled.
-                */
-               [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
-               protected abstract bool ReleaseHandle ();
        }
 }
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/UnknownWrapper.cs b/mcs/class/corlib/System.Runtime.InteropServices/UnknownWrapper.cs
deleted file mode 100644 (file)
index ae5dda0..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-//
-// System.Runtime.InteropServices.UnknownWrapper.cs
-//
-// Author:
-//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.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.
-//
-
-namespace System.Runtime.InteropServices
-{
-       [Serializable, ComVisible(true)]
-       public sealed class UnknownWrapper
-       {
-               private object InternalObject;
-
-               public UnknownWrapper (object obj)
-               {
-                       InternalObject = obj;
-               }
-
-               public object WrappedObject {
-                       get { return InternalObject; } 
-               }
-       }
-}
diff --git a/mcs/class/corlib/System.Runtime.InteropServices/VariantWrapper.cs b/mcs/class/corlib/System.Runtime.InteropServices/VariantWrapper.cs
deleted file mode 100644 (file)
index 984cd37..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-//
-// System.Runtime.InteropServices.VariantWrapper.cs
-//
-// Author:
-//   Gert Driesen (drieseng@users.sourceforge.net)
-//
-// (C) Novell, Inc.  http://www.ximian.com
-//
-
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.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;
-
-namespace System.Runtime.InteropServices
-{
-       [Serializable]
-       public sealed class VariantWrapper
-       {
-               private object _wrappedObject;
-
-               public VariantWrapper (object obj)
-               {
-                       _wrappedObject = obj;
-               }
-
-               public object WrappedObject
-               {
-                       get
-                       {
-                               return _wrappedObject;
-                       }
-               }
-       }
-}
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 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 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
index 76f25a22e35de24c0879a6f022c921f3828eda03..a3a002f7cb0cd43effe25a5dd82308730850de6d 100644 (file)
@@ -338,66 +338,41 @@ System.Runtime.InteropServices/_SignatureHelper.cs
 System.Runtime.InteropServices/_Thread.cs
 System.Runtime.InteropServices/_Type.cs
 System.Runtime.InteropServices/_TypeBuilder.cs
-System.Runtime.InteropServices/ArrayWithOffset.cs
-System.Runtime.InteropServices/AssemblyRegistrationFlags.cs
 System.Runtime.InteropServices/BIND_OPTS.cs
 System.Runtime.InteropServices/BINDPTR.cs
-System.Runtime.InteropServices/BStrWrapper.cs
 System.Runtime.InteropServices/CALLCONV.cs
-System.Runtime.InteropServices/CallingConvention.cs
-System.Runtime.InteropServices/CharSet.cs
-System.Runtime.InteropServices/COMException.cs
-System.Runtime.InteropServices/ComMemberType.cs
-System.Runtime.InteropServices/CriticalHandle.cs
-System.Runtime.InteropServices/CurrencyWrapper.cs
 System.Runtime.InteropServices/DESCKIND.cs
-System.Runtime.InteropServices/DispatchWrapper.cs
 System.Runtime.InteropServices/DISPPARAMS.cs
 System.Runtime.InteropServices/ELEMDESC.cs
-System.Runtime.InteropServices/ErrorWrapper.cs
 System.Runtime.InteropServices/EXCEPINFO.cs
 System.Runtime.InteropServices/ExporterEventKind.cs
 System.Runtime.InteropServices/ExtensibleClassFactory.cs
-System.Runtime.InteropServices/ExternalException.cs
 System.Runtime.InteropServices/FILETIME.cs
 System.Runtime.InteropServices/FUNCDESC.cs
 System.Runtime.InteropServices/FUNCFLAGS.cs
 System.Runtime.InteropServices/FUNCKIND.cs
 System.Runtime.InteropServices/GCHandle.cs
 System.Runtime.InteropServices/GCHandleType.cs
-System.Runtime.InteropServices/HandleRef.cs
-System.Runtime.InteropServices/ICustomAdapter.cs
-System.Runtime.InteropServices/ICustomFactory.cs
-System.Runtime.InteropServices/ICustomMarshaler.cs
 System.Runtime.InteropServices/IDLDESC.cs
 System.Runtime.InteropServices/IDLFLAG.cs
 System.Runtime.InteropServices/IErrorInfo.cs
 System.Runtime.InteropServices/IMPLTYPEFLAGS.cs
 System.Runtime.InteropServices/INVOKEKIND.cs
-System.Runtime.InteropServices/IRegistrationServices.cs
 System.Runtime.InteropServices/ITypeLibConverter.cs
 System.Runtime.InteropServices/ITypeLibExporterNameProvider.cs
 System.Runtime.InteropServices/ITypeLibExporterNotifySink.cs
 System.Runtime.InteropServices/ITypeLibImporterNotifySink.cs
 System.Runtime.InteropServices/ImporterEventKind.cs
-System.Runtime.InteropServices/InvalidComObjectException.cs
-System.Runtime.InteropServices/InvalidOleVariantTypeException.cs
 System.Runtime.InteropServices/LIBFLAGS.cs
-System.Runtime.InteropServices/LayoutKind.cs
 System.Runtime.InteropServices/ManagedErrorInfo.cs
 System.Runtime.InteropServices/Marshal.cs
 System.Runtime.InteropServices/MarshalAsAttribute.cs
-System.Runtime.InteropServices/MarshalDirectiveException.cs
-System.Runtime.InteropServices/ObjectCreationDelegate.cs
 System.Runtime.InteropServices/PARAMDESC.cs
 System.Runtime.InteropServices/PARAMFLAG.cs
 System.Runtime.InteropServices/RegistrationClassContext.cs
 System.Runtime.InteropServices/RegistrationConnectionType.cs
-System.Runtime.InteropServices/SEHException.cs
 System.Runtime.InteropServices/STATSTG.cs
 System.Runtime.InteropServices/RegistrationServices.cs
-System.Runtime.InteropServices/SafeArrayRankMismatchException.cs
-System.Runtime.InteropServices/SafeArrayTypeMismatchException.cs
 System.Runtime.InteropServices/SafeBuffer.cs
 System.Runtime.InteropServices/SafeHandle.cs
 System.Runtime.InteropServices/SYSKIND.cs
@@ -423,10 +398,8 @@ System.Runtime.InteropServices/UCOMIStream.cs
 System.Runtime.InteropServices/UCOMITypeComp.cs
 System.Runtime.InteropServices/UCOMITypeInfo.cs
 System.Runtime.InteropServices/UCOMITypeLib.cs
-System.Runtime.InteropServices/UnknownWrapper.cs
 System.Runtime.InteropServices/VARDESC.cs
 System.Runtime.InteropServices/VARFLAGS.cs
-System.Runtime.InteropServices/VariantWrapper.cs
 
 System.Runtime.InteropServices.WindowsRuntime/DefaultInterfaceAttribute.cs
 System.Runtime.InteropServices.WindowsRuntime/DesignerNamespaceResolveEventArgs.cs
@@ -1287,10 +1260,37 @@ ReferenceSources/SecurityContext.cs
 ../referencesource/mscorlib/system/runtime/exceptionservices/exceptionnotification.cs
 ../referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs
 
+../referencesource/mscorlib/system/runtime/interopservices/arraywithoffset.cs
 ../referencesource/mscorlib/system/runtime/interopservices/attributes.cs
+../referencesource/mscorlib/system/runtime/interopservices/bstrwrapper.cs
+../referencesource/mscorlib/system/runtime/interopservices/callingconvention.cs
+../referencesource/mscorlib/system/runtime/interopservices/charset.cs
+../referencesource/mscorlib/system/runtime/interopservices/comexception.cs
+../referencesource/mscorlib/system/runtime/interopservices/commembertype.cs
+../referencesource/mscorlib/system/runtime/interopservices/criticalhandle.cs
+../referencesource/mscorlib/system/runtime/interopservices/currencywrapper.cs
+../referencesource/mscorlib/system/runtime/interopservices/dispatchwrapper.cs
+../referencesource/mscorlib/system/runtime/interopservices/errorwrapper.cs
+../referencesource/mscorlib/system/runtime/interopservices/externalexception.cs
+../referencesource/mscorlib/system/runtime/interopservices/handleref.cs
+../referencesource/mscorlib/system/runtime/interopservices/icustomadapter.cs
+../referencesource/mscorlib/system/runtime/interopservices/icustomfactory.cs
+../referencesource/mscorlib/system/runtime/interopservices/icustommarshaler.cs
+../referencesource/mscorlib/system/runtime/interopservices/icustomqueryinterface.cs
+../referencesource/mscorlib/system/runtime/interopservices/invalidcomobjectexception.cs
+../referencesource/mscorlib/system/runtime/interopservices/invalidolevarianttypeexception.cs
+../referencesource/mscorlib/system/runtime/interopservices/iregistrationservices.cs
+../referencesource/mscorlib/system/runtime/interopservices/layoutkind.cs
+../referencesource/mscorlib/system/runtime/interopservices/marshaldirectiveexception.cs
+../referencesource/mscorlib/system/runtime/interopservices/objectcreationdelegate.cs
 ../referencesource/mscorlib/system/runtime/interopservices/runtimeenvironment.cs
+../referencesource/mscorlib/system/runtime/interopservices/safearrayrankmismatchexception.cs
+../referencesource/mscorlib/system/runtime/interopservices/safearraytypemismatchexception.cs
 ../referencesource/mscorlib/system/runtime/interopservices/safehandle.cs
+../referencesource/mscorlib/system/runtime/interopservices/sehexception.cs
 ../referencesource/mscorlib/system/runtime/interopservices/ucomienumconnections.cs
+../referencesource/mscorlib/system/runtime/interopservices/unknownwrapper.cs
+../referencesource/mscorlib/system/runtime/interopservices/variantWrapper.cs
 
 ../referencesource/mscorlib/system/runtime/interopservices/ComTypes/ibindctx.cs
 ../referencesource/mscorlib/system/runtime/interopservices/ComTypes/iconnectionpoint.cs
index 773229202a0bf3d85a8c0cba432f098cfd8f809d..4413f8ae0f791e302a3d0722932ee24dd4019c9c 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 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 d6e858960bacb34dc2967830bc6cc2ffac59f49c..73778f3f4b142bf427734ef93fc793657594113e 100644 (file)
@@ -65,10 +65,22 @@ namespace System.Runtime.InteropServices {
             return !(a == b);
         }
 
+#if MONO
+        int CalculateCount()
+        {
+            Array a = m_array as Array;
+            if (a == null)
+                throw new ArgumentException ();
+
+            var total = a.Rank * a.Length;
+            return total - m_offset;
+        }
+#else
         [System.Security.SecurityCritical]  // auto-generated
         [ResourceExposure(ResourceScope.None)]
         [MethodImplAttribute(MethodImplOptions.InternalCall)]
         private extern int CalculateCount();
+#endif
     
         private Object m_array;
         private int    m_offset;
index 308fa38c8402310674d4975f921b155f0bb13651..2c6793f0d15d829aa75937612390bf595ff8e12d 100644 (file)
@@ -206,10 +206,16 @@ public abstract class CriticalHandle : CriticalFinalizerObject, IDisposable
         GC.SuppressFinalize(this);
     }
 
+#if MONO
+    static void FireCustomerDebugProbe()
+    {
+    }
+#else
     [ResourceExposure(ResourceScope.None)]
     [MethodImplAttribute(MethodImplOptions.InternalCall)]
     [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
     private extern void FireCustomerDebugProbe();
+#endif
 
     [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
     protected void SetHandle(IntPtr handle) {
index 3f9b3d38879c29f281cbb8c4b9f71aea6bd577f5..50740031b6196b51f4c4a4759f13bea1b1674cd7 100644 (file)
@@ -12,7 +12,7 @@
 **
 **
 =============================================================================*/
-
+#if !FULL_AOT_RUNTIME
 namespace System.Runtime.InteropServices {
    
     using System;
@@ -51,3 +51,4 @@ namespace System.Runtime.InteropServices {
         private Object m_WrappedObject;
     }
 }
+#endif
\ No newline at end of file
index 694412fd471faf0fd6eb03a415363e7e944e1393..0cf3823868c81c51fd13aeeb4f37ca1b889574ca 100644 (file)
@@ -12,7 +12,7 @@
 **
 **
 =============================================================================*/
-
+#if !FULL_AOT_RUNTIME
 namespace System.Runtime.InteropServices {
    
     using System;
@@ -54,3 +54,4 @@ namespace System.Runtime.InteropServices {
         private int m_ErrorCode;
     }
 }
+#endif
\ No newline at end of file
index 6536f3c77d2dc5806656871a48c6a1d35d654b26..c7610dc3687bf40644b2c6e3645a7ecdb5398ae9 100644 (file)
@@ -276,7 +276,7 @@ public abstract partial class SafeHandle : CriticalFinalizerObject, IDisposable
     [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
     [MethodImplAttribute(MethodImplOptions.InternalCall)]
     public extern void SetHandleAsInvalid();
-
+#endif
     // Implement this abstract method in your derived class to specify how to
     // free the handle. Be careful not write any code that's subject to faults
     // in this method (the runtime will prepare the infrastructure for you so
@@ -287,7 +287,7 @@ public abstract partial class SafeHandle : CriticalFinalizerObject, IDisposable
     // MDA is enabled.
     [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
     protected abstract bool ReleaseHandle();
-
+#if !MONO
     // Add a reason why this handle should not be relinquished (i.e. have
     // ReleaseHandle called on it). This method has dangerous in the name since
     // it must always be used carefully (e.g. called within a CER) to avoid
index 3cb5f677d4b26dc517d32b85672fe3461ef733a2..bb3643e628c59f0dd487f109dd28294b2533aef7 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 8ccdc6048167d21446df9c1c1f4bc5e1ecd055e3..e36e17bc2d089ba95f507452f1eb4476e42fba06 100644 (file)
@@ -130,9 +130,8 @@ $(ProjectDir)\..\jay\jay -ct &lt; $(ProjectDir)\..\jay\skeleton.cs $(ProjectDir)
 $(ProjectDir)\..\jay\jay.exe -ct &lt; $(ProjectDir)\..\jay\skeleton.cs $(ProjectDir)\cs-parser.jay > $(ProjectDir)\cs-parser.cs\r
 \r
     </PreBuildEvent>\r
-\r
-    <PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">\r
-\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
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 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 975f95d5aa1a3e89632be2f8cc137d472ea9c366..fe3428355ae091f27df07fb1a0b24cb74d35ec41 100644 (file)
@@ -83,9 +83,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 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 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..57ce86ba71f257f532f6f5a9572d276764acf685 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,9 @@ 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);
+                       mono_error_raise_exception (&error); /* FIXME don't raise here */
+
                        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..9e933a64bb4b6605e3d8134042d10f6f9c5bea82 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,7 +927,8 @@ mono_object_describe (MonoObject *obj)
        }
        klass = mono_object_class (obj);
        if (klass == mono_defaults.string_class) {
-               char *utf8 = mono_string_to_utf8 ((MonoString*)obj);
+               char *utf8 = mono_string_to_utf8_checked ((MonoString*)obj, &error);
+               mono_error_raise_exception (&error); /* FIXME don't raise here */
                if (strlen (utf8) > 60) {
                        utf8 [57] = '.';
                        utf8 [58] = '.';
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..df5cbe2acfbc3f195310d92628751ae354f8c865 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); /* FIXME don't raise here */
 
        MONO_ENTER_GC_SAFE;
        if (stat (path, &buf) == -1)
index efa5547f6e485fa3a5f81522dc9fddc2153194c9..201c724a8f5d32a8a2c63c85b702f92d03762cd7 100644 (file)
@@ -227,13 +227,19 @@ 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 (MonoString *path, int input_fd, int mode, gint64 *capacity, int access, int options, int *ioerror)
 {
+       MonoError error;
        struct stat buf;
-       char *c_path = path ? mono_string_to_utf8 (path) : NULL;
+       char *c_path = NULL;
        MmapHandle *handle = NULL;
        int result, fd;
 
+       if (path) {
+               c_path = mono_string_to_utf8_checked (path, &error);
+               mono_error_raise_exception (&error); /* FIXME don't raise here */
+       }
+
        if (path)
                result = stat (c_path, &buf);
        else
@@ -241,13 +247,13 @@ open_file_map (MonoString *path, int input_fd, int mode, gint64 *capacity, int a
 
        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,17 +264,17 @@ 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;
                }
        }
@@ -279,7 +285,7 @@ open_file_map (MonoString *path, int input_fd, int mode, gint64 *capacity, int a
                fd = dup (input_fd);
 
        if (fd == -1) { //XXX translate errno?
-               *error = COULD_NOT_OPEN;
+               *ioerror = COULD_NOT_OPEN;
                goto done;
        }
 
@@ -299,27 +305,29 @@ done:
 
 #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 (MonoString *mapName, int mode, gint64 *capacity, int access, int options, int *ioerror)
 {
+       MonoError error;
        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);
+       c_mapName = mono_string_to_utf8_checked (mapName, &error);
+       mono_error_raise_exception (&error); /* FIXME don't raise here */
 
        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 +340,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 +348,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 +357,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;
                }
 
@@ -375,24 +383,26 @@ done:
 
 
 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;
        g_assert (path || mapName);
 
        if (!mapName)
-               return open_file_map (path, -1, mode, capacity, access, options, error);
+               return open_file_map (path, -1, mode, capacity, access, options, ioerror);
 
        if (path) {
                MmapHandle *handle;
-               char *c_mapName = mono_string_to_utf8 (mapName);
+               char *c_mapName = mono_string_to_utf8_checked (mapName, &error);
+               mono_error_raise_exception (&error); /* FIXME don't raise here */
 
                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);
+                       handle = (MmapHandle *)open_file_map (path, -1, mode, capacity, access, options, ioerror);
                        if (handle) {
                                handle->name = g_strdup (c_mapName);
                                g_hash_table_insert (named_regions, handle->name, handle);
@@ -404,26 +414,28 @@ mono_mmap_open_file (MonoString *path, int mode, MonoString *mapName, gint64 *ca
                return handle;
        }
 
-       return open_memory_map (mapName, mode, capacity, access, options, error);
+       return open_memory_map (mapName, mode, capacity, access, options, ioerror);
 }
 
 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);
+               mono_error_raise_exception (&error); /* FIXME don't raise here */
 
                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..e8ab22e843ba4d407624233854a7ae7a191bbc64 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);
@@ -7522,6 +7552,7 @@ ves_icall_System_Configuration_DefaultConfig_get_machine_config_path (void)
 static MonoString *
 get_bundled_app_config (void)
 {
+       MonoError error;
        const gchar *app_config;
        MonoDomain *domain;
        MonoString *file;
@@ -7535,7 +7566,8 @@ 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);
+       mono_error_raise_exception (&error); /* FIXME don't raise here */
        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..44872a4dcf745d0fbaa9e2df22920f67bc72d12e 100644 (file)
@@ -804,9 +804,11 @@ fill_sample (MonoCounterSample *sample)
 static int
 id_from_string (MonoString *instance, gboolean is_process)
 {
+       MonoError error;
        int id = -1;
        if (mono_string_length (instance)) {
-               char *id_str = mono_string_to_utf8 (instance);
+               char *id_str = mono_string_to_utf8_checked (instance, &error);
+               mono_error_raise_exception (&error); /* FIXME don't raise here */
                char *end;
                id = strtol (id_str, &end, 0);
                if (end == id_str && !is_process)
@@ -912,6 +914,7 @@ network_cleanup (ImplVtable *vtable)
 static void*
 network_get_impl (MonoString* counter, MonoString* instance, int *type, MonoBoolean *custom)
 {
+       MonoError error;
        const CounterDesc *cdesc;
        NetworkVtableArg *narg;
        ImplVtable *vtable;
@@ -919,7 +922,8 @@ 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 = mono_string_to_utf8_checked (instance, &error);
+               mono_error_raise_exception (&error); /* FIXME don't raise here */
                narg = g_new0 (NetworkVtableArg, 1);
                narg->id = cdesc->id;
                narg->name = instance_name;
@@ -1043,9 +1047,11 @@ predef_readonly_counter (ImplVtable *vtable, MonoBoolean only_value, MonoCounter
 static ImplVtable*
 predef_vtable (void *arg, MonoString *instance)
 {
+       MonoError error;
        MonoSharedArea *area;
        PredefVtable *vtable;
-       char *pids = mono_string_to_utf8 (instance);
+       char *pids = mono_string_to_utf8_checked (instance, &error);
+       mono_error_raise_exception (&error); /* FIXME don't raise here */
        int pid;
 
        pid = atoi (pids);
@@ -1300,6 +1306,7 @@ custom_get_value_address (SharedCounter *scounter, SharedInstance* sinst)
 static void*
 custom_get_impl (SharedCategory *cat, MonoString* counter, MonoString* instance, int *type)
 {
+       MonoError error;
        SharedCounter *scounter;
        SharedInstance* inst;
        char *name;
@@ -1308,7 +1315,8 @@ custom_get_impl (SharedCategory *cat, MonoString* counter, MonoString* instance,
        if (!scounter)
                return NULL;
        *type = simple_type_to_type [scounter->type];
-       name = mono_string_to_utf8 (counter);
+       name = mono_string_to_utf8_checked (counter, &error);
+       mono_error_raise_exception (&error); /* FIXME don't raise here */
        inst = custom_get_instance (cat, scounter, name);
        g_free (name);
        if (!inst)
@@ -1490,7 +1498,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 +1570,7 @@ failure:
 int
 mono_perfcounter_instance_exists (MonoString *instance, MonoString *category, MonoString *machine)
 {
+       MonoError error;
        const CategoryDesc *cdesc;
        SharedInstance *sinst;
        char *name;
@@ -1576,7 +1584,8 @@ 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);
+               mono_error_raise_exception (&error); /* FIXME don't raise here */
                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..69769c496e34ebcf39f86047ae1617fba137b0c1 100644 (file)
@@ -263,6 +263,7 @@ struct _MonoReflectionType {
        MonoType  *type;
 };
 
+/* This corresponds to System.RuntimeType */
 typedef struct {
        MonoReflectionType type;
        MonoObject *type_info;
index 00d225552b6fac77c2070bbf59232d4139b4eea6..149b25f653a208cb52476904ff9ee752c245a854 100644 (file)
@@ -457,6 +457,7 @@ mono_runtime_class_init_full (MonoVTable *vtable, MonoError *error)
                        MonoException *exc_to_store = mono_error_convert_to_exception (error);
                        /* What we really want to do here is clone the error object and store one copy in the
                         * domain's exception hash and use the other one to error out here. */
+                       mono_error_init (error);
                        mono_error_set_exception_instance (error, exc_to_store);
                        /*
                         * Store the exception object so it could be thrown on subsequent
@@ -2215,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);
@@ -2223,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. */
@@ -2274,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);
@@ -2282,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. */
@@ -6832,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;
 }
 
index 4956917e16620845645aba047a3af4b564fa144d..6f31d121910dbed69f9e49cd8e12962ff46ff458 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);
 
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 4a651b09f18df10603a8e3e6b20011f145f75a5d..86ddead705be331233d7cfe59820943b3583a497 100644 (file)
@@ -531,7 +531,9 @@ string_heap_insert_mstring (MonoDynamicStream *sh, MonoString *str)
 {
        MONO_REQ_GC_UNSAFE_MODE;
 
-       char *name = mono_string_to_utf8 (str);
+       MonoError error;
+       char *name = mono_string_to_utf8_checked (str, &error);
+       mono_error_raise_exception (&error); /* FIXME don't raise here */
        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);
@@ -2233,7 +2240,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 +2263,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 +2279,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);
@@ -2977,7 +2997,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 +3148,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 +3250,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 +3307,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 +3420,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 +3738,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 +3905,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 +3953,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);
@@ -4240,6 +4270,7 @@ module_add_cattrs (MonoDynamicImage *assembly, MonoReflectionModuleBuilder *modu
 static void
 mono_image_fill_file_table (MonoDomain *domain, MonoReflectionModule *module, MonoDynamicImage *assembly)
 {
+       MonoError error;
        MonoDynamicTable *table;
        guint32 *values;
        char blob_size [6];
@@ -4255,7 +4286,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);
+               mono_error_raise_exception (&error); /* FIXME don't raise here */
                path = g_strdup_printf ("%s%c%s", dir, G_DIR_SEPARATOR, module->image->module_name);
        } else {
                dir = NULL;
@@ -4957,6 +4989,7 @@ assembly_add_resource_manifest (MonoReflectionModuleBuilder *mb, MonoDynamicImag
 static void
 assembly_add_resource (MonoReflectionModuleBuilder *mb, MonoDynamicImage *assembly, MonoReflectionResource *rsrc)
 {
+       MonoError error;
        MonoDynamicTable *table;
        guint32 *values;
        char blob_size [6];
@@ -4966,7 +4999,8 @@ assembly_add_resource (MonoReflectionModuleBuilder *mb, MonoDynamicImage *assemb
        guint32 idx, offset;
 
        if (rsrc->filename) {
-               name = mono_string_to_utf8 (rsrc->filename);
+               name = mono_string_to_utf8_checked (rsrc->filename, &error);
+               mono_error_raise_exception (&error); /* FIXME don't raise here */
                sname = g_path_get_basename (name);
        
                table = &assembly->tables [MONO_TABLE_FILE];
@@ -5019,6 +5053,7 @@ assembly_add_resource (MonoReflectionModuleBuilder *mb, MonoDynamicImage *assemb
 static void
 set_version_from_string (MonoString *version, guint32 *values)
 {
+       MonoError error;
        gchar *ver, *p, *str;
        guint32 i;
        
@@ -5028,7 +5063,8 @@ set_version_from_string (MonoString *version, guint32 *values)
        values [MONO_ASSEMBLY_BUILD_NUMBER] = 0;
        if (!version)
                return;
-       ver = str = mono_string_to_utf8 (version);
+       ver = str = mono_string_to_utf8_checked (version, &error);
+       mono_error_raise_exception (&error); /* FIXME don't raise here */
        for (i = 0; i < 4; ++i) {
                values [MONO_ASSEMBLY_MAJOR_VERSION + i] = strtol (ver, &p, 10);
                switch (*p) {
@@ -5501,7 +5537,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 +5639,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 +5987,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 +6008,17 @@ 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);
+       mono_error_raise_exception (&error); /* FIXME don't raise here */
+       if (assemblyb->culture) {
+               assembly->assembly.aname.culture = mono_string_to_utf8_checked (assemblyb->culture, &error);
+               mono_error_raise_exception (&error); /* FIXME don't raise here */
+       } 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);
+                       mono_error_raise_exception (&error); /* FIXME don't raise here */
                        char **version = g_strsplit (vstr, ".", 4);
                        char **parts = version;
                        assembly->assembly.aname.major = atoi (*parts++);
@@ -5998,7 +6039,9 @@ 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);
+       mono_error_raise_exception (&error); /* FIXME don't raise here */
+       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;
@@ -6691,7 +6734,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 +6923,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 +7314,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;
 
@@ -8492,7 +8537,9 @@ _mono_reflection_get_type_from_info (MonoTypeNameParse *info, MonoImage *image,
 
        type = mono_reflection_get_type_with_rootimage (rootimage, image, info, ignorecase, &type_resolve, error);
        if (type == NULL && !info->assembly.name && image != mono_defaults.corlib) {
+               /* ignore the error and try again */
                mono_error_cleanup (error);
+               mono_error_init (error);
                image = mono_defaults.corlib;
                type = mono_reflection_get_type_with_rootimage (rootimage, image, info, ignorecase, &type_resolve, error);
        }
@@ -8895,7 +8942,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);
@@ -8961,6 +9008,27 @@ mono_reflection_get_token_checked (MonoObject *obj, MonoError *error)
        return token;
 }
 
+/*
+ * Load the type with name @n on behalf of image @image.  On failure sets @error and returns NULL.
+ * The @is_enum flag only affects the error message that's displayed on failure.
+ */
+static MonoType*
+cattr_type_from_name (char *n, MonoImage *image, gboolean is_enum, MonoError *error)
+{
+       MonoError inner_error;
+       MonoType *t = mono_reflection_type_from_name_checked (n, image, &inner_error);
+       if (!t) {
+               mono_error_set_type_load_name (error, g_strdup(n), NULL,
+                                              "Could not load %s %s while decoding custom attribute: %s",
+                                              is_enum ? "enum type": "type",
+                                              n,
+                                              mono_error_get_message (&inner_error));
+               mono_error_cleanup (&inner_error);
+               return NULL;
+       }
+       return t;
+}
+
 static MonoClass*
 load_cattr_enum_type (MonoImage *image, const char *p, const char **end, MonoError *error)
 {
@@ -8972,16 +9040,9 @@ load_cattr_enum_type (MonoImage *image, const char *p, const char **end, MonoErr
 
        n = (char *)g_memdup (p, slen + 1);
        n [slen] = 0;
-       t = mono_reflection_type_from_name_checked (n, image, error);
-       if (!t) {
-               char *msg = g_strdup (mono_error_get_message (error));
-               mono_error_cleanup (error);
-               /* We don't free n, it's consumed by mono_error */
-               mono_error_set_type_load_name (error, n, NULL, "Could not load enum type %s while decoding custom attribute: %s", n, msg);
-               g_free (msg);
-               return NULL;
-       }
+       t = cattr_type_from_name (n, image, TRUE, error);
        g_free (n);
+       return_val_if_nok (error, NULL);
        p += slen;
        *end = p;
        return mono_class_from_mono_type (t);
@@ -9079,16 +9140,9 @@ handle_type:
                slen = mono_metadata_decode_value (p, &p);
                n = (char *)g_memdup (p, slen + 1);
                n [slen] = 0;
-               t = mono_reflection_type_from_name_checked (n, image, error);
-               if (!t) {
-                       char *msg = g_strdup (mono_error_get_message (error));
-                       mono_error_cleanup (error);
-                       /* We don't free n, it's consumed by mono_error */
-                       mono_error_set_type_load_name (error, n, NULL, "Could not load type %s while decoding custom attribute: %msg", n, msg);
-                       g_free (msg);
-                       return NULL;
-               }
+               t = cattr_type_from_name (n, image, FALSE, error);
                g_free (n);
+               return_val_if_nok (error, NULL);
                *end = p + slen;
 
                rt = mono_type_get_object_checked (mono_domain_get (), t, error);
@@ -9134,16 +9188,9 @@ handle_type:
                        slen = mono_metadata_decode_value (p, &p);
                        n = (char *)g_memdup (p, slen + 1);
                        n [slen] = 0;
-                       t = mono_reflection_type_from_name_checked (n, image, error);
-                       if (!t) {
-                               char *msg = g_strdup (mono_error_get_message (error));
-                               mono_error_cleanup (error);
-                               /* We don't free n, it's consumed by mono_error */
-                               mono_error_set_type_load_name (error, n, NULL, "Could not load type %s while decoding custom attribute: %s", n, msg);
-                               g_free (msg);
-                               return NULL;
-                       }
+                       t = cattr_type_from_name (n, image, FALSE, error);
                        g_free (n);
+                       return_val_if_nok (error, NULL);
                        p += slen;
                        subc = mono_class_from_mono_type (t);
                } else if (subt >= MONO_TYPE_BOOLEAN && subt <= MONO_TYPE_R8) {
@@ -10338,7 +10385,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);
@@ -10865,7 +10912,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;
@@ -10884,7 +10932,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;
@@ -11062,7 +11111,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;
@@ -11761,8 +11811,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:
@@ -13032,7 +13087,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)
@@ -13846,7 +13905,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);
@@ -14140,7 +14199,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))
@@ -14790,10 +14850,11 @@ mono_reflection_call_is_assignable_to (MonoClass *klass, MonoClass *oklass, Mono
        params [0] = mono_type_get_object_checked (mono_domain_get (), &oklass->byval_arg, error);
        return_val_if_nok (error, FALSE);
 
-       res = mono_runtime_try_invoke (method, (MonoObject*)(mono_class_get_ref_info (klass)), params, &exc, error);
+       MonoError inner_error;
+       res = mono_runtime_try_invoke (method, (MonoObject*)(mono_class_get_ref_info (klass)), params, &exc, &inner_error);
 
-       if (exc || !mono_error_ok (error)) {
-               mono_error_cleanup (error);
+       if (exc || !is_ok (&inner_error)) {
+               mono_error_cleanup (&inner_error);
                return FALSE;
        } else
                return *(MonoBoolean*)mono_object_unbox (res);
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 2a71d2fbd46b480c88c8937125c2111cec528d77..862871c771206b1b1fb73ecf4ccee1ed57bbf895 100644 (file)
@@ -901,7 +901,7 @@ mono_gc_clear_domain (MonoDomain * domain)
                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 9e18e8c3eff9a66a2d5a06c22805a3a17e8d56ea..1f4a6cc605237a36e6f13c3a28acc3c229086dff 100644 (file)
@@ -708,13 +708,15 @@ worker_try_create (void)
 {
        ThreadPoolCounter counter;
        MonoInternalThread *thread;
+       gint64 current_ticks;
        gint32 now;
 
        mono_coop_mutex_lock (&threadpool->worker_creation_lock);
 
        mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_THREADPOOL, "[%p] try create worker", mono_native_thread_id_get ());
-
-       if ((now = mono_100ns_ticks () / 10 / 1000 / 1000) == 0) {
+       current_ticks = mono_100ns_ticks ();
+       now = current_ticks / (10 * 1000 * 1000);
+       if (0 == current_ticks) {
                g_warning ("failed to get 100ns ticks");
        } else {
                if (threadpool->worker_creation_current_second != now) {
index cc6bbad33f8a8cf735194172a87deda93ebc1002..09aaa07610efa27ade59aa16d8f97fb99f3e23cd 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);
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..4ae5c894de5db2ba6175c0fa7e611c39767fd189 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 2ebae1f232242f94400f0dba9350a546e639be73..7407fecdf579b37975e3621fbc60b97ba2010a8b 100644 (file)
@@ -2410,6 +2410,8 @@ mono_aot_get_method_from_vt_slot (MonoDomain *domain, MonoVTable *vtable, int sl
        gboolean err;
        MethodRef ref;
        gboolean res;
+       gpointer addr;
+       MonoError inner_error;
 
        mono_error_init (error);
 
@@ -2424,12 +2426,12 @@ mono_aot_get_method_from_vt_slot (MonoDomain *domain, MonoVTable *vtable, int sl
                return NULL;
 
        for (i = 0; i < slot; ++i) {
-               decode_method_ref (amodule, &ref, p, &p, error);
-               mono_error_cleanup (error); /* FIXME don't swallow the error */
+               decode_method_ref (amodule, &ref, p, &p, &inner_error);
+               mono_error_cleanup (&inner_error); /* FIXME don't swallow the error */
        }
 
-       res = decode_method_ref (amodule, &ref, p, &p, error);
-       mono_error_cleanup (error); /* FIXME don't swallow the error */
+       res = decode_method_ref (amodule, &ref, p, &p, &inner_error);
+       mono_error_cleanup (&inner_error); /* FIXME don't swallow the error */
        if (!res)
                return NULL;
        if (ref.no_aot_trampoline)
@@ -2438,7 +2440,8 @@ mono_aot_get_method_from_vt_slot (MonoDomain *domain, MonoVTable *vtable, int sl
        if (mono_metadata_token_index (ref.token) == 0 || mono_metadata_token_table (ref.token) != MONO_TABLE_METHOD)
                return NULL;
 
-       return mono_aot_get_method_from_token (domain, ref.image, ref.token, error);
+       addr = mono_aot_get_method_from_token (domain, ref.image, ref.token, error);
+       return addr;
 }
 
 gboolean
@@ -4262,9 +4265,9 @@ init_llvmonly_method (MonoAotModule *amodule, guint32 method_index, MonoMethod *
        MonoError error;
 
        res = init_method (amodule, method_index, method, init_class, context, &error);
-       /* Its okay to raise in llvmonly mode */
        if (!is_ok (&error)) {
                MonoException *ex = mono_error_convert_to_exception (&error);
+               /* Its okay to raise in llvmonly mode */
                if (ex)
                        mono_llvm_throw_exception ((MonoObject*)ex);
        }
@@ -4354,6 +4357,7 @@ mono_aot_get_method_checked (MonoDomain *domain, MonoMethod *method, MonoError *
        MonoAotModule *amodule = (MonoAotModule *)klass->image->aot_module;
        guint8 *code;
        gboolean cache_result = FALSE;
+       MonoError inner_error;
 
        mono_error_init (error);
 
@@ -4428,11 +4432,10 @@ mono_aot_get_method_checked (MonoDomain *domain, MonoMethod *method, MonoError *
                if (method_index == 0xffffff && method->wrapper_type == MONO_WRAPPER_MANAGED_TO_MANAGED && method->klass->rank && strstr (method->name, "System.Collections.Generic")) {
                        MonoMethod *m = mono_aot_get_array_helper_from_wrapper (method);
 
-                       code = (guint8 *)mono_aot_get_method_checked (domain, m, error);
+                       code = (guint8 *)mono_aot_get_method_checked (domain, m, &inner_error);
+                       mono_error_cleanup (&inner_error);
                        if (code)
                                return code;
-                       if (!is_ok (error))
-                               return NULL;
                }
 
                /*
@@ -4464,11 +4467,10 @@ mono_aot_get_method_checked (MonoDomain *domain, MonoMethod *method, MonoError *
                         * Get the code for the <object> instantiation which should be emitted into
                         * the mscorlib aot image by the AOT compiler.
                         */
-                       code = (guint8 *)mono_aot_get_method_checked (domain, m, error);
+                       code = (guint8 *)mono_aot_get_method_checked (domain, m, &inner_error);
+                       mono_error_cleanup (&inner_error);
                        if (code)
                                return code;
-                       if (!is_ok (error))
-                               return NULL;
                }
 
                /* Same for CompareExchange<T> and Exchange<T> */
@@ -4504,11 +4506,10 @@ mono_aot_get_method_checked (MonoDomain *domain, MonoMethod *method, MonoError *
                         * Get the code for the <object> instantiation which should be emitted into
                         * the mscorlib aot image by the AOT compiler.
                         */
-                       code = (guint8 *)mono_aot_get_method_checked (domain, m, error);
+                       code = (guint8 *)mono_aot_get_method_checked (domain, m, &inner_error);
+                       mono_error_cleanup (&inner_error);
                        if (code)
                                return code;
-                       if (!is_ok (error))
-                               return NULL;
                }
 
                /* For ARRAY_ACCESSOR wrappers with reference types, use the <object> instantiation saved in corlib */
@@ -4524,11 +4525,10 @@ mono_aot_get_method_checked (MonoDomain *domain, MonoMethod *method, MonoError *
 
                                        m = mono_marshal_get_array_accessor_wrapper (m);
                                        if (m != method) {
-                                               code = (guint8 *)mono_aot_get_method_checked (domain, m, error);
+                                               code = (guint8 *)mono_aot_get_method_checked (domain, m, &inner_error);
+                                               mono_error_cleanup (&inner_error);
                                                if (code)
                                                        return code;
-                                               if (!is_ok (error))
-                                                       return NULL;
                                        }
                                }
                        }
@@ -4601,7 +4601,7 @@ mono_aot_get_method (MonoDomain *domain, MonoMethod *method)
        MonoError error;
 
        gpointer res = mono_aot_get_method_checked (domain, method, &error);
-       /* This is a public api function so it can raise exceptions */
+       /* This is external only, so its ok to raise here */
        mono_error_raise_exception (&error);
        return res;
 }
@@ -5832,8 +5832,10 @@ mono_aot_get_method (MonoDomain *domain, MonoMethod *method)
 }
 
 gpointer
-mono_aot_get_method_checked (MonoDomain *domain, MonoMethod *method, MonoError *error)
+mono_aot_get_method_checked (MonoDomain *domain,
+                                                        MonoMethod *method, MonoError *error);
 {
+       mono_error_init (error);
        return NULL;
 }
 
@@ -5864,6 +5866,7 @@ mono_aot_find_jit_info (MonoDomain *domain, MonoImage *image, gpointer addr)
 gpointer
 mono_aot_get_method_from_token (MonoDomain *domain, MonoImage *image, guint32 token, MonoError *error)
 {
+       mono_error_init (error);
        return NULL;
 }
 
@@ -5887,6 +5890,8 @@ mono_aot_patch_plt_entry (guint8 *code, guint8 *plt_entry, gpointer *got, mgreg_
 gpointer
 mono_aot_get_method_from_vt_slot (MonoDomain *domain, MonoVTable *vtable, int slot, MonoError *error)
 {
+       mono_error_init (error);
+
        return NULL;
 }
 
index f0a4f49dd7fce66daa38936e06948b3896b1ca6b..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 ();
 }
@@ -4320,11 +4327,12 @@ set_bp_in_method (MonoDomain *domain, MonoMethod *method, MonoSeqPointInfo *seq_
 
        code = mono_jit_find_compiled_method_with_jit_info (domain, method, &ji);
        if (!code) {
-               MonoError error;
+               MonoError oerror;
 
                /* Might be AOTed code */
-               code = mono_aot_get_method_checked (domain, method, &error);
+               code = mono_aot_get_method_checked (domain, method, &oerror);
                g_assert (code);
+               mono_error_assert_ok (&oerror);
                ji = mono_jit_info_table_find (domain, (char *)code);
                g_assert (ji);
        }
@@ -5429,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;
@@ -5441,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);
 
@@ -7786,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);
@@ -8675,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);
@@ -8683,6 +8701,7 @@ method_commands_internal (int command, MonoMethod *method, MonoDomain *domain, g
                        break;
                }
                default: {
+                       MonoError error;
                        gpointer val;
                        MonoClass *handle_class;
 
@@ -8696,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));
@@ -8717,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);
@@ -9233,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 7b37da2a67705dae962975399db081541af1392f..1a7b15b6f55ad75f301e44531a82e8714d3c280d 100644 (file)
@@ -399,11 +399,14 @@ mini_regression_step (MonoImage *image, int verbose, int *total_run, int *total,
                                if (verbose >= 2)
                                        g_print ("Running '%s' ...\n", method->name);
 #ifdef MONO_USE_AOT_COMPILER
-                               if ((func = (TestMethod)mono_aot_get_method_checked (mono_get_root_domain (), method, &error)))
-                                       ;
-                               else
-#endif
+                               MonoError error;
+                               func = (TestMethod)mono_aot_get_method_checked (mono_get_root_domain (), method, &error);
+                               mono_error_cleanup (&error);
+                               if (!func)
                                        func = (TestMethod)(gpointer)cfg->native_code;
+#else
+                                       func = (TestMethod)(gpointer)cfg->native_code;
+#endif
                                func = (TestMethod)mono_create_ftnptr (mono_get_root_domain (), func);
                                result = func ();
                                if (result != expected) {
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 5852061fcd8c4a649bd8a6dbb8e1097eb24bbcc1..39abeb285497461e407cb5f3f1bfb3dd0fa96d7b 100644 (file)
@@ -1577,7 +1577,7 @@ resolve_vcall (MonoVTable *vt, int slot, MonoMethod *imt_method, gpointer *out_a
 
        /* Avoid loading metadata or creating a generic vtable if possible */
        addr = mono_aot_get_method_from_vt_slot (mono_domain_get (), vt, slot, &error);
-       mono_error_assert_ok (&error); /* FIXME don't swallow the error */
+       mono_error_raise_exception (&error); // FIXME: Don't raise here
        if (addr && !vt->klass->valuetype)
                return mono_create_ftnptr (mono_domain_get (), addr);
 
@@ -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 6d528eb651c88b7375f6521083809f624422006d..ed5eca5248beb4e1d7bff51a183720e7cc3e2498 100644 (file)
@@ -88,7 +88,7 @@ MONO_API char*       mono_get_runtime_build_info    (void);
 MONO_API MonoJitInfo *
 mono_get_jit_info_from_method (MonoDomain *domain, MonoMethod *method);
 
-MONO_RT_EXTERNAL_ONLY MONO_API void *
+MONO_API MONO_RT_EXTERNAL_ONLY void *
 mono_aot_get_method (MonoDomain *domain, MonoMethod *method);
 
 MONO_END_DECLS
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 46a12c45677b5339236d4dd1f77893f92cee68fe..b154daa8f31c77901cd04760ba9b3f236c20512d 100644 (file)
@@ -1551,6 +1551,8 @@ mono_handle_exception_internal_first_pass (MonoContext *ctx, MonoObject *obj, gi
                                        }
                                }
 
+                               MonoError isinst_error;
+                               mono_error_init (&isinst_error);
                                if (ei->flags == MONO_EXCEPTION_CLAUSE_NONE && mono_object_isinst_checked (ex_obj, catch_class, &error)) {
                                        setup_stack_trace (mono_ex, dynamic_methods, initial_trace_ips, &trace_ips);
                                        g_slist_free (dynamic_methods);
@@ -1562,7 +1564,7 @@ mono_handle_exception_internal_first_pass (MonoContext *ctx, MonoObject *obj, gi
                                        MONO_CONTEXT_SET_IP (ctx, ei->handler_start);
                                        return TRUE;
                                }
-                               mono_error_cleanup (&error);
+                               mono_error_cleanup (&isinst_error);
                        }
                }
 
@@ -1695,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);
@@ -2829,8 +2839,14 @@ mono_invoke_unhandled_exception_hook (MonoObject *exc)
                MonoString *str = mono_object_to_string (exc, &other);
                char *msg = NULL;
                
-               if (str)
-                       msg = mono_string_to_utf8 (str);
+               if (str) {
+                       MonoError 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 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 69a76c19afec5f1c9f865649b3451dec0f345c80..a84d695a8b3ce0ba0ed665ac2c0cd13319e45a45 100644 (file)
@@ -204,10 +204,11 @@ mini_resolve_imt_method (MonoVTable *vt, gpointer *vtable_slot, MonoMethod *imt_
                g_assert (mono_error_ok (&error)); /* FIXME don't swallow the error */
        } else {
                MonoError error;
+
                /* Avoid loading metadata or creating a generic vtable if possible */
                if (lookup_aot && !vt->klass->valuetype) {
                        aot_addr = (guint8 *)mono_aot_get_method_from_vt_slot (mono_domain_get (), vt, interface_offset + mono_method_get_vtable_slot (imt_method), &error);
-                       g_assert (mono_error_ok (&error)); /* FIXME don't swallow the error */
+                       mono_error_raise_exception (&error); // FIXME: Don't raise here
                } else {
                        aot_addr = NULL;
                }
@@ -874,10 +875,7 @@ mono_vcall_trampoline (mgreg_t *regs, guint8 *code, int slot, guint8 *tramp)
 
                /* Avoid loading metadata or creating a generic vtable if possible */
                addr = mono_aot_get_method_from_vt_slot (mono_domain_get (), vt, slot, &error);
-               if (!is_ok (&error)) {
-                       mono_error_set_pending_exception (&error);
-                       return NULL;
-               }
+               mono_error_raise_exception (&error); /* FIXME don't raise here */
                if (addr && !vt->klass->valuetype) {
                        if (mono_domain_owns_vtable_slot (mono_domain_get (), vtable_slot))
                                *vtable_slot = addr;
@@ -984,12 +982,12 @@ mono_aot_trampoline (mgreg_t *regs, guint8 *code, guint8 *token_info,
        token = *(guint32*)(gpointer)token_info;
 
        addr = mono_aot_get_method_from_token (mono_domain_get (), image, token, &error);
+       if (!is_ok (&error))
+               mono_error_cleanup (&error);
        if (!addr) {
-               if (!is_ok (&error))
-                       g_error ("Could not load AOT method due to %s", mono_error_get_message (&error));
                method = mono_get_method_checked (image, token, NULL, NULL, &error);
                if (!method)
-                       g_error ("Could not load AOT method due to %s", mono_error_get_message (&error));
+                       g_error ("Could not load AOT trampoline due to %s", mono_error_get_message (&error));
 
                /* Use the generic code */
                return mono_magic_trampoline (regs, code, method, tramp);
index 1f2d43208115b5dd6122a86d26abc944861961d7..a10818df3991a22551b79f753a322128c9b629ee 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)))
 
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 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 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..37a162b240c3c44a9957d69a072ea18a6ff20301 100644 (file)
@@ -1474,7 +1474,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;
@@ -1638,7 +1638,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;
@@ -1869,7 +1869,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 +1893,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 +1912,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 +2025,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 +2047,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 +2064,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 +2096,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 +2163,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 +2223,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 +2234,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 +2244,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 +2254,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 +2271,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 +2294,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);
 }
 
 /*
@@ -3214,9 +3192,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 +3205,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 +3227,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..f688748a45e455887b68f438278b9b89943b9c7b 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
 };
 
@@ -811,16 +812,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 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 84d04781e708927500ec5fc106ec46066cacfda4..7488c9ca6c9f64df7ed65b17c3c911efc1f22968 100644 (file)
@@ -39,6 +39,8 @@ is_managed_exception (MonoErrorInternal *error)
 static void
 mono_error_prepare (MonoErrorInternal *error)
 {
+       /* mono_error_set_* after a mono_error_cleanup without an intervening init */
+       g_assert (error->error_code != MONO_ERROR_CLEANUP_CALLED_SENTINEL);
        if (error->error_code != MONO_ERROR_NONE)
                return;
 
@@ -106,15 +108,30 @@ void
 mono_error_cleanup (MonoError *oerror)
 {
        MonoErrorInternal *error = (MonoErrorInternal*)oerror;
-       if (error->error_code == MONO_ERROR_NONE)
+       short int orig_error_code = error->error_code;
+       gboolean free_strings = error->flags & MONO_ERROR_FREE_STRINGS;
+       gboolean has_instance_handle = is_managed_exception (error);
+
+       /* Two cleanups in a row without an intervening init. */
+       g_assert (orig_error_code != MONO_ERROR_CLEANUP_CALLED_SENTINEL);
+
+       /* Mark it as cleaned up. */
+       error->error_code = MONO_ERROR_CLEANUP_CALLED_SENTINEL;
+       error->flags = 0;
+
+       if (orig_error_code == MONO_ERROR_NONE)
                return;
 
-       if (is_managed_exception (error))
+
+       if (has_instance_handle)
                mono_gchandle_free (error->exn.instance_handle);
 
+
        g_free ((char*)error->full_message);
        g_free ((char*)error->full_message_with_fields);
-       if (!(error->flags & MONO_ERROR_FREE_STRINGS)) //no memory was allocated
+       error->full_message = NULL;
+       error->full_message_with_fields = NULL;
+       if (!free_strings) //no memory was allocated
                return;
 
        g_free ((char*)error->type_name);
@@ -123,6 +140,9 @@ mono_error_cleanup (MonoError *oerror)
        g_free ((char*)error->exception_name_space);
        g_free ((char*)error->exception_name);
        g_free ((char*)error->first_argument);
+       error->type_name = error->assembly_name = error->member_name = error->exception_name_space = error->exception_name = error->first_argument = NULL;
+       error->exn.klass = NULL;
+
 }
 
 gboolean
@@ -664,6 +684,9 @@ mono_error_prepare_exception (MonoError *oerror, MonoError *error_out)
                exception = (MonoException*) mono_gchandle_get_target (error->exn.instance_handle);
                break;
 
+       case MONO_ERROR_CLEANUP_CALLED_SENTINEL:
+               mono_error_set_execution_engine (error_out, "MonoError reused after mono_error_cleanup");
+               break;
        default:
                mono_error_set_execution_engine (error_out, "Invalid error-code %d", error->error_code);
        }
index 5e1102ec2b842006b8d799e93f969267fef68101..2a98d4839fc45f4ca02b7a8fa247f8bc642fff70 100644 (file)
@@ -32,7 +32,10 @@ enum {
         */
        MONO_ERROR_GENERIC = 9,
        /* This one encapsulates a managed exception instance */
-       MONO_ERROR_EXCEPTION_INSTANCE = 10
+       MONO_ERROR_EXCEPTION_INSTANCE = 10,
+
+       /* Not a valid error code - indicates that the error was cleaned up and reused */
+       MONO_ERROR_CLEANUP_CALLED_SENTINEL = 0xffff
 };
 
 /*Keep in sync with MonoErrorInternal*/
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
+
+
+
index ccaa3b3149c9059691926e96e6a17433c2ee84b8..7c775bb70c9b554b0b0df1092e9c5ae59d026546 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,6 @@ class MsbuildGenerator {
                                var source = dk.Key;
                                if (source.EndsWith (".resources"))
                                        source = source.Replace (".resources", ".resx");
-                               Console.WriteLine ("Got {0} -> {1}", dk.Key, source);
                                resources.AppendFormat ("    <EmbeddedResource Include=\"{0}\">" + NewLine, source);
                                resources.AppendFormat ("      <LogicalName>{0}</LogicalName>" + NewLine, dk.Value);
                                resources.AppendFormat ("    </EmbeddedResource>" + NewLine);
@@ -878,15 +860,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 +897,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 +913,30 @@ 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;
+               }
+               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);
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 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)