Skip to content

Commit 8ac9f63

Browse files
authored
Merge pull request #1062 from Unity-Technologies/unity-master-ctor-preservations
Additional constructor preservations
2 parents d6c99a5 + 229c400 commit 8ac9f63

File tree

1 file changed

+58
-13
lines changed

1 file changed

+58
-13
lines changed

mcs/class/corlib/LinkerDescriptor/mscorlib.xml

Lines changed: 58 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,10 @@
1919
</type>
2020

2121
<!-- appdomain.c: mono_runtime_init -->
22-
<type fullname="System.AppDomainSetup" preserve="fields" />
22+
<type fullname="System.AppDomainSetup" preserve="fields" >
23+
<!-- appdomain.c mono_object_new_checked in mono_domain_create_appdomain_checked -->
24+
<method signature="System.Void .ctor()" />
25+
</type>
2326

2427
<!-- exception.c: mono_get_exception_appdomain_unloaded (used in several places), threadpool.c -->
2528
<type fullname="System.AppDomainUnloadedException">
@@ -122,7 +125,10 @@
122125

123126
<!-- domain.c: mono_defaults.stack_frame_class -->
124127
<!-- used in mini-exceptions.c to create array and MonoStackFrame instance, i.e. only fields are required to be preserved -->
125-
<type fullname="System.Diagnostics.StackFrame" preserve="fields" />
128+
<type fullname="System.Diagnostics.StackFrame" preserve="fields" >
129+
<!-- threads.c mono_object_new_checked in mono_threads_get_thread_dump -->
130+
<method signature="System.Void .ctor()" />
131+
</type>
126132

127133
<!-- domain.c: mono_defaults.stack_trace_class -->
128134
<!-- does not seems used outside the g_assert in domain.c (maybe it could be removed) -->
@@ -254,7 +260,10 @@
254260
</type>
255261

256262
<!-- threadpool.c: mono_thread_pool_init (assert) -->
257-
<type fullname="System.MonoAsyncCall" preserve="fields" />
263+
<type fullname="System.MonoAsyncCall" preserve="fields" >
264+
<!-- threadpool.c mono_object_new_checked in mono_threadpool_begin_invoke -->
265+
<method signature="System.Void .ctor()" />
266+
</type>
258267
<!-- mono-mlist.c (managed list): used in threadpool.c and gc.c -->
259268
<type fullname="System.MonoListItem" preserve="fields" />
260269

@@ -303,6 +312,8 @@
303312
<!-- TransparentProxy.cs, RemotingServices.cs -->
304313
<method name="FieldGetter" feature="remoting" />
305314
<method name="FieldSetter" feature="remoting" />
315+
<!-- appdomain.c mono_object_new_checked in create_domain_objects -->
316+
<method signature="System.Void .ctor()" />
306317
</type>
307318

308319
<!-- appdomain.c (create_domain_objects) domain->out_of_memory_ex -->
@@ -524,16 +535,25 @@
524535
</type>
525536

526537
<!-- reflection.c: mono_method_body_get_object -->
527-
<type fullname="System.Reflection.ExceptionHandlingClause" preserve="fields" />
538+
<type fullname="System.Reflection.ExceptionHandlingClause" preserve="fields" >
539+
<!-- reflection.c mono_object_new_checked in add_exception_handling_clause_to_array -->
540+
<method signature="System.Void .ctor()" />
541+
</type>
528542

529543
<!-- domain.c: mono_defaults.field_info_class -->
530544
<type fullname="System.Reflection.FieldInfo" preserve="fields" />
531545

532546
<!-- reflection.c: mono_method_body_get_object -->
533-
<type fullname="System.Reflection.LocalVariableInfo" preserve="fields" />
547+
<type fullname="System.Reflection.LocalVariableInfo" preserve="fields" >
548+
<!-- reflection.c mono_object_new_checked in add_local_var_info_to_array -->
549+
<method signature="System.Void .ctor()" />
550+
</type>
534551

535552
<!-- reflection.c: mono_method_body_get_object -->
536-
<type fullname="System.Reflection.MethodBody" preserve="fields" />
553+
<type fullname="System.Reflection.MethodBody" preserve="fields" >
554+
<!-- reflection.c mono_object_new_checked in method_body_object_construct -->
555+
<method signature="System.Void .ctor()" />
556+
</type>
537557
<!-- domain.c: mono_defaults.method_info_class -->
538558
<type fullname="System.Reflection.MethodInfo" preserve="fields" />
539559

@@ -544,26 +564,42 @@
544564
<type fullname="System.Reflection.MonoModule" preserve="fields" >
545565
<method name=".ctor" />
546566
</type>
547-
<type fullname="System.Reflection.MonoCMethod" preserve="fields" />
567+
<type fullname="System.Reflection.MonoCMethod" preserve="fields" >
568+
<!-- reflection.c mono_object_new_checked in method_object_construct -->
569+
<method signature="System.Void .ctor()" />
570+
</type>
548571
<type fullname="System.Reflection.MonoEvent" preserve="fields" />
549-
<type fullname="System.Reflection.MonoEventInfo" preserve="fields" />
550-
<type fullname="System.Reflection.MonoField" preserve="fields" />
551-
572+
<type fullname="System.Reflection.MonoEventInfo" preserve="fields" >
573+
<!-- reflection.c mono_object_new_checked in event_object_construct -->
574+
<method signature="System.Void .ctor()" />
575+
</type>
576+
<type fullname="System.Reflection.MonoField" preserve="fields" >
577+
<!-- reflection.c mono_object_new_checked in field_object_construct -->
578+
<method signature="System.Void .ctor()" />
579+
</type>
552580
<!-- reflection.c: mono_method_get_object uses both MonoGeneric[C]Method / will crash for ves_icall_Type_GetConstructors_internal -->
553581
<type fullname="System.Reflection.MonoGenericMethod" preserve="fields" />
554582
<type fullname="System.Reflection.MonoGenericCMethod" preserve="fields" />
555583

556-
<type fullname="System.Reflection.MonoMethod" preserve="fields" />
584+
<type fullname="System.Reflection.MonoMethod" preserve="fields" >
585+
<!-- reflection.c mono_object_new_checked in method_object_construct -->
586+
<method signature="System.Void .ctor()" />
587+
</type>
557588
<type fullname="System.Reflection.MonoMethodInfo" preserve="fields" />
558589
<type fullname="System.Reflection.MonoPropertyInfo" preserve="fields" />
559590

560591
<type fullname="System.Reflection.MonoProperty" preserve="fields">
561592
<method name="GetterAdapterFrame" />
562593
<method name="StaticGetterAdapterFrame" />
594+
<!-- reflection.c mono_object_new_checked in add_parameter_object_to_array -->
595+
<method signature="System.Void .ctor()" />
563596
</type>
564597
<type fullname="System.Reflection.ParameterInfo" preserve="fields" />
565598
<!-- reflection.c: ves_icall_get_parameter_info -->
566-
<type fullname="System.Reflection.MonoParameterInfo" preserve="fields" />
599+
<type fullname="System.Reflection.MonoParameterInfo" preserve="fields" >
600+
<!-- reflection.c mono_object_new_checked in event_object_construct -->
601+
<method signature="System.Void .ctor()" />
602+
</type>
567603

568604
<!-- object.c: mono_field_get_value_object and mono_runtime_invoke_array -->
569605
<type fullname="System.Reflection.Pointer" >
@@ -708,7 +744,10 @@
708744
<!-- domain.c: mono_defaults.asyncresult_class (Stubify can't be applied on this type) -->
709745
<!-- object.c MONO_OBJECT_SETREF in mono_async_result_new -->
710746
<!-- threadpool.c: MONO_OBJECT_SETREF in create_simple_asyncresult -->
711-
<type fullname="System.Runtime.Remoting.Messaging.AsyncResult" preserve="fields" />
747+
<type fullname="System.Runtime.Remoting.Messaging.AsyncResult" preserve="fields" >
748+
<!-- object.c mono_object_new_checked in mono_async_result_new -->
749+
<method signature="System.Void .ctor()" />
750+
</type>
712751

713752
<!-- marshal.c: mono_remoting_marshal_init / removed with DISABLE_REMOTING -->
714753
<type fullname="System.Runtime.Remoting.Messaging.CallContext" feature="remoting" >
@@ -719,16 +758,22 @@
719758
<type fullname="System.Runtime.Remoting.Messaging.MonoMethodMessage" preserve="fields" feature="remoting" >
720759
<!-- object.c: mono_message_init -->
721760
<method name="InitMessage" />
761+
<!-- marshal.c mono_object_new_checked in mono_delegate_end_invoke-->
762+
<method name=".ctor" feature="remoting" />
722763
</type>
723764
<!-- domain.c: mono_defaults.real_proxy_class / removed with DISABLE_REMOTING -->
724765
<type fullname="System.Runtime.Remoting.Proxies.RealProxy" preserve="fields" feature="remoting" >
725766
<method name="PrivateInvoke" />
726767
<method name="GetAppDomainTarget" />
768+
<!-- object.c mono_object_new_checked in make_transparent_proxy-->
769+
<method name=".ctor" feature="remoting" />
727770
</type>
728771
<!-- domain.c: mono_defaults.transparent_proxy_class / removed with DISABLE_REMOTING -->
729772
<type fullname="System.Runtime.Remoting.Proxies.TransparentProxy" preserve="fields" feature="remoting" >
730773
<method name="LoadRemoteFieldNew" />
731774
<method name="StoreRemoteField" />
775+
<!-- icall.c mono_object_new_checked in ves_icall_Remoting_RealProxy_GetTransparentProxy -->
776+
<method signature="System.Void .ctor()" feature="remoting" />
732777
</type>
733778
<type fullname="System.Runtime.Remoting.RemotingServices" feature="remoting" >
734779
<method name="SerializeCallData" />

0 commit comments

Comments
 (0)