[appdomain] Use coop handles for most methods in System.AppDomain (#4286)
authorAleksey Kliger (λgeek) <akliger@gmail.com>
Wed, 25 Jan 2017 18:53:46 +0000 (13:53 -0500)
committerGitHub <noreply@github.com>
Wed, 25 Jan 2017 18:53:46 +0000 (13:53 -0500)
commit9aa19cb3ec2793a7f9e4373b7be7aeeabd0dc760
treebfa12f0bfa240f8b3e3dde0a5c0251fc3d5dcb32
parent90b639f7971ac3f62260551e008559f816323997
[appdomain] Use coop handles for most methods in System.AppDomain (#4286)

* [runtime] Use coop handles for ves_icall_System_AppDomain_GetData

* [runtime] Add mono_string_new_utf16_handle function that returns a MonoStringHandle

* [runtime] Use coop handles for ves_icall_System_AppDomain_InternalGetProcessGuid

* [runtime] Use coop handles for System.AppDomain icalls

  - ves_icall_System_AppDomain_InternalIsFinalizingForUnload
  - ves_icall_System_AppDomain_InternalPushDomainRef
  - ves_icall_System_AppDomain_InternalPushDomainRefByID
    (This one is slightly non-trivial because we switch from MonoException to MonoError)
  - ves_icall_System_AppDomain_InternalPopDomainRef
  - ves_icall_System_AppDomain_InternalSetDomainByID

* [runtime] Use coop handles for ves_icall_System_AppDomain_InternalSetDomain

* [runtime] Use coop handles for ves_icall_System_AppDomain_SetData

* [runtime] Coop handles for some AppDomain icalls

  - ves_icall_System_AppDomain_getCurDomain
  - ves_icall_System_AppDomain_getFriendlyName
  - ves_icall_System_AppDomain_getRootDomain
  - ves_icall_System_AppDomain_getSetup

* [coop handles] Add mono_string_handle_length function

* [marshal] Add mono_marshal_xdomain_copy_value_handle

* [coop handles] Add mono_aray_new_full_handle

* [appdomain] Use handles in mono_array_clone_in_domain

* [runtime] Use coop handles for ves_icall_System_AppDomain_createDomain

* [appdomain] Use coop handles for ves_icall_System_AppDomain_InternalUnload
mono/metadata/appdomain-icalls.h
mono/metadata/appdomain.c
mono/metadata/appdomain.h
mono/metadata/handle.c
mono/metadata/handle.h
mono/metadata/icall-def.h
mono/metadata/marshal-internals.h
mono/metadata/object-internals.h
mono/metadata/object.c
mono/metadata/remoting.c