Imported Upstream version 5.20.0.180

Former-commit-id: ff953ca879339fe1e1211f7220f563e1342e66cb
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2019-02-04 20:11:37 +00:00
parent 0e2d47d1c8
commit 0510252385
3360 changed files with 83827 additions and 39243 deletions

View File

@@ -1,12 +1,22 @@
using System;
using System.Reflection;
namespace Internal.Runtime.Augments {
partial class RuntimeAugments {
private static ReflectionExecutionDomainCallbacks s_reflectionExecutionDomainCallbacks = new ReflectionExecutionDomainCallbacks ();
namespace Internal.Runtime.Augments
{
partial class RuntimeAugments
{
public static void ReportUnhandledException (Exception exception)
{
throw exception;
}
internal static ReflectionExecutionDomainCallbacks Callbacks => s_reflectionExecutionDomainCallbacks;
}
partial class ReflectionExecutionDomainCallbacks {
internal Exception CreateMissingMetadataException (Type attributeType)
{
return new MissingMetadataException ();
}
}
}

View File

@@ -5,6 +5,9 @@ namespace Internal.Runtime.Augments
{
sealed class RuntimeThread
{
// Note: Magic number copied from CoreRT's RuntimeThread.cs. See the original source code for an explanation.
internal static readonly int OptimalMaxSpinWaitsPerSpinIteration = 64;
readonly Thread thread;
RuntimeThread (Thread t) { thread = t; }
@@ -26,6 +29,8 @@ namespace Internal.Runtime.Augments
public void Start (object state) => thread.Start (state);
public static void Sleep(int millisecondsTimeout) => Thread.Sleep (millisecondsTimeout);
public static bool Yield () => Thread.Yield ();
public static bool SpinWait (int iterations)

View File

@@ -0,0 +1,39 @@
using System.Reflection;
namespace System {
partial class Type {
internal const string DefaultTypeNameWhenMissingMetadata = "UnknownType";
internal string FullNameOrDefault {
get {
// First, see if Type.Name is available. If Type.Name is available, then we can be reasonably confident that it is safe to call Type.FullName.
// We'll still wrap the call in a try-catch as a failsafe.
if (InternalNameIfAvailable == null)
return DefaultTypeNameWhenMissingMetadata;
try {
return FullName;
} catch (MissingMetadataException) {
return DefaultTypeNameWhenMissingMetadata;
}
}
}
internal bool IsRuntimeImplemented () => true;
internal virtual string InternalGetNameIfAvailable (ref Type rootCauseForFailure) => Name;
internal string InternalNameIfAvailable {
get {
Type ignore = null;
return InternalGetNameIfAvailable (ref ignore);
}
}
internal string NameOrDefault {
get {
return InternalNameIfAvailable ?? DefaultTypeNameWhenMissingMetadata;
}
}
}
}