You've already forked linux-packaging-mono
Imported Upstream version 6.4.0.137
Former-commit-id: 943baa9f16a098c33e129777827f3a9d20da00d6
This commit is contained in:
parent
e9207cf623
commit
ef583813eb
@@ -1,5 +1,3 @@
|
||||
#if MONOTOUCH && FULL_AOT_RUNTIME
|
||||
|
||||
using Crimson.CommonCrypto;
|
||||
|
||||
namespace System
|
||||
@@ -21,5 +19,3 @@ namespace System
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -3,7 +3,8 @@
|
||||
<assembly fullname="mscorlib">
|
||||
|
||||
<!-- domain.c: mono_defaults.appdomain_class -->
|
||||
<type fullname="System.AppDomain" preserve="fields">
|
||||
<type fullname="System.AppDomain">
|
||||
<field name="_mono_app_domain" />
|
||||
<!-- appdomain.c: mono_domain_try_type_resolve -->
|
||||
<method name="DoTypeResolve" />
|
||||
<!-- appdomain.c: mono_try_assembly_resolve -->
|
||||
@@ -100,10 +101,14 @@
|
||||
</type>
|
||||
|
||||
<!-- domain.c: mono_defaults.boolean_class -->
|
||||
<type fullname="System.Boolean" preserve="fields" />
|
||||
<type fullname="System.Boolean">
|
||||
<field name="m_value"/>
|
||||
</type>
|
||||
|
||||
<!-- domain.c: mono_defaults.byte_class -->
|
||||
<type fullname="System.Byte" preserve="fields" />
|
||||
<type fullname="System.Byte">
|
||||
<field name="m_value"/>
|
||||
</type>
|
||||
|
||||
<!-- exception.c" mono_get_exception_cannot_unload_appdomain (called by appdomain.c) -->
|
||||
<type fullname="System.CannotUnloadAppDomainException">
|
||||
@@ -112,7 +117,9 @@
|
||||
</type>
|
||||
|
||||
<!-- domain.c: mono_defaults.char_class -->
|
||||
<type fullname="System.Char" preserve="fields" />
|
||||
<type fullname="System.Char">
|
||||
<field name="m_value"/>
|
||||
</type>
|
||||
|
||||
<!-- marshal.c: emit_marshal_vtype -->
|
||||
<type fullname="System.DateTime" preserve="fields" />
|
||||
@@ -153,7 +160,9 @@
|
||||
</type>
|
||||
|
||||
<!-- domain.c: mono_defaults.double_class -->
|
||||
<type fullname="System.Double" preserve="fields" />
|
||||
<type fullname="System.Double">
|
||||
<field name="m_value"/>
|
||||
</type>
|
||||
|
||||
<!-- domain.c: mono_defaults.enum_class -->
|
||||
<type fullname="System.Enum" preserve="fields" />
|
||||
@@ -203,16 +212,24 @@
|
||||
</type>
|
||||
|
||||
<!-- domain.c: mono_defaults.int16_class -->
|
||||
<type fullname="System.Int16" preserve="fields" />
|
||||
<type fullname="System.Int16">
|
||||
<field name="m_value"/>
|
||||
</type>
|
||||
|
||||
<!-- domain.c: mono_defaults.int32_class -->
|
||||
<type fullname="System.Int32" preserve="fields" />
|
||||
<type fullname="System.Int32">
|
||||
<field name="m_value"/>
|
||||
</type>
|
||||
|
||||
<!-- domain.c: mono_defaults.int64_class -->
|
||||
<type fullname="System.Int64" preserve="fields" />
|
||||
<type fullname="System.Int64">
|
||||
<field name="m_value"/>
|
||||
</type>
|
||||
|
||||
<!-- domain.c: mono_defaults.int_class -->
|
||||
<type fullname="System.IntPtr" preserve="fields" />
|
||||
<type fullname="System.IntPtr">
|
||||
<field name="m_value"/>
|
||||
</type>
|
||||
|
||||
<!-- exception.c (mono_get_exception_invalid_cast) -->
|
||||
<type fullname="System.InvalidCastException">
|
||||
@@ -284,6 +301,12 @@
|
||||
<!-- mono_get_exception_not_implemented -->
|
||||
<method signature="System.Void .ctor(System.String)" />
|
||||
</type>
|
||||
|
||||
<!-- mono-error.c (mono_error_set_ambiguous_implementation) -->
|
||||
<type fullname="System.Runtime.AmbiguousImplementationException">
|
||||
<!-- mono_error_set_ambiguous_implementation -->
|
||||
<method signature="System.Void .ctor(System.String)" />
|
||||
</type>
|
||||
|
||||
<!-- appdomain.c (create_domain_objects) domain->null_reference_ex -->
|
||||
<!-- exception.c (mono_get_exception_null_reference) -->
|
||||
@@ -344,11 +367,16 @@
|
||||
|
||||
<!-- domain.c: mono_defaults.typehandle_class -->
|
||||
<type fullname="System.RuntimeTypeHandle" preserve="fields" />
|
||||
|
||||
<!-- domain.c: mono_defaults.sbyte_class -->
|
||||
<type fullname="System.SByte" preserve="fields" />
|
||||
<type fullname="System.SByte">
|
||||
<field name="m_value"/>
|
||||
</type>
|
||||
|
||||
<!-- domain.c: mono_defaults.single_class -->
|
||||
<type fullname="System.Single" preserve="fields" />
|
||||
<type fullname="System.Single">
|
||||
<field name="m_value"/>
|
||||
</type>
|
||||
|
||||
<!-- appdomain.c (create_domain_objects) domain->stack_overflow_ex -->
|
||||
<type fullname="System.StackOverflowException">
|
||||
@@ -414,16 +442,24 @@
|
||||
<type fullname="System.TypedReference" preserve="fields" />
|
||||
|
||||
<!-- domain.c: mono_defaults.uint16_class -->
|
||||
<type fullname="System.UInt16" preserve="fields" />
|
||||
<type fullname="System.UInt16">
|
||||
<field name="m_value"/>
|
||||
</type>
|
||||
|
||||
<!-- domain.c: mono_defaults.uint32_class -->
|
||||
<type fullname="System.UInt32" preserve="fields" />
|
||||
<type fullname="System.UInt32">
|
||||
<field name="m_value"/>
|
||||
</type>
|
||||
|
||||
<!-- domain.c: mono_defaults.uint64_class -->
|
||||
<type fullname="System.UInt64" preserve="fields" />
|
||||
<type fullname="System.UInt64">
|
||||
<field name="m_value"/>
|
||||
</type>
|
||||
|
||||
<!-- domain.c: mono_defaults.uint_class -->
|
||||
<type fullname="System.UIntPtr" preserve="fields" />
|
||||
<type fullname="System.UIntPtr">
|
||||
<field name="m_value"/>
|
||||
</type>
|
||||
|
||||
<!-- object.c: create_unhandled_exception_eventargs (assert) -->
|
||||
<type fullname="System.UnhandledExceptionEventArgs">
|
||||
@@ -562,9 +598,11 @@
|
||||
</type>
|
||||
<type fullname="System.Reflection.ParameterInfo" preserve="fields" />
|
||||
<!-- reflection.c: ves_icall_get_parameter_info -->
|
||||
<type fullname="System.Reflection.RuntimeParameterInfo" preserve="fields" >
|
||||
<type fullname="System.Reflection.RuntimeParameterInfo" >
|
||||
<!-- reflection.c mono_object_new_checked in event_object_construct -->
|
||||
<method signature="System.Void .ctor()" />
|
||||
<!-- reflection.c add_parameter_object_to_array -->
|
||||
<method signature="System.Void .ctor(System.String,System.Type,System.Int32,System.Int32,System.Object,System.Reflection.MemberInfo,System.Runtime.InteropServices.MarshalAsAttribute)" />
|
||||
</type>
|
||||
|
||||
<!-- object.c: mono_field_get_value_object and mono_runtime_invoke_array -->
|
||||
@@ -638,7 +676,7 @@
|
||||
<type fullname="System.Runtime.InteropServices.ICustomMarshaler" />
|
||||
|
||||
<!-- domain.c: mono_defaults.marshal_class -->
|
||||
<type fullname="System.Runtime.InteropServices.Marshal" preserve="fields" >
|
||||
<type fullname="System.Runtime.InteropServices.Marshal">
|
||||
<!-- marshal.c (mono_marshal_get_struct_to_ptr) -->
|
||||
<method name="StructureToPtr" />
|
||||
</type>
|
||||
|
||||
@@ -59,7 +59,8 @@ RESX_RESOURCE_STRING = \
|
||||
../../../external/corefx/src/System.ObjectModel/src/Resources/Strings.resx \
|
||||
../../../external/corert/src/System.Private.CoreLib/src/Resources/Strings.resx \
|
||||
../../../external/corefx/src/System.Private.Uri/src/Resources/Strings.resx \
|
||||
../../../external/corefx/src/Microsoft.Win32.Registry/src/Resources/Strings.resx
|
||||
../../../external/corefx/src/Microsoft.Win32.Registry/src/Resources/Strings.resx \
|
||||
../../../external/corefx/src/System.Security.Cryptography.Algorithms/src/Resources/Strings.resx
|
||||
|
||||
LIBRARY_COMPILE = $(BOOT_COMPILE)
|
||||
LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)
|
||||
@@ -71,18 +72,26 @@ RESOURCE_STRINGS_FILES = --mscorlib-debug
|
||||
RESOURCE_STRINGS = ../referencesource/mscorlib/mscorlib.txt
|
||||
MODULE_DEPS = $(IL_REPLACE) LinkerDescriptor/mscorlib.xml
|
||||
|
||||
RESOURCE_FILES = \
|
||||
resources/charinfo.nlp \
|
||||
|
||||
ifdef WASM
|
||||
MANAGED_COLLATOR_RESOURCES_FILES =
|
||||
else
|
||||
MANAGED_COLLATOR_RESOURCES_FILES = \
|
||||
resources/collation.core.bin \
|
||||
resources/collation.tailoring.bin \
|
||||
resources/collation.cjkCHS.bin \
|
||||
resources/collation.cjkCHT.bin \
|
||||
resources/collation.cjkJA.bin \
|
||||
resources/collation.cjkKO.bin \
|
||||
resources/collation.cjkKOlv2.bin \
|
||||
resources/collation.cjkKOlv2.bin
|
||||
endif
|
||||
|
||||
RESOURCE_FILES = \
|
||||
resources/charinfo.nlp \
|
||||
$(MANAGED_COLLATOR_RESOURCES_FILES) \
|
||||
LinkerDescriptor/mscorlib.xml
|
||||
|
||||
REFERENCE_SOURCES_FLAGS = -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ENCODINGNLS,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT,HAS_CORLIB_CONTRACTS
|
||||
REFERENCE_SOURCES_FLAGS = -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ENCODINGNLS,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT,FEATURE_DEFAULT_INTERFACES,HAS_CORLIB_CONTRACTS
|
||||
|
||||
ifndef NO_SRE
|
||||
LIB_MCS_FLAGS += -d:MONO_FEATURE_SRE
|
||||
@@ -93,7 +102,11 @@ REFERENCE_SOURCES_FLAGS += -d:FEATURE_MACL
|
||||
endif
|
||||
|
||||
ifndef AOT_FRIENDLY_PROFILE
|
||||
ifndef DISABLE_REMOTING
|
||||
REFERENCE_SOURCES_FLAGS += -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP,FEATURE_ROLE_BASED_SECURITY
|
||||
else
|
||||
REFERENCE_SOURCES_FLAGS += -d:FEATURE_ROLE_BASED_SECURITY
|
||||
endif
|
||||
endif
|
||||
|
||||
ifndef NO_THREAD_ABORT
|
||||
@@ -150,7 +163,7 @@ endif
|
||||
endif
|
||||
|
||||
# System.IO/DirectoryInfoTest.cs needs Mono.Posix
|
||||
TEST_MCS_FLAGS += -debug -nowarn:168,219,618,672 -unsafe \
|
||||
TEST_MCS_FLAGS += -debug -nowarn:168,219,618,672 -unsafe -nowarn:67,114,162,169,649,659 \
|
||||
-define:MONO_DATACONVERTER_STATIC_METHODS $(TEST_RESX_RESOURCES:%=-resource:%) -resource:LinkerDescriptor/mscorlib_test.xml,$(test_lib:.dll=.xml)
|
||||
|
||||
ifeq ($(PROFILE),net_4_x)
|
||||
@@ -280,6 +293,10 @@ ifdef NO_TEST
|
||||
NO_VTS_TEST = yes
|
||||
endif
|
||||
|
||||
ifdef DISABLE_REMOTING
|
||||
NO_VTS_TEST = yes
|
||||
endif
|
||||
|
||||
ifndef NO_VTS_TEST
|
||||
test: test-vts
|
||||
run-test: run-test-vts
|
||||
|
||||
@@ -595,7 +595,7 @@ namespace Mono.Globalization.Unicode
|
||||
{
|
||||
int size;
|
||||
Module module;
|
||||
return Assembly.GetExecutingAssembly ().GetManifestResourceInternal (name, out size, out module);
|
||||
return ((RuntimeAssembly)Assembly.GetExecutingAssembly ()).GetManifestResourceInternal (name, out size, out module);
|
||||
}
|
||||
#elif USE_C_HEADER
|
||||
const int CollationTableIdxIgnorables = 0;
|
||||
|
||||
@@ -75,7 +75,7 @@ using COpt = System.Globalization.CompareOptions;
|
||||
|
||||
namespace Mono.Globalization.Unicode
|
||||
{
|
||||
internal class SimpleCollator
|
||||
internal class SimpleCollator : ISimpleCollator
|
||||
{
|
||||
/*
|
||||
// this environment variable is for debugging quick check.
|
||||
@@ -756,6 +756,13 @@ Console.WriteLine (" -> '{0}'", c.Replacement);
|
||||
len1 == min ? - 1 : 1;
|
||||
}
|
||||
*/
|
||||
|
||||
int ISimpleCollator.Compare (string s1, int idx1, int len1,
|
||||
string s2, int idx2, int len2, CompareOptions options)
|
||||
{
|
||||
return Compare (s1, idx1, len1, s2, idx2, len2, options);
|
||||
}
|
||||
|
||||
internal unsafe int Compare (string s1, int idx1, int len1,
|
||||
string s2, int idx2, int len2, CompareOptions options)
|
||||
{
|
||||
|
||||
@@ -128,9 +128,6 @@ namespace Mono.Interop
|
||||
|
||||
public override IMessage Invoke (IMessage msg)
|
||||
{
|
||||
Console.WriteLine ("Invoke");
|
||||
Console.WriteLine (System.Environment.StackTrace);
|
||||
|
||||
throw new Exception ("The method or operation is not implemented.");
|
||||
}
|
||||
|
||||
|
||||
@@ -13,136 +13,124 @@ using System;
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
namespace Mono {
|
||||
namespace Mono
|
||||
{
|
||||
unsafe struct RuntimeClassHandle
|
||||
{
|
||||
RuntimeStructs.MonoClass* value;
|
||||
|
||||
internal struct RuntimeClassHandle {
|
||||
unsafe RuntimeStructs.MonoClass* value;
|
||||
|
||||
internal unsafe RuntimeClassHandle (RuntimeStructs.MonoClass* value) {
|
||||
internal RuntimeClassHandle (RuntimeStructs.MonoClass* value)
|
||||
{
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
internal unsafe RuntimeClassHandle (IntPtr ptr) {
|
||||
internal RuntimeClassHandle (IntPtr ptr)
|
||||
{
|
||||
this.value = (RuntimeStructs.MonoClass*) ptr;
|
||||
}
|
||||
|
||||
internal unsafe RuntimeStructs.MonoClass* Value {
|
||||
get { return value; }
|
||||
}
|
||||
internal RuntimeStructs.MonoClass* Value => value;
|
||||
|
||||
public override bool Equals (object obj)
|
||||
{
|
||||
if (obj == null || GetType () != obj.GetType ())
|
||||
return false;
|
||||
|
||||
unsafe { return value == ((RuntimeClassHandle)obj).Value; }
|
||||
return value == ((RuntimeClassHandle)obj).Value;
|
||||
}
|
||||
|
||||
public override int GetHashCode ()
|
||||
{
|
||||
unsafe { return ((IntPtr)value).GetHashCode (); }
|
||||
}
|
||||
public override int GetHashCode () => ((IntPtr)value).GetHashCode ();
|
||||
|
||||
public bool Equals (RuntimeClassHandle handle)
|
||||
{
|
||||
unsafe { return value == handle.Value; }
|
||||
return value == handle.Value;
|
||||
}
|
||||
|
||||
public static bool operator == (RuntimeClassHandle left, Object right)
|
||||
public static bool operator == (RuntimeClassHandle left, object right)
|
||||
{
|
||||
return (right != null) && (right is RuntimeClassHandle) && left.Equals ((RuntimeClassHandle)right);
|
||||
return right != null && right is RuntimeClassHandle rch && left.Equals (rch);
|
||||
}
|
||||
|
||||
public static bool operator != (RuntimeClassHandle left, Object right)
|
||||
public static bool operator != (RuntimeClassHandle left, object right)
|
||||
{
|
||||
return (right == null) || !(right is RuntimeClassHandle) || !left.Equals ((RuntimeClassHandle)right);
|
||||
return !(left == right);
|
||||
}
|
||||
|
||||
public static bool operator == (Object left, RuntimeClassHandle right)
|
||||
public static bool operator == (object left, RuntimeClassHandle right)
|
||||
{
|
||||
return (left != null) && (left is RuntimeClassHandle) && ((RuntimeClassHandle)left).Equals (right);
|
||||
return left != null && left is RuntimeClassHandle rch && rch.Equals (right);
|
||||
}
|
||||
|
||||
public static bool operator != (Object left, RuntimeClassHandle right)
|
||||
public static bool operator != (object left, RuntimeClassHandle right)
|
||||
{
|
||||
return (left == null) || !(left is RuntimeClassHandle) || !((RuntimeClassHandle)left).Equals (right);
|
||||
return !(left == right);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall)]
|
||||
internal unsafe extern static IntPtr GetTypeFromClass (RuntimeStructs.MonoClass *klass);
|
||||
|
||||
internal RuntimeTypeHandle GetTypeHandle ()
|
||||
{
|
||||
unsafe { return new RuntimeTypeHandle (GetTypeFromClass (value)); }
|
||||
}
|
||||
internal RuntimeTypeHandle GetTypeHandle () => new RuntimeTypeHandle (GetTypeFromClass (value));
|
||||
}
|
||||
|
||||
internal struct RuntimeRemoteClassHandle {
|
||||
unsafe RuntimeStructs.RemoteClass* value;
|
||||
unsafe struct RuntimeRemoteClassHandle
|
||||
{
|
||||
RuntimeStructs.RemoteClass* value;
|
||||
|
||||
internal unsafe RuntimeRemoteClassHandle (RuntimeStructs.RemoteClass* value)
|
||||
internal RuntimeRemoteClassHandle (RuntimeStructs.RemoteClass* value)
|
||||
{
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
internal RuntimeClassHandle ProxyClass {
|
||||
get {
|
||||
unsafe {
|
||||
return new RuntimeClassHandle (value->proxy_class);
|
||||
}
|
||||
return new RuntimeClassHandle (value->proxy_class);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal struct RuntimeGenericParamInfoHandle {
|
||||
unsafe RuntimeStructs.GenericParamInfo* value;
|
||||
unsafe struct RuntimeGenericParamInfoHandle
|
||||
{
|
||||
RuntimeStructs.GenericParamInfo* value;
|
||||
|
||||
internal unsafe RuntimeGenericParamInfoHandle (RuntimeStructs.GenericParamInfo* value)
|
||||
internal RuntimeGenericParamInfoHandle (RuntimeStructs.GenericParamInfo* value)
|
||||
{
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
internal unsafe RuntimeGenericParamInfoHandle (IntPtr ptr)
|
||||
internal RuntimeGenericParamInfoHandle (IntPtr ptr)
|
||||
{
|
||||
this.value = (RuntimeStructs.GenericParamInfo*) ptr;
|
||||
}
|
||||
|
||||
internal Type[] Constraints => GetConstraints ();
|
||||
|
||||
internal Type[] Constraints { get { return GetConstraints (); } }
|
||||
internal GenericParameterAttributes Attributes => (GenericParameterAttributes) value->flags;
|
||||
|
||||
internal GenericParameterAttributes Attributes {
|
||||
get {
|
||||
unsafe {
|
||||
return (GenericParameterAttributes) value->flags;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Type[] GetConstraints () {
|
||||
Type[] GetConstraints ()
|
||||
{
|
||||
int n = GetConstraintsCount ();
|
||||
var a = new Type[n];
|
||||
var a = new Type [n];
|
||||
for (int i = 0; i < n; i++) {
|
||||
unsafe {
|
||||
RuntimeClassHandle c = new RuntimeClassHandle (value->constraints[i]);
|
||||
a[i] = Type.GetTypeFromHandle (c.GetTypeHandle ());
|
||||
}
|
||||
RuntimeClassHandle c = new RuntimeClassHandle (value->constraints[i]);
|
||||
a[i] = Type.GetTypeFromHandle (c.GetTypeHandle ());
|
||||
}
|
||||
|
||||
return a;
|
||||
}
|
||||
|
||||
int GetConstraintsCount () {
|
||||
int GetConstraintsCount ()
|
||||
{
|
||||
int i = 0;
|
||||
unsafe {
|
||||
RuntimeStructs.MonoClass** p = value->constraints;
|
||||
while (p != null && *p != null) {
|
||||
p++; i++;
|
||||
}
|
||||
RuntimeStructs.MonoClass** p = value->constraints;
|
||||
while (p != null && *p != null) {
|
||||
p++; i++;
|
||||
}
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
internal struct RuntimeEventHandle {
|
||||
internal struct RuntimeEventHandle
|
||||
{
|
||||
IntPtr value;
|
||||
|
||||
internal RuntimeEventHandle (IntPtr v)
|
||||
@@ -150,11 +138,7 @@ namespace Mono {
|
||||
value = v;
|
||||
}
|
||||
|
||||
public IntPtr Value {
|
||||
get {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
public IntPtr Value => value;
|
||||
|
||||
public override bool Equals (object obj)
|
||||
{
|
||||
@@ -185,7 +169,8 @@ namespace Mono {
|
||||
}
|
||||
}
|
||||
|
||||
internal struct RuntimePropertyHandle {
|
||||
internal struct RuntimePropertyHandle
|
||||
{
|
||||
IntPtr value;
|
||||
|
||||
internal RuntimePropertyHandle (IntPtr v)
|
||||
@@ -193,11 +178,7 @@ namespace Mono {
|
||||
value = v;
|
||||
}
|
||||
|
||||
public IntPtr Value {
|
||||
get {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
public IntPtr Value => value;
|
||||
|
||||
public override bool Equals (object obj)
|
||||
{
|
||||
@@ -228,47 +209,38 @@ namespace Mono {
|
||||
}
|
||||
}
|
||||
|
||||
internal struct RuntimeGPtrArrayHandle {
|
||||
unsafe RuntimeStructs.GPtrArray* value;
|
||||
unsafe struct RuntimeGPtrArrayHandle
|
||||
{
|
||||
RuntimeStructs.GPtrArray* value;
|
||||
|
||||
internal unsafe RuntimeGPtrArrayHandle (RuntimeStructs.GPtrArray* value)
|
||||
internal RuntimeGPtrArrayHandle (RuntimeStructs.GPtrArray* value)
|
||||
{
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
internal unsafe RuntimeGPtrArrayHandle (IntPtr ptr)
|
||||
internal RuntimeGPtrArrayHandle (IntPtr ptr)
|
||||
{
|
||||
this.value = (RuntimeStructs.GPtrArray*) ptr;
|
||||
}
|
||||
|
||||
internal int Length {
|
||||
get {
|
||||
unsafe {
|
||||
return value->len;
|
||||
}
|
||||
}
|
||||
}
|
||||
internal int Length => value->len;
|
||||
|
||||
internal IntPtr this[int i] => Lookup (i);
|
||||
internal IntPtr this [int i] => Lookup (i);
|
||||
|
||||
internal IntPtr Lookup (int i)
|
||||
{
|
||||
if (i >= 0 && i < Length) {
|
||||
unsafe {
|
||||
return value->data[i];
|
||||
}
|
||||
return value->data[i];
|
||||
} else
|
||||
throw new IndexOutOfRangeException ();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall)]
|
||||
unsafe extern static void GPtrArrayFree (RuntimeStructs.GPtrArray* value);
|
||||
extern static void GPtrArrayFree (RuntimeStructs.GPtrArray* value);
|
||||
|
||||
internal static void DestroyAndFree (ref RuntimeGPtrArrayHandle h) {
|
||||
unsafe {
|
||||
GPtrArrayFree (h.value);
|
||||
h.value = null;
|
||||
}
|
||||
GPtrArrayFree (h.value);
|
||||
h.value = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,7 +71,11 @@ namespace Mono {
|
||||
internal uint hash_alg;
|
||||
internal uint hash_len;
|
||||
internal uint flags;
|
||||
#if NETCORE
|
||||
internal int major, minor, build, revision;
|
||||
#else
|
||||
internal ushort major, minor, build, revision;
|
||||
#endif
|
||||
internal ushort arch;
|
||||
}
|
||||
|
||||
@@ -117,4 +121,11 @@ namespace Mono {
|
||||
public T4 Item4;
|
||||
public T5 Item5;
|
||||
}
|
||||
|
||||
internal class NullByRefReturnException : Exception
|
||||
{
|
||||
public NullByRefReturnException ()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +26,10 @@
|
||||
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
|
||||
// Disable unreachable code warnings in this entire file.
|
||||
#pragma warning disable 162
|
||||
|
||||
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Mono.Globalization.Unicode;
|
||||
@@ -33,16 +37,44 @@ using System.Threading;
|
||||
|
||||
namespace System.Globalization
|
||||
{
|
||||
interface ISimpleCollator
|
||||
{
|
||||
SortKey GetSortKey (string source, CompareOptions options);
|
||||
|
||||
int Compare (string s1, string s2);
|
||||
|
||||
int Compare (string s1, int idx1, int len1, string s2, int idx2, int len2, CompareOptions options);
|
||||
|
||||
bool IsPrefix (string src, string target, CompareOptions opt);
|
||||
|
||||
bool IsSuffix (string src, string target, CompareOptions opt);
|
||||
|
||||
int IndexOf (string s, string target, int start, int length, CompareOptions opt);
|
||||
|
||||
int IndexOf (string s, char target, int start, int length, CompareOptions opt);
|
||||
|
||||
int LastIndexOf (string s, string target, CompareOptions opt);
|
||||
|
||||
int LastIndexOf (string s, string target, int start, int length, CompareOptions opt);
|
||||
|
||||
int LastIndexOf (string s, char target, CompareOptions opt);
|
||||
|
||||
int LastIndexOf (string s, char target, int start, int length, CompareOptions opt);
|
||||
}
|
||||
|
||||
partial class CompareInfo
|
||||
{
|
||||
[NonSerialized]
|
||||
SimpleCollator collator;
|
||||
ISimpleCollator collator;
|
||||
|
||||
// Maps culture IDs to SimpleCollator objects
|
||||
static Dictionary<string, SimpleCollator> collators;
|
||||
static Dictionary<string, ISimpleCollator> collators;
|
||||
static bool managedCollation;
|
||||
static bool managedCollationChecked;
|
||||
|
||||
#if WASM
|
||||
const bool UseManagedCollation = false;
|
||||
#else
|
||||
static bool UseManagedCollation {
|
||||
get {
|
||||
if (!managedCollationChecked) {
|
||||
@@ -53,14 +85,18 @@ namespace System.Globalization
|
||||
return managedCollation;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
SimpleCollator GetCollator ()
|
||||
ISimpleCollator GetCollator ()
|
||||
{
|
||||
#if WASM
|
||||
return null;
|
||||
#else
|
||||
if (collator != null)
|
||||
return collator;
|
||||
|
||||
if (collators == null) {
|
||||
Interlocked.CompareExchange (ref collators, new Dictionary<string, SimpleCollator> (StringComparer.Ordinal), null);
|
||||
Interlocked.CompareExchange (ref collators, new Dictionary<string, ISimpleCollator> (StringComparer.Ordinal), null);
|
||||
}
|
||||
|
||||
lock (collators) {
|
||||
@@ -71,6 +107,7 @@ namespace System.Globalization
|
||||
}
|
||||
|
||||
return collator;
|
||||
#endif
|
||||
}
|
||||
|
||||
SortKey CreateSortKeyCore (string source, CompareOptions options)
|
||||
|
||||
@@ -624,7 +624,59 @@ namespace System.Globalization
|
||||
return false;
|
||||
}
|
||||
|
||||
internal void GetNFIValues (NumberFormatInfo nfi)
|
||||
// mono/metadta/culture-info.h NumberFormatEntryManaged must match
|
||||
// mcs/class/corlib/ReferenceSources/CultureData.cs NumberFormatEntryManaged.
|
||||
// This is sorted alphabetically.
|
||||
[StructLayout (LayoutKind.Sequential)]
|
||||
internal struct NumberFormatEntryManaged
|
||||
{
|
||||
internal int currency_decimal_digits;
|
||||
internal int currency_decimal_separator;
|
||||
internal int currency_group_separator;
|
||||
internal int currency_group_sizes0;
|
||||
internal int currency_group_sizes1;
|
||||
internal int currency_negative_pattern;
|
||||
internal int currency_positive_pattern;
|
||||
internal int currency_symbol;
|
||||
internal int nan_symbol;
|
||||
internal int negative_infinity_symbol;
|
||||
internal int negative_sign;
|
||||
internal int number_decimal_digits;
|
||||
internal int number_decimal_separator;
|
||||
internal int number_group_separator;
|
||||
internal int number_group_sizes0;
|
||||
internal int number_group_sizes1;
|
||||
internal int number_negative_pattern;
|
||||
internal int per_mille_symbol;
|
||||
internal int percent_negative_pattern;
|
||||
internal int percent_positive_pattern;
|
||||
internal int percent_symbol;
|
||||
internal int positive_infinity_symbol;
|
||||
internal int positive_sign;
|
||||
}
|
||||
|
||||
static private unsafe int strlen (byte* s)
|
||||
{
|
||||
int length = 0;
|
||||
while (s [length] != 0)
|
||||
++length;
|
||||
return length;
|
||||
}
|
||||
|
||||
static private unsafe string idx2string (byte* data, int idx)
|
||||
{
|
||||
return Encoding.UTF8.GetString (data + idx, strlen (data + idx));
|
||||
}
|
||||
|
||||
private int [] create_group_sizes_array (int gs0, int gs1)
|
||||
{
|
||||
// group_sizes is an array of up to two integers, -1 terminated.
|
||||
return (gs0 == -1) ? new int [ ] { }
|
||||
: (gs1 == -1) ? new int [ ] {gs0}
|
||||
: new int [ ] {gs0, gs1};
|
||||
}
|
||||
|
||||
internal unsafe void GetNFIValues (NumberFormatInfo nfi)
|
||||
{
|
||||
if (this.IsInvariantCulture)
|
||||
{
|
||||
@@ -641,7 +693,29 @@ namespace System.Globalization
|
||||
// PercentGroupSize
|
||||
// PercentGroupSeparator
|
||||
//
|
||||
fill_number_data (nfi, numberIndex);
|
||||
var nfe = new NumberFormatEntryManaged ();
|
||||
byte* data = fill_number_data (numberIndex, ref nfe);
|
||||
nfi.currencyGroupSizes = create_group_sizes_array (nfe.currency_group_sizes0, nfe.currency_group_sizes1);
|
||||
nfi.numberGroupSizes = create_group_sizes_array (nfe.number_group_sizes0, nfe.number_group_sizes1);
|
||||
nfi.NaNSymbol = idx2string (data, nfe.nan_symbol);
|
||||
nfi.currencyDecimalDigits = nfe.currency_decimal_digits;
|
||||
nfi.currencyDecimalSeparator = idx2string (data, nfe.currency_decimal_separator);
|
||||
nfi.currencyGroupSeparator = idx2string (data, nfe.currency_group_separator);
|
||||
nfi.currencyNegativePattern = nfe.currency_negative_pattern;
|
||||
nfi.currencyPositivePattern = nfe.currency_positive_pattern;
|
||||
nfi.currencySymbol = idx2string (data, nfe.currency_symbol);
|
||||
nfi.negativeInfinitySymbol = idx2string (data, nfe.negative_infinity_symbol);
|
||||
nfi.negativeSign = idx2string (data, nfe.negative_sign);
|
||||
nfi.numberDecimalDigits = nfe.number_decimal_digits;
|
||||
nfi.numberDecimalSeparator = idx2string (data, nfe.number_decimal_separator);
|
||||
nfi.numberGroupSeparator = idx2string (data, nfe.number_group_separator);
|
||||
nfi.numberNegativePattern = nfe.number_negative_pattern;
|
||||
nfi.perMilleSymbol = idx2string (data, nfe.per_mille_symbol);
|
||||
nfi.percentNegativePattern = nfe.percent_negative_pattern;
|
||||
nfi.percentPositivePattern = nfe.percent_positive_pattern;
|
||||
nfi.percentSymbol = idx2string (data, nfe.percent_symbol);
|
||||
nfi.positiveInfinitySymbol = idx2string (data, nfe.positive_infinity_symbol);
|
||||
nfi.positiveSign = idx2string (data, nfe.positive_sign);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -654,6 +728,6 @@ namespace System.Globalization
|
||||
}
|
||||
|
||||
[MethodImplAttribute (MethodImplOptions.InternalCall)]
|
||||
extern static void fill_number_data (NumberFormatInfo nfi, int numberIndex);
|
||||
extern unsafe static byte* fill_number_data (int index, ref NumberFormatEntryManaged nfe);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,5 +17,13 @@ namespace System.Runtime.CompilerServices {
|
||||
{
|
||||
return Array.UnsafeMov<T, long> (val);
|
||||
}
|
||||
|
||||
#if NETCORE
|
||||
[Intrinsic]
|
||||
internal static bool EnumEquals<T>(T x, T y) where T : struct, Enum => throw new NotImplementedException ();
|
||||
|
||||
[Intrinsic]
|
||||
internal static int EnumCompareTo<T>(T x, T y) where T : struct, Enum => throw new NotImplementedException ();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -95,19 +95,18 @@ namespace System
|
||||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||||
extern ConstructorInfo GetCorrespondingInflatedConstructor (ConstructorInfo generic);
|
||||
|
||||
#if !NETCORE
|
||||
internal override MethodInfo GetMethod (MethodInfo fromNoninstanciated)
|
||||
{
|
||||
{
|
||||
if (fromNoninstanciated == null)
|
||||
throw new ArgumentNullException ("fromNoninstanciated");
|
||||
return GetCorrespondingInflatedMethod (fromNoninstanciated);
|
||||
}
|
||||
return GetCorrespondingInflatedMethod (fromNoninstanciated);
|
||||
}
|
||||
|
||||
internal override ConstructorInfo GetConstructor (ConstructorInfo fromNoninstanciated)
|
||||
{
|
||||
if (fromNoninstanciated == null)
|
||||
throw new ArgumentNullException ("fromNoninstanciated");
|
||||
return GetCorrespondingInflatedConstructor (fromNoninstanciated);
|
||||
return GetCorrespondingInflatedConstructor (fromNoninstanciated);
|
||||
}
|
||||
|
||||
internal override FieldInfo GetField (FieldInfo fromNoninstanciated)
|
||||
@@ -117,7 +116,6 @@ namespace System
|
||||
flags |= fromNoninstanciated.IsPublic ? BindingFlags.Public : BindingFlags.NonPublic;
|
||||
return GetField (fromNoninstanciated.Name, flags);
|
||||
}
|
||||
#endif
|
||||
|
||||
string GetDefaultMemberName ()
|
||||
{
|
||||
@@ -142,7 +140,7 @@ namespace System
|
||||
return m_serializationCtor;
|
||||
}
|
||||
|
||||
internal Object CreateInstanceSlow(bool publicOnly, bool wrapExceptions, bool skipCheckThis, bool fillCache, ref StackCrawlMark stackMark)
|
||||
internal Object CreateInstanceSlow(bool publicOnly, bool wrapExceptions, bool skipCheckThis, bool fillCache)
|
||||
{
|
||||
//bool bNeedSecurityCheck = true;
|
||||
//bool bCanBeCached = false;
|
||||
@@ -161,7 +159,11 @@ namespace System
|
||||
{
|
||||
var ctor = GetDefaultConstructor ();
|
||||
if (!nonPublic && ctor != null && !ctor.IsPublic) {
|
||||
#if NETCORE
|
||||
throw new MissingMethodException(SR.Format(SR.Arg_NoDefCTor, FullName));
|
||||
#else
|
||||
ctor = null;
|
||||
#endif
|
||||
}
|
||||
|
||||
if (ctor == null) {
|
||||
@@ -431,7 +433,7 @@ namespace System
|
||||
public override StructLayoutAttribute StructLayoutAttribute {
|
||||
get {
|
||||
#if NETCORE
|
||||
throw new NotImplementedException ();
|
||||
return GetStructLayoutAttribute ();
|
||||
#else
|
||||
return StructLayoutAttribute.GetCustomAttribute (this);
|
||||
#endif
|
||||
@@ -697,11 +699,7 @@ namespace System
|
||||
var a = new RuntimeFieldInfo[n];
|
||||
for (int i = 0; i < n; i++) {
|
||||
var fh = new RuntimeFieldHandle (h[i]);
|
||||
#if NETCORE
|
||||
throw new NotImplementedException ();
|
||||
#else
|
||||
a[i] = (RuntimeFieldInfo) FieldInfo.GetFieldFromHandle (fh, refh);
|
||||
#endif
|
||||
}
|
||||
return a;
|
||||
}
|
||||
@@ -717,7 +715,7 @@ namespace System
|
||||
for (int i = 0; i < n; i++) {
|
||||
var eh = new Mono.RuntimeEventHandle (h[i]);
|
||||
#if NETCORE
|
||||
throw new NotImplementedException ();
|
||||
a[i] = (RuntimeEventInfo) RuntimeEventInfo.GetEventFromHandle (eh, refh);
|
||||
#else
|
||||
a[i] = (RuntimeEventInfo) EventInfo.GetEventFromHandle (eh, refh);
|
||||
#endif
|
||||
@@ -736,7 +734,8 @@ namespace System
|
||||
{
|
||||
string internalName = null;
|
||||
#if NETCORE
|
||||
throw new NotImplementedException ();
|
||||
if (displayName != null)
|
||||
internalName = displayName;
|
||||
#else
|
||||
if (displayName != null)
|
||||
internalName = TypeIdentifiers.FromDisplay (displayName).InternalName;
|
||||
@@ -774,7 +773,19 @@ namespace System
|
||||
get;
|
||||
}
|
||||
|
||||
#if MOBILE
|
||||
#if NETCORE
|
||||
public override bool IsSecurityTransparent {
|
||||
get { return false; }
|
||||
}
|
||||
|
||||
public override bool IsSecurityCritical {
|
||||
get { return true; }
|
||||
}
|
||||
|
||||
public override bool IsSecuritySafeCritical {
|
||||
get { return false; }
|
||||
}
|
||||
#elif MOBILE
|
||||
static int get_core_clr_security_level ()
|
||||
{
|
||||
return 1;
|
||||
@@ -797,6 +808,7 @@ namespace System
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !NETCORE
|
||||
public override int GetHashCode()
|
||||
{
|
||||
Type t = UnderlyingSystemType;
|
||||
@@ -804,6 +816,7 @@ namespace System
|
||||
return t.GetHashCode ();
|
||||
return (int)_impl.Value;
|
||||
}
|
||||
#endif
|
||||
|
||||
public override string FullName {
|
||||
get {
|
||||
@@ -822,9 +835,7 @@ namespace System
|
||||
}
|
||||
}
|
||||
|
||||
#if !NETCORE
|
||||
public sealed override bool HasSameMetadataDefinitionAs (MemberInfo other) => HasSameMetadataDefinitionAsCore<RuntimeType> (other);
|
||||
#endif
|
||||
|
||||
public override bool IsSZArray {
|
||||
get {
|
||||
@@ -833,13 +844,11 @@ namespace System
|
||||
}
|
||||
}
|
||||
|
||||
#if !NETCORE
|
||||
internal override bool IsUserType {
|
||||
get {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
[System.Runtime.InteropServices.ComVisible(true)]
|
||||
[Pure]
|
||||
@@ -862,5 +871,44 @@ namespace System
|
||||
}
|
||||
|
||||
public override bool IsTypeDefinition => RuntimeTypeHandle.IsTypeDefinition (this);
|
||||
|
||||
#if NETCORE
|
||||
private const int DEFAULT_PACKING_SIZE = 8;
|
||||
|
||||
internal StructLayoutAttribute GetStructLayoutAttribute ()
|
||||
{
|
||||
if (IsInterface || HasElementType || IsGenericParameter)
|
||||
return null;
|
||||
|
||||
int pack = 0, size = 0;
|
||||
LayoutKind layoutKind = LayoutKind.Auto;
|
||||
switch (Attributes & TypeAttributes.LayoutMask)
|
||||
{
|
||||
case TypeAttributes.ExplicitLayout: layoutKind = LayoutKind.Explicit; break;
|
||||
case TypeAttributes.AutoLayout: layoutKind = LayoutKind.Auto; break;
|
||||
case TypeAttributes.SequentialLayout: layoutKind = LayoutKind.Sequential; break;
|
||||
default: Contract.Assume(false); break;
|
||||
}
|
||||
|
||||
CharSet charSet = CharSet.None;
|
||||
switch (Attributes & TypeAttributes.StringFormatMask)
|
||||
{
|
||||
case TypeAttributes.AnsiClass: charSet = CharSet.Ansi; break;
|
||||
case TypeAttributes.AutoClass: charSet = CharSet.Auto; break;
|
||||
case TypeAttributes.UnicodeClass: charSet = CharSet.Unicode; break;
|
||||
default: Contract.Assume(false); break;
|
||||
}
|
||||
|
||||
GetPacking (out pack, out size);
|
||||
|
||||
// Metadata parameter checking should not have allowed 0 for packing size.
|
||||
// The runtime later converts a packing size of 0 to 8 so do the same here
|
||||
// because it's more useful from a user perspective.
|
||||
if (pack == 0)
|
||||
pack = DEFAULT_PACKING_SIZE;
|
||||
|
||||
return new StructLayoutAttribute (layoutKind) { Pack = pack, Size = size, CharSet = charSet };
|
||||
}
|
||||
#endif // NETCORE
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,9 +28,9 @@
|
||||
|
||||
namespace System.Diagnostics.Tracing
|
||||
{
|
||||
public class EventCounter : IDisposable
|
||||
public class EventCounter : DiagnosticCounter
|
||||
{
|
||||
public EventCounter (string name, EventSource eventSource)
|
||||
public EventCounter (string name, EventSource eventSource) : base (name, eventSource)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace System.Diagnostics.Tracing
|
||||
{
|
||||
}
|
||||
|
||||
public void Dispose ()
|
||||
public void WriteMetric (double value)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
@@ -174,6 +174,10 @@ namespace System.Diagnostics.Tracing
|
||||
{
|
||||
}
|
||||
|
||||
internal void ReportOutOfBandMessage (string msg, bool flush)
|
||||
{
|
||||
}
|
||||
|
||||
protected void WriteEvent (int eventId)
|
||||
{
|
||||
WriteEvent (eventId, new object[] { } );
|
||||
|
||||
@@ -54,6 +54,18 @@ namespace System.Diagnostics.Tracing
|
||||
internal set;
|
||||
}
|
||||
|
||||
public long OSThreadId
|
||||
{
|
||||
get;
|
||||
internal set;
|
||||
}
|
||||
|
||||
public DateTime TimeStamp
|
||||
{
|
||||
get;
|
||||
internal set;
|
||||
}
|
||||
|
||||
public string EventName
|
||||
{
|
||||
get;
|
||||
|
||||
@@ -40,7 +40,6 @@ namespace System.Diagnostics
|
||||
/// Enables communication with a debugger.
|
||||
/// </summary>
|
||||
[ComVisible (true)]
|
||||
[MonoTODO ("The Debugger class is not functional")]
|
||||
public sealed class Debugger
|
||||
{
|
||||
|
||||
@@ -83,7 +82,6 @@ namespace System.Diagnostics
|
||||
/// <summary>
|
||||
/// Launches and attaches a debugger to the process.
|
||||
/// </summary>
|
||||
[MonoTODO ("Not implemented")]
|
||||
public static bool Launch()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
|
||||
@@ -202,9 +202,9 @@ namespace System.Diagnostics {
|
||||
static string GetAotId ()
|
||||
{
|
||||
if (!isAotidSet) {
|
||||
aotid = Assembly.GetAotId ();
|
||||
if (aotid != null)
|
||||
aotid = new Guid (aotid).ToString ("N");
|
||||
var arr = RuntimeAssembly.GetAotId ();
|
||||
if (arr != null)
|
||||
aotid = new Guid (arr).ToString ("N");
|
||||
isAotidSet = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -555,7 +555,11 @@ namespace System.Globalization
|
||||
if (!constructed) Construct ();
|
||||
CheckNeutral ();
|
||||
|
||||
var temp = new DateTimeFormatInfo (m_cultureData, Calendar);
|
||||
DateTimeFormatInfo temp;
|
||||
if (GlobalizationMode.Invariant)
|
||||
temp = new DateTimeFormatInfo();
|
||||
else
|
||||
temp = new DateTimeFormatInfo(m_cultureData, Calendar);
|
||||
temp._isReadOnly = m_isReadOnly;
|
||||
System.Threading.Thread.MemoryBarrier();
|
||||
dateTimeInfo = temp;
|
||||
|
||||
@@ -144,7 +144,7 @@ namespace System.IO.IsolatedStorage {
|
||||
}
|
||||
|
||||
// Methods
|
||||
protected abstract IsolatedStoragePermission GetPermission (PermissionSet ps);
|
||||
protected virtual IsolatedStoragePermission GetPermission (PermissionSet ps) => null;
|
||||
|
||||
protected void InitStore (IsolatedStorageScope scope, Type domainEvidenceType, Type assemblyEvidenceType)
|
||||
{
|
||||
|
||||
@@ -55,11 +55,11 @@ namespace System.IO {
|
||||
}
|
||||
|
||||
DriveInfo [] drives = GetDrives ();
|
||||
Array.Sort (drives, (DriveInfo di1, DriveInfo di2) => String.Compare (di2.path, di1.path, true));
|
||||
foreach (DriveInfo d in drives){
|
||||
if (d.path == driveName){
|
||||
if (driveName.StartsWith (d.path, StringComparison.OrdinalIgnoreCase)){
|
||||
this.path = d.path;
|
||||
this.drive_format = d.drive_format;
|
||||
this.path = d.path;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user