diff options
author | danmosemsft <danmose@microsoft.com> | 2017-02-15 13:49:49 -0800 |
---|---|---|
committer | danmosemsft <danmose@microsoft.com> | 2017-02-15 15:38:51 -0800 |
commit | b6c642a84e61fd81e8a4c779718d0e807f2aa6d2 (patch) | |
tree | 16fa03f3932e6da0b8ac4b74b5614c6f2c00f754 /src/vm/reflectioninvocation.cpp | |
parent | c4a95266c1bb0741681e0ab45d3f8e4f7809c071 (diff) | |
download | coreclr-b6c642a84e61fd81e8a4c779718d0e807f2aa6d2.tar.gz coreclr-b6c642a84e61fd81e8a4c779718d0e807f2aa6d2.tar.bz2 coreclr-b6c642a84e61fd81e8a4c779718d0e807f2aa6d2.zip |
Remove never defined FEATURE_SERIALIZATION
Diffstat (limited to 'src/vm/reflectioninvocation.cpp')
-rw-r--r-- | src/vm/reflectioninvocation.cpp | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/src/vm/reflectioninvocation.cpp b/src/vm/reflectioninvocation.cpp index a116d2affd..02c8891703 100644 --- a/src/vm/reflectioninvocation.cpp +++ b/src/vm/reflectioninvocation.cpp @@ -1568,95 +1568,6 @@ Done: } FCIMPLEND -#ifdef FEATURE_SERIALIZATION -FCIMPL4(void, RuntimeMethodHandle::SerializationInvoke, - ReflectMethodObject *pMethodUNSAFE, Object* targetUNSAFE, Object* serializationInfoUNSAFE, struct StreamingContextData * pContext) { - FCALL_CONTRACT; - - struct _gc - { - OBJECTREF target; - OBJECTREF serializationInfo; - REFLECTMETHODREF refMethod; - } gc; - - gc.target = (OBJECTREF) targetUNSAFE; - gc.serializationInfo = (OBJECTREF) serializationInfoUNSAFE; - gc.refMethod = (REFLECTMETHODREF)ObjectToOBJECTREF(pMethodUNSAFE); - - MethodDesc* pMethod = pMethodUNSAFE->GetMethod(); - - Assembly *pAssem = pMethod->GetAssembly(); - - if (pAssem->IsIntrospectionOnly()) - FCThrowExVoid(kInvalidOperationException, IDS_EE_CODEEXECUTION_IN_INTROSPECTIVE_ASSEMBLY, NULL, NULL, NULL); - - if (pAssem->IsDynamic() && !pAssem->HasRunAccess()) - FCThrowResVoid(kNotSupportedException, W("NotSupported_DynamicAssemblyNoRunAccess")); - - HELPER_METHOD_FRAME_BEGIN_PROTECT(gc); - - { - ARG_SLOT newArgs[3]; - - // Nullable<T> does not support the ISerializable constructor, so we should never get here. - _ASSERTE(!Nullable::IsNullableType(gc.target->GetMethodTable())); - - if (pMethod == MscorlibBinder::GetMethod(METHOD__WINDOWS_IDENTITY__SERIALIZATION_CTOR)) - { - // WindowsIdentity.ctor takes only one argument - MethodDescCallSite method(pMethod, &gsig_IM_SerInfo_RetVoid, &gc.target); - - // NO GC AFTER THIS POINT - // Copy "this" pointer: only unbox if type is value type and method is not unboxing stub - if (pMethod->GetMethodTable()->IsValueType() && !pMethod->IsUnboxingStub()) - newArgs[0] = PtrToArgSlot(gc.target->UnBox()); - else - newArgs[0] = ObjToArgSlot(gc.target); - - newArgs[1] = ObjToArgSlot(gc.serializationInfo); - - TryCallMethod(&method, newArgs); - } - else - { - // - // Use hardcoded sig for performance - // - MethodDescCallSite method(pMethod, &gsig_IM_SerInfo_StrContext_RetVoid, &gc.target); - - // NO GC AFTER THIS POINT - // Copy "this" pointer: only unbox if type is value type and method is not unboxing stub - if (pMethod->GetMethodTable()->IsValueType() && !pMethod->IsUnboxingStub()) - newArgs[0] = PtrToArgSlot(gc.target->UnBox()); - else - newArgs[0] = ObjToArgSlot(gc.target); - - newArgs[1] = ObjToArgSlot(gc.serializationInfo); - -#ifdef _WIN64 - // - // on win64 the struct does not fit in an ARG_SLOT, so we pass it by reference - // - static_assert_no_msg(sizeof(*pContext) > sizeof(ARG_SLOT)); - newArgs[2] = PtrToArgSlot(pContext); -#else // _WIN64 - // - // on x86 the struct fits in an ARG_SLOT, so we pass it by value - // - static_assert_no_msg(sizeof(*pContext) == sizeof(ARG_SLOT)); - newArgs[2] = *(ARG_SLOT*)pContext; -#endif // _WIN64 - - TryCallMethod(&method, newArgs); - } - } - - HELPER_METHOD_FRAME_END_POLL(); -} -FCIMPLEND -#endif // FEATURE_SERIALIZATION - struct SkipStruct { StackCrawlMark* pStackMark; MethodDesc* pMeth; |