diff options
Diffstat (limited to 'src/vm/appdomainnative.cpp')
-rw-r--r-- | src/vm/appdomainnative.cpp | 341 |
1 files changed, 0 insertions, 341 deletions
diff --git a/src/vm/appdomainnative.cpp b/src/vm/appdomainnative.cpp index c2cc06a748..bbc5817b8c 100644 --- a/src/vm/appdomainnative.cpp +++ b/src/vm/appdomainnative.cpp @@ -19,120 +19,6 @@ #include "clr/fs/path.h" using namespace clr::fs; -//************************************************************************ -inline AppDomain *AppDomainNative::ValidateArg(APPDOMAINREF pThis) -{ - CONTRACTL - { - MODE_COOPERATIVE; - DISABLED(GC_TRIGGERS); // can't use this in an FCALL because we're in forbid gc mode until we setup a H_M_F. - THROWS; - } - CONTRACTL_END; - - if (pThis == NULL) - { - COMPlusThrow(kNullReferenceException, W("NullReference_This")); - } - - // Should not get here with a Transparent proxy for the this pointer - - // should have always called through onto the real object - - AppDomain* pDomain = (AppDomain*)pThis->GetDomain(); - - if(!pDomain) - { - COMPlusThrow(kNullReferenceException, W("NullReference_This")); - } - - // can only be accessed from within current domain - _ASSERTE(GetAppDomain() == pDomain); - - // should not get here with an invalid appdomain. Once unload it, we won't let anyone else - // in and any threads that are already in will be unwound. - _ASSERTE(SystemDomain::GetAppDomainAtIndex(pDomain->GetIndex()) != NULL); - return pDomain; -} - -FCIMPL2(void, AppDomainNative::SetupFriendlyName, AppDomainBaseObject* refThisUNSAFE, StringObject* strFriendlyNameUNSAFE) -{ - FCALL_CONTRACT; - - struct _gc - { - APPDOMAINREF refThis; - STRINGREF strFriendlyName; - } gc; - - gc.refThis = (APPDOMAINREF) refThisUNSAFE; - gc.strFriendlyName = (STRINGREF) strFriendlyNameUNSAFE; - - HELPER_METHOD_FRAME_BEGIN_PROTECT(gc) - - AppDomainRefHolder pDomain(ValidateArg(gc.refThis)); - pDomain->AddRef(); - - // If the user created this domain, need to know this so the debugger doesn't - // go and reset the friendly name that was provided. - pDomain->SetIsUserCreatedDomain(); - - WCHAR* pFriendlyName = NULL; - Thread *pThread = GetThread(); - - CheckPointHolder cph(pThread->m_MarshalAlloc.GetCheckpoint()); //hold checkpoint for autorelease - if (gc.strFriendlyName != NULL) { - WCHAR* pString = NULL; - int iString; - gc.strFriendlyName->RefInterpretGetStringValuesDangerousForGC(&pString, &iString); - if (ClrSafeInt<int>::addition(iString, 1, iString)) - { - pFriendlyName = new (&pThread->m_MarshalAlloc) WCHAR[(iString)]; - - // Check for a valid string allocation - if (pFriendlyName == (WCHAR*)-1) - pFriendlyName = NULL; - else - memcpy(pFriendlyName, pString, iString*sizeof(WCHAR)); - } - } - - pDomain->SetFriendlyName(pFriendlyName); - - HELPER_METHOD_FRAME_END(); -} -FCIMPLEND - -void QCALLTYPE AppDomainNative::SetupBindingPaths(__in_z LPCWSTR wszTrustedPlatformAssemblies, __in_z LPCWSTR wszPlatformResourceRoots, __in_z LPCWSTR wszAppPaths, __in_z LPCWSTR wszAppNiPaths, __in_z LPCWSTR appLocalWinMD) -{ - QCALL_CONTRACT; - - BEGIN_QCALL; - - AppDomain* pDomain = GetAppDomain(); - - SString sTrustedPlatformAssemblies(wszTrustedPlatformAssemblies); - SString sPlatformResourceRoots(wszPlatformResourceRoots); - SString sAppPaths(wszAppPaths); - SString sAppNiPaths(wszAppNiPaths); - SString sappLocalWinMD(appLocalWinMD); - - CLRPrivBinderCoreCLR *pBinder = pDomain->GetTPABinderContext(); - _ASSERTE(pBinder != NULL); - IfFailThrow(pBinder->SetupBindingPaths(sTrustedPlatformAssemblies, - sPlatformResourceRoots, - sAppPaths, - sAppNiPaths)); - -#ifdef FEATURE_COMINTEROP - if (WinRTSupported()) - { - pDomain->SetWinrtApplicationContext(sappLocalWinMD); - } -#endif - - END_QCALL; -} - FCIMPL3(Object*, AppDomainNative::CreateDynamicAssembly, AssemblyNameBaseObject* assemblyNameUNSAFE, StackCrawlMark* stackMark, INT32 access) { FCALL_CONTRACT; @@ -253,26 +139,6 @@ FCIMPL0(Object*, AppDomainNative::GetLoadedAssemblies) } // AppDomainNative::GetAssemblies FCIMPLEND -FCIMPL1(INT32, AppDomainNative::GetId, AppDomainBaseObject* refThisUNSAFE) -{ - FCALL_CONTRACT; - - INT32 iRetVal = 0; - APPDOMAINREF refThis = (APPDOMAINREF) refThisUNSAFE; - - HELPER_METHOD_FRAME_BEGIN_RET_1(refThis); - - AppDomain* pApp = ValidateArg(refThis); - // can only be accessed from within current domain - _ASSERTE(GetThread()->GetDomain() == pApp); - - iRetVal = pApp->GetId().m_dwId; - - HELPER_METHOD_FRAME_END(); - return iRetVal; -} -FCIMPLEND - FCIMPL1(Object*, AppDomainNative::IsStringInterned, StringObject* pStringUNSAFE) { FCALL_CONTRACT; @@ -318,210 +184,3 @@ FCIMPL1(Object*, AppDomainNative::GetOrInternString, StringObject* pStringUNSAFE return OBJECTREFToObject(refRetVal); } FCIMPLEND - -FCIMPL1(UINT32, AppDomainNative::GetAppDomainId, AppDomainBaseObject* refThisUNSAFE) -{ - FCALL_CONTRACT; - - FCUnique(0x91); - - UINT32 retVal = 0; - APPDOMAINREF domainRef = (APPDOMAINREF) refThisUNSAFE; - - HELPER_METHOD_FRAME_BEGIN_RET_1(domainRef); - - AppDomain* pDomain = ValidateArg(domainRef); - retVal = pDomain->GetId().m_dwId; - - HELPER_METHOD_FRAME_END(); - return retVal; -} -FCIMPLEND - -FCIMPL1(void , AppDomainNative::PublishAnonymouslyHostedDynamicMethodsAssembly, AssemblyBaseObject * pAssemblyUNSAFE); -{ - CONTRACTL - { - FCALL_CHECK; - } - CONTRACTL_END; - - ASSEMBLYREF refAssembly = (ASSEMBLYREF)ObjectToOBJECTREF(pAssemblyUNSAFE); - if (refAssembly == NULL) - FCThrowResVoid(kArgumentNullException, W("Arg_InvalidHandle")); - - DomainAssembly* pDomainAssembly = refAssembly->GetDomainAssembly(); - - pDomainAssembly->GetAppDomain()->SetAnonymouslyHostedDynamicMethodsAssembly(pDomainAssembly); -} -FCIMPLEND - - -void QCALLTYPE AppDomainNative::SetNativeDllSearchDirectories(__in_z LPCWSTR wszNativeDllSearchDirectories) -{ - CONTRACTL - { - QCALL_CHECK; - PRECONDITION(CheckPointer(wszNativeDllSearchDirectories)); - } - CONTRACTL_END; - - BEGIN_QCALL; - AppDomain *pDomain = GetAppDomain(); - - SString sDirectories(wszNativeDllSearchDirectories); - - if(sDirectories.GetCount() > 0) - { - SString::CIterator start = sDirectories.Begin(); - SString::CIterator itr = sDirectories.Begin(); - SString::CIterator end = sDirectories.End(); - SString qualifiedPath; - - while (itr != end) - { - start = itr; - BOOL found = sDirectories.Find(itr, PATH_SEPARATOR_CHAR_W); - if (!found) - { - itr = end; - } - - SString qualifiedPath(sDirectories,start,itr); - - if (found) - { - itr++; - } - - unsigned len = qualifiedPath.GetCount(); - - if (len > 0) - { - if (qualifiedPath[len - 1] != DIRECTORY_SEPARATOR_CHAR_W) - { - qualifiedPath.Append(DIRECTORY_SEPARATOR_CHAR_W); - } - - NewHolder<SString> stringHolder (new SString(qualifiedPath)); - IfFailThrow(pDomain->m_NativeDllSearchDirectories.Append(stringHolder.GetValue())); - stringHolder.SuppressRelease(); - } - } - } - END_QCALL; -} - - -#ifdef FEATURE_APPDOMAIN_RESOURCE_MONITORING -FCIMPL0(void, AppDomainNative::EnableMonitoring) -{ - FCALL_CONTRACT; - - HELPER_METHOD_FRAME_BEGIN_0(); - - EnableARM(); - - HELPER_METHOD_FRAME_END(); -} -FCIMPLEND - -FCIMPL0(FC_BOOL_RET, AppDomainNative::MonitoringIsEnabled) -{ - FCALL_CONTRACT; - - FC_GC_POLL_NOT_NEEDED(); - - FC_RETURN_BOOL(g_fEnableARM); -} -FCIMPLEND - -FCIMPL1(INT64, AppDomainNative::GetTotalProcessorTime, AppDomainBaseObject* refThisUNSAFE) -{ - FCALL_CONTRACT; - - INT64 i64RetVal = -1; - - if (g_fEnableARM) - { - APPDOMAINREF refThis = (APPDOMAINREF) refThisUNSAFE; - HELPER_METHOD_FRAME_BEGIN_RET_1(refThis); - - AppDomain* pDomain = ValidateArg(refThis); - // can only be accessed from within current domain - _ASSERTE(GetThread()->GetDomain() == pDomain); - - i64RetVal = (INT64)pDomain->QueryProcessorUsage(); - - HELPER_METHOD_FRAME_END(); - } - - return i64RetVal; -} -FCIMPLEND - -FCIMPL1(INT64, AppDomainNative::GetTotalAllocatedMemorySize, AppDomainBaseObject* refThisUNSAFE) -{ - FCALL_CONTRACT; - - INT64 i64RetVal = -1; - - if (g_fEnableARM) - { - APPDOMAINREF refThis = (APPDOMAINREF) refThisUNSAFE; - HELPER_METHOD_FRAME_BEGIN_RET_1(refThis); - - AppDomain* pDomain = ValidateArg(refThis); - // can only be accessed from within current domain - _ASSERTE(GetThread()->GetDomain() == pDomain); - - i64RetVal = (INT64)pDomain->GetAllocBytes(); - - HELPER_METHOD_FRAME_END(); - } - - return i64RetVal; -} -FCIMPLEND - -FCIMPL1(INT64, AppDomainNative::GetLastSurvivedMemorySize, AppDomainBaseObject* refThisUNSAFE) -{ - FCALL_CONTRACT; - - INT64 i64RetVal = -1; - - if (g_fEnableARM) - { - APPDOMAINREF refThis = (APPDOMAINREF) refThisUNSAFE; - HELPER_METHOD_FRAME_BEGIN_RET_1(refThis); - - AppDomain* pDomain = ValidateArg(refThis); - // can only be accessed from within current domain - _ASSERTE(GetThread()->GetDomain() == pDomain); - - i64RetVal = (INT64)pDomain->GetSurvivedBytes(); - - HELPER_METHOD_FRAME_END(); - } - - return i64RetVal; -} -FCIMPLEND - -FCIMPL0(INT64, AppDomainNative::GetLastSurvivedProcessMemorySize) -{ - FCALL_CONTRACT; - - INT64 i64RetVal = -1; - - if (g_fEnableARM) - { - i64RetVal = SystemDomain::GetTotalSurvivedBytes(); - } - - return i64RetVal; - - -} -FCIMPLEND -#endif // FEATURE_APPDOMAIN_RESOURCE_MONITORING |