Expose GetUninitializedObject on RuntimeHelpers (#5104)
authorJan Kotas <jkotas@microsoft.com>
Fri, 20 May 2016 20:18:49 +0000 (13:18 -0700)
committerJan Kotas <jkotas@microsoft.com>
Fri, 20 May 2016 20:18:49 +0000 (13:18 -0700)
* In coreclr, expose GetUninitializedObject on RuntimeHelpers

* Include RuntimeHelpers.GetUninitializedObject in model.xml

src/mscorlib/model.CoreLib.xml
src/mscorlib/model.xml
src/mscorlib/src/System/Runtime/CompilerServices/RuntimeHelpers.cs

index f2034b4..fccef17 100644 (file)
       <Member MemberType="Field" Name="value__" />
     </Type>
     <Type Name="System.Runtime.CompilerServices.RuntimeHelpers">
+      <Member Name="GetUninitializedObject(System.Type)" />
       <Member Name="EnsureSufficientExecutionStack" />
       <Member Name="get_OffsetToStringData" />
       <Member Name="GetObjectValue(System.Object)" />
index eebe80b..0a5be7a 100644 (file)
       <Member MemberType="Field" Name="value__" />
     </Type>
     <Type Name="System.Runtime.CompilerServices.RuntimeHelpers">
+      <Member Name="GetUninitializedObject(System.Type)" />
       <Member Name="EnsureSufficientExecutionStack" />
       <Member Name="get_OffsetToStringData" />
       <Member Name="GetObjectValue(System.Object)" />
index be65878..3d1ee09 100644 (file)
@@ -17,6 +17,7 @@ namespace System.Runtime.CompilerServices {
     using System.Runtime.CompilerServices;
     using System.Runtime.InteropServices;
     using System.Runtime.ConstrainedExecution;
+    using System.Runtime.Serialization;
     using System.Security.Permissions;
     using System.Threading;
     using System.Runtime.Versioning;
@@ -24,6 +25,15 @@ namespace System.Runtime.CompilerServices {
 
     public static class RuntimeHelpers
     {
+#if FEATURE_CORECLR
+        // Exposed here as a more appropriate place than on FormatterServices itself,
+        // which is a high level reflection heavy type.
+        public static Object GetUninitializedObject(Type type)
+        {
+            return FormatterServices.GetUninitializedObject(type);
+        }
+#endif // FEATURE_CORECLR
+
         [System.Security.SecuritySafeCritical]  // auto-generated
         [MethodImplAttribute(MethodImplOptions.InternalCall)]
         public static extern void InitializeArray(Array array,RuntimeFieldHandle fldHandle);