Imported Upstream version 6.8.0.73

Former-commit-id: d18deab1b47cfd3ad8cba82b3f37d00eec2170af
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2019-12-10 18:00:56 +00:00
parent bceda29824
commit 73ee7591e8
1043 changed files with 16271 additions and 22080 deletions

View File

@@ -37,11 +37,13 @@ RESX_RESOURCE_STRING = \
../../../external/corefx/src/System.Collections.NonGeneric/src/Resources/Strings.resx \
../../../external/corefx/src/System.ComponentModel.TypeConverter/src/Resources/Strings.resx \
../../../external/corefx/src/System.Buffers/src/Resources/Strings.resx \
../../../external/corefx/src/System.IO.FileSystem/src/Resources/Strings.resx \
../../../external/corefx/src/System.IO.FileSystem.Watcher/src/Resources/Strings.resx \
../../../external/corefx/src/System.IO.Ports/src/Resources/Strings.resx \
../../../external/corefx/src/System.Memory/src/Resources/Strings.resx \
../../../external/corefx/src/System.Net.HttpListener/src/Resources/Strings.resx \
../../../external/corefx/src/System.Net.Requests/src/Resources/Strings.resx \
../../../external/corefx/src/System.Net.Sockets/src/Resources/Strings.resx \
../../../external/corefx/src/System.Net.Http/src/Resources/Strings.resx \
../../../external/corefx/src/System.Numerics.Vectors/src/Resources/Strings.resx \
../../../external/corefx/src/System.Reflection.TypeExtensions/src/Resources/Strings.resx \

View File

@@ -81,6 +81,8 @@ namespace Mono {
return true;
}
static object exception_capture = new object ();
[MethodImplAttribute (MethodImplOptions.InternalCall)]
static extern string ExceptionToState_internal (Exception exc, out ulong portable_hash, out ulong unportable_hash);
@@ -143,8 +145,11 @@ namespace Mono {
{
ulong portable_hash;
ulong unportable_hash;
string payload_str = ExceptionToState_internal (exc, out portable_hash, out unportable_hash);
SendMicrosoftTelemetry (payload_str, portable_hash, unportable_hash);
lock (exception_capture)
{
string payload_str = ExceptionToState_internal (exc, out portable_hash, out unportable_hash);
SendMicrosoftTelemetry (payload_str, portable_hash, unportable_hash);
}
}
// All must be set except for configDir_str

View File

@@ -93,7 +93,7 @@ namespace System
dst += int.MaxValue;
}
memcpy1 (dst, src, (int) sourceBytesToCopy);
Memcpy (dst, src, (int) sourceBytesToCopy);
}
[CLSCompliantAttribute (false)]

View File

@@ -34,10 +34,40 @@ using StackCrawlMark = System.Threading.StackCrawlMark;
namespace System
{
[Serializable]
#if !MOBILE
[ComVisible (true)]
[ComDefaultInterfaceAttribute (typeof (_Type))]
[ClassInterface(ClassInterfaceType.None)]
partial class Type : MemberInfo, _Type
#else
partial class Type : MemberInfo
#endif
{
internal RuntimeTypeHandle _impl;
#if !MOBILE
void _Type.GetIDsOfNames ([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId)
{
throw new NotImplementedException ();
}
void _Type.GetTypeInfo (uint iTInfo, uint lcid, IntPtr ppTInfo)
{
throw new NotImplementedException ();
}
void _Type.GetTypeInfoCount (out uint pcTInfo)
{
throw new NotImplementedException ();
}
void _Type.Invoke (uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams,
IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr)
{
throw new NotImplementedException ();
}
#endif
internal virtual Type InternalResolve ()
{
return UnderlyingSystemType;

View File

@@ -75,8 +75,8 @@ namespace System.IO
ERROR_SHARING_BUFFER_EXCEEDED = 36,
ERROR_HANDLE_EOF = 38,
*/ ERROR_HANDLE_DISK_FULL = 39,
ERROR_NOT_SUPPORTED = 50,
/* ERROR_REM_NOT_LIST = 51,
ERROR_NOT_SUPPORTED = 50,
/* ERROR_REM_NOT_LIST = 51,
ERROR_DUP_NAME = 52,
ERROR_BAD_NETPATH = 53,
ERROR_NETWORK_BUSY = 54,

View File

@@ -734,7 +734,7 @@ namespace System.IO {
if (Environment.IsRunningOnWindows)
dirs[i] = dirs[i].TrimEnd ();
if (dirs[i] == "." || (i != 0 && dirs[i].Length == 0))
if ((!(isUnc && i == 2) && dirs[i] == ".") || (i != 0 && dirs[i].Length == 0))
continue;
else if (dirs[i] == "..") {
// don't overwrite path segments below the limit

View File

@@ -0,0 +1,66 @@
//
// 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.InteropServices;
namespace System.Reflection {
[Serializable]
#if !MOBILE
[ComVisible(true)]
[ComDefaultInterface(typeof(_MethodInfo))]
[ClassInterface(ClassInterfaceType.None)]
partial class MethodInfo : _MethodInfo
#else
partial class MethodInfo
#endif
{
#if !MOBILE
void _MethodInfo.GetIDsOfNames ([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId)
{
throw new NotImplementedException ();
}
void _MethodInfo.GetTypeInfo (uint iTInfo, uint lcid, IntPtr ppTInfo)
{
throw new NotImplementedException ();
}
void _MethodInfo.GetTypeInfoCount (out uint pcTInfo)
{
throw new NotImplementedException ();
}
void _MethodInfo.Invoke (uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams,
IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr)
{
throw new NotImplementedException ();
}
Type _MethodInfo.GetType ()
{
return GetType ();
}
#endif
internal virtual int GenericParameterCount => GetGenericArguments ().Length;
}
}

View File

@@ -1936,9 +1936,8 @@ namespace System.Runtime.InteropServices
return GetFunctionPointerForDelegateInternal ((Delegate)(object)d);
}
internal static void SetLastWin32Error (int error)
{
}
[MethodImplAttribute(MethodImplOptions.InternalCall)]
internal static extern void SetLastWin32Error (int error);
#if NETCORE
internal static IntPtr AllocBSTR (int length)

View File

@@ -20,81 +20,48 @@ namespace System.Runtime.InteropServices
[ComVisible (true)]
public interface _MethodInfo
{
bool Equals (object other);
MethodInfo GetBaseDefinition();
object[] GetCustomAttributes (bool inherit);
object[] GetCustomAttributes (Type attributeType, bool inherit);
int GetHashCode ();
MethodImplAttributes GetMethodImplementationFlags ();
ParameterInfo[] GetParameters ();
void GetIDsOfNames ([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void GetTypeInfo (uint iTInfo, uint lcid, IntPtr ppTInfo);
void GetTypeInfoCount (out uint pcTInfo);
void Invoke (uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams,
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
void GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams,
IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
Type GetType ();
String ToString();
bool Equals(Object other);
int GetHashCode();
Type GetType();
object Invoke (object obj, object[] parameters);
object Invoke (object obj, BindingFlags invokeAttr, Binder binder, object[] parameters, CultureInfo culture);
MemberTypes MemberType { get; }
String Name { get; }
Type DeclaringType { get; }
Type ReflectedType { get; }
Object[] GetCustomAttributes(Type attributeType, bool inherit);
Object[] GetCustomAttributes(bool inherit);
bool IsDefined(Type attributeType, bool inherit);
string ToString ();
MethodAttributes Attributes {get;}
ParameterInfo[] GetParameters();
MethodImplAttributes GetMethodImplementationFlags();
RuntimeMethodHandle MethodHandle { get; }
MethodAttributes Attributes { get; }
CallingConventions CallingConvention { get; }
Object Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture);
bool IsPublic { get; }
bool IsPrivate { get; }
bool IsFamily { get; }
bool IsAssembly { get; }
bool IsFamilyAndAssembly { get; }
bool IsFamilyOrAssembly { get; }
bool IsStatic { get; }
bool IsFinal { get; }
bool IsVirtual { get; }
bool IsHideBySig { get; }
bool IsAbstract { get; }
bool IsSpecialName { get; }
bool IsConstructor { get; }
Object Invoke(Object obj, Object[] parameters);
CallingConventions CallingConvention {get;}
Type DeclaringType {get;}
bool IsAbstract {get;}
bool IsAssembly {get;}
bool IsConstructor {get;}
bool IsFamily {get;}
bool IsFamilyAndAssembly {get;}
bool IsFamilyOrAssembly {get;}
bool IsFinal {get;}
bool IsHideBySig {get;}
bool IsPrivate {get;}
bool IsPublic {get;}
bool IsSpecialName {get;}
bool IsStatic {get;}
bool IsVirtual {get;}
MemberTypes MemberType {get;}
RuntimeMethodHandle MethodHandle {get;}
string Name {get;}
Type ReflectedType {get;}
Type ReturnType {get;}
ICustomAttributeProvider ReturnTypeCustomAttributes {get;}
Type ReturnType { get; }
ICustomAttributeProvider ReturnTypeCustomAttributes { get; }
MethodInfo GetBaseDefinition();
}
}

View File

@@ -20,229 +20,125 @@ namespace System.Runtime.InteropServices
[ComVisible (true)]
public interface _Type
{
bool Equals (object other);
bool Equals (Type o);
Type[] FindInterfaces (TypeFilter filter, object filterCriteria);
MemberInfo[] FindMembers (MemberTypes memberType, BindingFlags bindingAttr, MemberFilter filter, object filterCriteria);
int GetArrayRank ();
ConstructorInfo GetConstructor (Type[] types);
ConstructorInfo GetConstructor (BindingFlags bindingAttr, Binder binder, Type[] types, ParameterModifier[] modifiers);
ConstructorInfo GetConstructor (BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers);
ConstructorInfo[] GetConstructors ();
ConstructorInfo[] GetConstructors (BindingFlags bindingAttr);
object[] GetCustomAttributes (bool inherit);
object[] GetCustomAttributes (Type attributeType, bool inherit);
MemberInfo[] GetDefaultMembers ();
Type GetElementType ();
EventInfo GetEvent (string name);
EventInfo GetEvent (string name, BindingFlags bindingAttr);
EventInfo[] GetEvents ();
EventInfo[] GetEvents (BindingFlags bindingAttr);
FieldInfo GetField (string name);
FieldInfo GetField (string name, BindingFlags bindingAttr);
FieldInfo[] GetFields ();
FieldInfo[] GetFields (BindingFlags bindingAttr);
int GetHashCode ();
void GetIDsOfNames ([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void GetTypeInfo (uint iTInfo, uint lcid, IntPtr ppTInfo);
void GetTypeInfoCount (out uint pcTInfo);
void Invoke (uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams,
IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
Type GetInterface (string name);
Type GetInterface (string name, bool ignoreCase);
InterfaceMapping GetInterfaceMap (Type interfaceType);
Type[] GetInterfaces ();
MemberInfo[] GetMember (string name);
MemberInfo[] GetMember (string name, MemberTypes type, BindingFlags bindingAttr);
MemberInfo[] GetMember (string name, BindingFlags bindingAttr);
MemberInfo[] GetMembers ();
MemberInfo[] GetMembers (BindingFlags bindingAttr);
MethodInfo GetMethod (string name);
MethodInfo GetMethod (string name, BindingFlags bindingAttr);
MethodInfo GetMethod (string name, Type[] types);
MethodInfo GetMethod (string name, Type[] types, ParameterModifier[] modifiers);
MethodInfo GetMethod (string name, BindingFlags bindingAttr, Binder binder, Type[] types, ParameterModifier[] modifiers);
MethodInfo GetMethod (string name, BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers);
MethodInfo[] GetMethods ();
MethodInfo[] GetMethods (BindingFlags bindingAttr);
Type GetNestedType (string name);
Type GetNestedType (string name, BindingFlags bindingAttr);
Type[] GetNestedTypes ();
Type[] GetNestedTypes (BindingFlags bindingAttr);
PropertyInfo[] GetProperties ();
PropertyInfo[] GetProperties (BindingFlags bindingAttr);
PropertyInfo GetProperty (string name);
PropertyInfo GetProperty (string name, BindingFlags bindingAttr);
PropertyInfo GetProperty (string name, Type returnType);
PropertyInfo GetProperty (string name, Type[] types);
PropertyInfo GetProperty (string name, Type returnType, Type[] types);
PropertyInfo GetProperty (string name, Type returnType, Type[] types, ParameterModifier[] modifiers);
PropertyInfo GetProperty (string name, BindingFlags bindingAttr, Binder binder, Type returnType, Type[] types, ParameterModifier[] modifiers);
Type GetType ();
object InvokeMember (string name, BindingFlags invokeAttr, Binder binder, object target, object[] args);
object InvokeMember (string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, CultureInfo culture);
object InvokeMember (string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParameters);
bool IsAssignableFrom (Type c);
bool IsDefined (Type attributeType, bool inherit);
bool IsInstanceOfType (object o);
bool IsSubclassOf (Type c);
string ToString ();
Assembly Assembly {get;}
string AssemblyQualifiedName {get;}
TypeAttributes Attributes {get;}
Type BaseType {get;}
Type DeclaringType {get;}
string FullName {get;}
Guid GUID {get;}
bool HasElementType {get;}
bool IsAbstract {get;}
bool IsAnsiClass {get;}
bool IsArray {get;}
bool IsAutoClass {get;}
bool IsAutoLayout {get;}
bool IsByRef {get;}
bool IsClass {get;}
bool IsCOMObject {get;}
bool IsContextful {get;}
bool IsEnum {get;}
bool IsExplicitLayout {get;}
bool IsImport {get;}
bool IsInterface {get;}
bool IsLayoutSequential {get;}
bool IsMarshalByRef {get;}
bool IsNestedAssembly {get;}
bool IsNestedFamANDAssem {get;}
bool IsNestedFamily {get;}
bool IsNestedFamORAssem {get;}
bool IsNestedPrivate {get;}
bool IsNestedPublic {get;}
bool IsNotPublic {get;}
bool IsPointer {get;}
bool IsPrimitive {get;}
bool IsPublic {get;}
bool IsSealed {get;}
bool IsSerializable {get;}
bool IsSpecialName {get;}
bool IsUnicodeClass {get;}
bool IsValueType {get;}
MemberTypes MemberType {get;}
Module Module {get;}
string Name {get;}
string Namespace {get;}
Type ReflectedType {get;}
RuntimeTypeHandle TypeHandle {get;}
ConstructorInfo TypeInitializer {get;}
Type UnderlyingSystemType {get;}
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
void GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult,
IntPtr pExcepInfo, IntPtr puArgErr);
String ToString();
bool Equals(Object other);
int GetHashCode();
Type GetType();
MemberTypes MemberType { get; }
String Name { get; }
Type DeclaringType { get; }
Type ReflectedType { get; }
Object[] GetCustomAttributes(Type attributeType, bool inherit);
Object[] GetCustomAttributes(bool inherit);
bool IsDefined(Type attributeType, bool inherit);
Guid GUID { get; }
Module Module { get; }
Assembly Assembly { get; }
RuntimeTypeHandle TypeHandle { get; }
String FullName { get; }
String Namespace { get; }
String AssemblyQualifiedName { get; }
int GetArrayRank();
Type BaseType { get; }
ConstructorInfo[] GetConstructors(BindingFlags bindingAttr);
Type GetInterface(String name, bool ignoreCase);
Type[] GetInterfaces();
Type[] FindInterfaces(TypeFilter filter,Object filterCriteria);
EventInfo GetEvent(String name,BindingFlags bindingAttr);
EventInfo[] GetEvents();
EventInfo[] GetEvents(BindingFlags bindingAttr);
Type[] GetNestedTypes(BindingFlags bindingAttr);
Type GetNestedType(String name, BindingFlags bindingAttr);
MemberInfo[] GetMember(String name, MemberTypes type, BindingFlags bindingAttr);
MemberInfo[] GetDefaultMembers();
MemberInfo[] FindMembers(MemberTypes memberType,BindingFlags bindingAttr,MemberFilter filter,Object filterCriteria);
Type GetElementType();
bool IsSubclassOf(Type c);
bool IsInstanceOfType(Object o);
bool IsAssignableFrom(Type c);
InterfaceMapping GetInterfaceMap(Type interfaceType);
MethodInfo GetMethod(String name, BindingFlags bindingAttr, Binder binder, Type[] types, ParameterModifier[] modifiers);
MethodInfo GetMethod(String name, BindingFlags bindingAttr);
MethodInfo[] GetMethods(BindingFlags bindingAttr);
FieldInfo GetField(String name, BindingFlags bindingAttr);
FieldInfo[] GetFields(BindingFlags bindingAttr);
PropertyInfo GetProperty(String name, BindingFlags bindingAttr);
PropertyInfo GetProperty(String name,BindingFlags bindingAttr,Binder binder, Type returnType, Type[] types, ParameterModifier[] modifiers);
PropertyInfo[] GetProperties(BindingFlags bindingAttr);
MemberInfo[] GetMember(String name, BindingFlags bindingAttr);
MemberInfo[] GetMembers(BindingFlags bindingAttr);
Object InvokeMember(String name, BindingFlags invokeAttr, Binder binder, Object target, Object[] args, ParameterModifier[] modifiers,
CultureInfo culture, String[] namedParameters);
Type UnderlyingSystemType { get; }
Object InvokeMember(String name,BindingFlags invokeAttr,Binder binder, Object target, Object[] args, CultureInfo culture);
Object InvokeMember(String name,BindingFlags invokeAttr,Binder binder, Object target, Object[] args);
ConstructorInfo GetConstructor(BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers);
ConstructorInfo GetConstructor(BindingFlags bindingAttr, Binder binder, Type[] types, ParameterModifier[] modifiers);
ConstructorInfo GetConstructor(Type[] types);
ConstructorInfo[] GetConstructors();
ConstructorInfo TypeInitializer{ get; }
MethodInfo GetMethod(String name, BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers);
MethodInfo GetMethod(String name, Type[] types, ParameterModifier[] modifiers);
MethodInfo GetMethod(String name, Type[] types);
MethodInfo GetMethod(String name);
MethodInfo[] GetMethods();
FieldInfo GetField(String name);
FieldInfo[] GetFields();
Type GetInterface(String name);
EventInfo GetEvent(String name);
PropertyInfo GetProperty(String name, Type returnType, Type[] types,ParameterModifier[] modifiers);
PropertyInfo GetProperty(String name, Type returnType, Type[] types);
PropertyInfo GetProperty(String name, Type[] types);
PropertyInfo GetProperty(String name, Type returnType);
PropertyInfo GetProperty(String name);
PropertyInfo[] GetProperties();
Type[] GetNestedTypes();
Type GetNestedType(String name);
MemberInfo[] GetMember(String name);
MemberInfo[] GetMembers();
TypeAttributes Attributes { get; }
bool IsNotPublic { get; }
bool IsPublic { get; }
bool IsNestedPublic { get; }
bool IsNestedPrivate { get; }
bool IsNestedFamily { get; }
bool IsNestedAssembly { get; }
bool IsNestedFamANDAssem { get; }
bool IsNestedFamORAssem { get; }
bool IsAutoLayout { get; }
bool IsLayoutSequential { get; }
bool IsExplicitLayout { get; }
bool IsClass { get; }
bool IsInterface { get; }
bool IsValueType { get; }
bool IsAbstract { get; }
bool IsSealed { get; }
bool IsEnum { get; }
bool IsSpecialName { get; }
bool IsImport { get; }
bool IsSerializable { get; }
bool IsAnsiClass { get; }
bool IsUnicodeClass { get; }
bool IsAutoClass { get; }
bool IsArray { get; }
bool IsByRef { get; }
bool IsPointer { get; }
bool IsPrimitive { get; }
bool IsCOMObject { get; }
bool HasElementType { get; }
bool IsContextful { get; }
bool IsMarshalByRef { get; }
bool Equals(Type o);
}
}

View File

@@ -197,7 +197,7 @@ namespace System.Security.Permissions {
if (x == 42) {
// special case for wildcards (*)
// must be alone or first and followed by a dot
if ((s.Length > 1) && ((s [i + 1] != '.') || (i > 0)))
if ((s.Length > 1) && ((i > 0) || (s [i + 1] != '.')))
return false;
}
if (!valid [x - 33]) {

View File

@@ -35,34 +35,25 @@ namespace System.Security.Policy {
[ComVisible (true)]
public sealed class ApplicationTrustEnumerator : IEnumerator {
private IEnumerator e;
ApplicationTrustCollection trusts;
int current;
internal ApplicationTrustEnumerator (ApplicationTrustCollection collection)
{
e = collection.GetEnumerator ();
internal ApplicationTrustEnumerator (ApplicationTrustCollection atc) {
trusts = atc;
current = -1;
}
// properties
public ApplicationTrust Current => trusts [current];
public ApplicationTrust Current {
get { return (ApplicationTrust) e.Current; }
}
object IEnumerator.Current => (object) trusts [current];
object IEnumerator.Current {
get { return e.Current; }
}
public void Reset () => current = -1;
// methods
public bool MoveNext ()
{
return e.MoveNext ();
}
public void Reset ()
{
e.Reset ();
public bool MoveNext () {
if (current == ((int) trusts.Count - 1))
return false;
current++;
return true;
}
}
}

View File

@@ -48,9 +48,29 @@ namespace System.Threading
[MethodImplAttribute(MethodImplOptions.InternalCall)]
internal extern static int CompareExchange(ref int location1, int value, int comparand, ref bool succeeded);
[ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
[ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
public extern static object CompareExchange(ref object location1, object value, object comparand);
extern static void CompareExchange (ref object location1, ref object value, ref object comparand, ref object result);
[ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
public static object CompareExchange (ref object location1, object value, object comparand)
{
// This avoids coop handles, esp. on the output which would be particularly inefficient.
// Passing everything by ref is equivalent to coop handles -- ref to locals at least.
//
// location1's treatment is unclear. But note that passing it by handle would be incorrect,
// as it would use a local alias, which the coop marshaling does, to avoid the unclarity here,
// that of a ref being to a managed frame vs. a native frame. Perhaps that could be revisited.
//
// So there a hole here, that of calling this function with location1 being in a native frame.
// Usually it will be to a field, static or not, and not even to managed stack.
//
// This is usually intrinsified. Ideally it is always intrinisified.
//
object result = null;
CompareExchange (ref location1, ref value, ref comparand, ref result);
return result;
}
[MethodImplAttribute(MethodImplOptions.InternalCall)]
public extern static float CompareExchange(ref float location1, float value, float comparand);
@@ -74,9 +94,19 @@ namespace System.Threading
[MethodImplAttribute(MethodImplOptions.InternalCall)]
public extern static int Exchange(ref int location1, int value);
[ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
[ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
public extern static object Exchange(ref object location1, object value);
extern static void Exchange (ref object location1, ref object value, ref object result);
[ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
public static object Exchange (ref object location1, object value)
{
// See CompareExchange(object) for comments.
//
object result = null;
Exchange (ref location1, ref value, ref result);
return result;
}
[MethodImplAttribute(MethodImplOptions.InternalCall)]
public extern static float Exchange(ref float location1, float value);
@@ -92,9 +122,29 @@ namespace System.Threading
public extern static double CompareExchange(ref double location1, double value, double comparand);
[ComVisible (false)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
[ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
public extern static T CompareExchange<T> (ref T location1, T value, T comparand) where T:class;
[Intrinsic]
public static T CompareExchange<T> (ref T location1, T value, T comparand) where T : class
{
unsafe {
if (Unsafe.AsPointer (ref location1) == null)
throw new NullReferenceException ();
}
// Besides avoiding coop handles for efficiency,
// and correctness, this also appears needed to
// avoid an assertion failure in the runtime, related to
// coop handles over generics.
//
// See CompareExchange(object) for more comments.
//
// This is not entirely convincing due to lack of volatile.
//
T result = null;
// T : class so call the object overload.
CompareExchange (ref Unsafe.As<T, object> (ref location1), ref Unsafe.As<T, object>(ref value), ref Unsafe.As<T, object>(ref comparand), ref Unsafe.As<T, object>(ref result));
return result;
}
[MethodImplAttribute(MethodImplOptions.InternalCall)]
public extern static long Exchange(ref long location1, long value);
@@ -107,9 +157,23 @@ namespace System.Threading
public extern static double Exchange(ref double location1, double value);
[ComVisible (false)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
[ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
public extern static T Exchange<T> (ref T location1, T value) where T:class;
[Intrinsic]
public static T Exchange<T> (ref T location1, T value) where T : class
{
unsafe {
if (Unsafe.AsPointer (ref location1) == null)
throw new NullReferenceException ();
}
// See CompareExchange(T) for comments.
//
// This is not entirely convincing due to lack of volatile.
//
T result = null;
// T : class so call the object overload.
Exchange (ref Unsafe.As<T, object>(ref location1), ref Unsafe.As<T, object>(ref value), ref Unsafe.As<T, object>(ref result));
return result;
}
[MethodImplAttribute(MethodImplOptions.InternalCall)]
public extern static long Read(ref long location);

View File

@@ -54,8 +54,10 @@ namespace System.Threading {
IntPtr handle;
IntPtr native_handle; // used only on Win32
/* accessed only from unmanaged code */
private IntPtr name;
private int name_len;
private IntPtr name_chars;
private IntPtr name_generation;
private int name_free;
private int name_length;
private ThreadState state;
private object abort_exc;
private int abort_state_handle;
@@ -403,7 +405,13 @@ namespace System.Threading {
private extern static string GetName_internal (InternalThread thread);
[MethodImplAttribute(MethodImplOptions.InternalCall)]
private extern static void SetName_internal (InternalThread thread, String name);
private static unsafe extern void SetName_icall (InternalThread thread, char *name, int nameLength);
private static unsafe void SetName_internal (InternalThread thread, String name)
{
fixed (char* fixed_name = name)
SetName_icall (thread, fixed_name, name?.Length ?? 0);
}
/*
* The thread name must be shared by appdomains, so it is stored in

View File

@@ -758,7 +758,7 @@ namespace System {
throw new FileNotFoundException (null, assemblyRef.Name);
string cb = assemblyRef.CodeBase;
if (cb.ToLower (CultureInfo.InvariantCulture).StartsWith ("file://"))
if (cb.StartsWith ("file://", StringComparison.OrdinalIgnoreCase))
cb = new Mono.Security.Uri (cb).LocalPath;
try {

View File

@@ -31,6 +31,7 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
using System.Globalization;
using System.Collections.Generic;
using System.IO;
using System.Runtime.CompilerServices;
@@ -142,9 +143,8 @@ namespace System
if (appBase == null)
return null;
int len = appBase.Length;
if (len >= 8 && appBase.ToLower ().StartsWith ("file://")) {
appBase = appBase.Substring (7);
if (appBase.StartsWith ("file://", StringComparison.OrdinalIgnoreCase)) {
appBase = new Mono.Security.Uri (appBase).LocalPath;
if (Path.DirectorySeparatorChar != '/')
appBase = appBase.Replace ('/', Path.DirectorySeparatorChar);
}

View File

@@ -166,6 +166,12 @@ namespace System.IO {
}
}
}
public override void WriteLine (string val)
{
Write (val);
Write (NewLine);
}
}
}
#endif

View File

@@ -1254,8 +1254,11 @@ namespace System
private static DateTime TransitionPoint (TransitionTime transition, int year)
{
if (transition.IsFixedDateRule)
return new DateTime (year, transition.Month, transition.Day) + transition.TimeOfDay.TimeOfDay;
if (transition.IsFixedDateRule) {
var daysInMonth = DateTime.DaysInMonth (year, transition.Month);
var transitionDay = transition.Day <= daysInMonth ? transition.Day : daysInMonth;
return new DateTime (year, transition.Month, transitionDay) + transition.TimeOfDay.TimeOfDay;
}
DayOfWeek first = (new DateTime (year, transition.Month, 1)).DayOfWeek;
int day = 1 + (transition.Week - 1) * 7 + (transition.DayOfWeek - first + 7) % 7;

View File

@@ -39,6 +39,7 @@ namespace Mono
MONO_NATIVE_PLATFORM_TYPE_ANDROID = 5,
MONO_NATIVE_PLATFORM_TYPE_FREEBSD = 6,
MONO_NATIVE_PLATFORM_TYPE_HAIKU = 7,
MONO_NATIVE_PLATFORM_TYPE_NETBSD = 8,
MONO_NATIVE_PLATFORM_TYPE_IPHONE = 0x100,
MONO_NATIVE_PLATFORM_TYPE_TV = 0x200,

View File

@@ -54,6 +54,7 @@ namespace MonoTests.System.Security.Permissions {
"*www.mono-project.com",
"*-project.com",
"www.*.com",
"www.mono-project.com*"
};
[Category ("NotWorking")]

Some files were not shown because too many files have changed in this diff Show More