diff options
Diffstat (limited to 'src/vm/comsynchronizable.cpp')
-rw-r--r-- | src/vm/comsynchronizable.cpp | 34 |
1 files changed, 5 insertions, 29 deletions
diff --git a/src/vm/comsynchronizable.cpp b/src/vm/comsynchronizable.cpp index e62ec13dde..b486687752 100644 --- a/src/vm/comsynchronizable.cpp +++ b/src/vm/comsynchronizable.cpp @@ -28,7 +28,6 @@ #include "remoting.h" #endif #include "eeconfig.h" -#include "stackcompressor.h" #ifdef FEATURE_REMOTING #include "appdomainhelper.h" #include "objectclone.h" @@ -53,9 +52,8 @@ struct SharedState OBJECTHANDLE m_Threadable; OBJECTHANDLE m_ThreadStartArg; Thread *m_Internal; - OBJECTHANDLE m_Principal; - SharedState(OBJECTREF threadable, OBJECTREF threadStartArg, Thread *internal, OBJECTREF principal) + SharedState(OBJECTREF threadable, OBJECTREF threadStartArg, Thread *internal) { CONTRACTL { @@ -72,8 +70,6 @@ struct SharedState m_ThreadStartArg = ad->CreateHandle(threadStartArg); m_Internal = internal; - - m_Principal = ad->CreateHandle(principal); } ~SharedState() @@ -96,7 +92,6 @@ struct SharedState { DestroyHandle(m_Threadable); DestroyHandle(m_ThreadStartArg); - DestroyHandle(m_Principal); } } }; @@ -231,7 +226,6 @@ void ThreadNative::KickOffThread_Worker(LPVOID ptr) // we are saving the delagate and result primarily for debugging struct _gc { - OBJECTREF orPrincipal; OBJECTREF orThreadStartArg; OBJECTREF orDelegate; OBJECTREF orResult; @@ -245,22 +239,6 @@ void ThreadNative::KickOffThread_Worker(LPVOID ptr) GCPROTECT_BEGIN(gc); BEGIN_SO_INTOLERANT_CODE(pThread); - gc.orPrincipal = ObjectFromHandle(args->share->m_Principal); - -#ifdef FEATURE_IMPERSONATION - // Push the initial security principal object (if any) onto the - // managed thread. - if (gc.orPrincipal != NULL) - { - gc.orThread = args->pThread->GetExposedObject(); - MethodDescCallSite setPrincipalInternal(METHOD__THREAD__SET_PRINCIPAL_INTERNAL, &gc.orThread); - ARG_SLOT argsToSetPrincipal[2]; - argsToSetPrincipal[0] = ObjToArgSlot(gc.orThread); - argsToSetPrincipal[1] = ObjToArgSlot(gc.orPrincipal); - setPrincipalInternal.Call(argsToSetPrincipal); - } -#endif - gc.orDelegate = ObjectFromHandle(args->share->m_Threadable); gc.orThreadStartArg = ObjectFromHandle(args->share->m_ThreadStartArg); @@ -435,20 +413,20 @@ ULONG __stdcall ThreadNative::KickOffThread(void* pass) } -FCIMPL3(void, ThreadNative::Start, ThreadBaseObject* pThisUNSAFE, Object* pPrincipalUNSAFE, StackCrawlMark* pStackMark) +FCIMPL2(void, ThreadNative::Start, ThreadBaseObject* pThisUNSAFE, StackCrawlMark* pStackMark) { FCALL_CONTRACT; HELPER_METHOD_FRAME_BEGIN_NOPOLL(); - StartInner(pThisUNSAFE, pPrincipalUNSAFE, pStackMark); + StartInner(pThisUNSAFE, pStackMark); HELPER_METHOD_FRAME_END_POLL(); } FCIMPLEND // Start up a thread, which by now should be in the ThreadStore's Unstarted list. -void ThreadNative::StartInner(ThreadBaseObject* pThisUNSAFE, Object* pPrincipalUNSAFE, StackCrawlMark* pStackMark) +void ThreadNative::StartInner(ThreadBaseObject* pThisUNSAFE, StackCrawlMark* pStackMark) { CONTRACTL { @@ -460,11 +438,9 @@ void ThreadNative::StartInner(ThreadBaseObject* pThisUNSAFE, Object* pPrincipalU struct _gc { - OBJECTREF pPrincipal; THREADBASEREF pThis; } gc; - gc.pPrincipal = (OBJECTREF) pPrincipalUNSAFE; gc.pThis = (THREADBASEREF) pThisUNSAFE; GCPROTECT_BEGIN(gc); @@ -499,7 +475,7 @@ void ThreadNative::StartInner(ThreadBaseObject* pThisUNSAFE, Object* pPrincipalU // Allocate this away from our stack, so we can unwind without affecting // KickOffThread. It is inside a GCFrame, so we can enable GC now. - NewHolder<SharedState> share(new SharedState(threadable, threadStartArg, pNewThread, gc.pPrincipal)); + NewHolder<SharedState> share(new SharedState(threadable, threadStartArg, pNewThread)); pNewThread->IncExternalCount(); |