summaryrefslogtreecommitdiff
path: root/src/vm/reflectioninvocation.cpp
diff options
context:
space:
mode:
authordanmosemsft <danmose@microsoft.com>2017-02-15 13:49:49 -0800
committerdanmosemsft <danmose@microsoft.com>2017-02-15 15:38:51 -0800
commitb6c642a84e61fd81e8a4c779718d0e807f2aa6d2 (patch)
tree16fa03f3932e6da0b8ac4b74b5614c6f2c00f754 /src/vm/reflectioninvocation.cpp
parentc4a95266c1bb0741681e0ab45d3f8e4f7809c071 (diff)
downloadcoreclr-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.cpp89
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;