[remoting] Convert mono_load_remote_field_new_checked to managed code (#3149)
authorAleksey Kliger (λgeek) <akliger@gmail.com>
Tue, 28 Jun 2016 22:22:04 +0000 (18:22 -0400)
committerGitHub <noreply@github.com>
Tue, 28 Jun 2016 22:22:04 +0000 (18:22 -0400)
commit787e34ae2d4fda3ee3b95dfb448d4ac1182d0254
tree1b076757373258e93f231fb45d453d7e3001d7b4
parent842b97f3cd0a3aa24265eb714e94c485590779dc
[remoting] Convert mono_load_remote_field_new_checked to managed code (#3149)

* [remoting] Convert mono_load_remote_field_new_checked to managed code.

* [corlib] Expose runtime struct MonoRemoteClass and MonoClass to managed

Also expose  mono_class_get_type to managed code.

* [corlib] Add Mono.RuntimeClassHandle to encapsulate MonoClass*

and Mono.RuntimeRemoteClassHandle to encapsulate MonoRemoteClass*

* [runtime] mono_marshal_get_ldfld_remote_wrapper invoke the managed TransparentProxy.LoadRemoteFieldNew method directly

Don't bother going through a native call and back out to managed.

* [runtime] Get rid of MONO_WRAPPER_LDFLD_REMOTE

When the MONO_WRAPPER_LDFLD is operating on a proxy, it always invokes
the TransparentProxy::LoadRemoteFieldNew managed method

* [runtime] Remove dead mono_load_remote_field_new_icall

* [mini] Bump AOT file format version

Because we removed the LDFLD_REMOTE wrapper type so all the
MonoWrapperType enum values shifted.
17 files changed:
mcs/class/corlib/Mono/RuntimeHandles.cs [new file with mode: 0644]
mcs/class/corlib/Mono/RuntimeStructs.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.Remoting.Messaging/MonoMethodMessage.cs
mcs/class/corlib/System.Runtime.Remoting.Proxies/RealProxy.cs
mcs/class/corlib/corlib.dll.sources
mcs/tools/linker/Descriptors/mscorlib.xml
mono/metadata/icall-def.h
mono/metadata/icall.c
mono/metadata/object-internals.h
mono/metadata/object.c
mono/metadata/remoting.c
mono/metadata/wrapper-types.h
mono/mini/aot-compiler.c
mono/mini/aot-runtime.c
mono/mini/mini-runtime.c
mono/mini/mini-trampolines.c
mono/mini/mini.h