You've already forked linux-packaging-mono
Imported Upstream version 5.20.0.180
Former-commit-id: ff953ca879339fe1e1211f7220f563e1342e66cb
This commit is contained in:
parent
0e2d47d1c8
commit
0510252385
@@ -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 ();
|
||||
}
|
||||
}
|
||||
}
|
@@ -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)
|
||||
|
39
mcs/class/corlib/corert/Type.cs
Normal file
39
mcs/class/corlib/corert/Type.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user