summaryrefslogtreecommitdiff
path: root/src/vm
diff options
context:
space:
mode:
authorGaurav Khanna <gkhanna@microsoft.com>2017-04-28 16:06:54 -0700
committerGitHub <noreply@github.com>2017-04-28 16:06:54 -0700
commitb38113c80d04c39890207d149bf0359a86711d62 (patch)
tree61f35c08f07b230eb9c40c44f80b74c15d00394d /src/vm
parent68a9cf4cdc39eea027b01ccbc98531503590a6e3 (diff)
downloadcoreclr-b38113c80d04c39890207d149bf0359a86711d62.tar.gz
coreclr-b38113c80d04c39890207d149bf0359a86711d62.tar.bz2
coreclr-b38113c80d04c39890207d149bf0359a86711d62.zip
Correctly enumerate loaded assemblies in AppDomain (#11294)
* Correctly enumerate loaded assemblies in AppDomain * Remove unrequired attribute
Diffstat (limited to 'src/vm')
-rw-r--r--src/vm/assemblynative.cpp36
-rw-r--r--src/vm/assemblynative.hpp1
-rw-r--r--src/vm/ecalllist.h2
3 files changed, 1 insertions, 38 deletions
diff --git a/src/vm/assemblynative.cpp b/src/vm/assemblynative.cpp
index b9079ec06a..702c255c97 100644
--- a/src/vm/assemblynative.cpp
+++ b/src/vm/assemblynative.cpp
@@ -536,42 +536,6 @@ Assembly* AssemblyNative::LoadFromPEImage(ICLRPrivBinder* pBinderContext, PEImag
RETURN pLoadedAssembly;
}
-/* static */
-void QCALLTYPE AssemblyNative::GetLoadedAssembliesInternal(QCall::ObjectHandleOnStack assemblies)
-{
- QCALL_CONTRACT;
-
- BEGIN_QCALL;
-
- MethodTable * pAssemblyClass = MscorlibBinder::GetClass(CLASS__ASSEMBLY);
-
- PTR_AppDomain pCurDomain = GetAppDomain();
-
- SetSHash<PTR_DomainAssembly> assemblySet;
- pCurDomain->GetCacheAssemblyList(assemblySet);
- size_t nArrayElems = assemblySet.GetCount();
- PTRARRAYREF AsmArray = NULL;
-
- GCX_COOP();
-
- GCPROTECT_BEGIN(AsmArray);
- AsmArray = (PTRARRAYREF) AllocateObjectArray( (DWORD)nArrayElems, pAssemblyClass);
- for(auto it = assemblySet.Begin(); it != assemblySet.End(); it++)
- {
- PTR_DomainAssembly assem = *it;
- OBJECTREF o = (OBJECTREF)assem->GetExposedAssemblyObject();
- _ASSERTE(o != NULL);
- _ASSERTE(nArrayElems > 0);
- AsmArray->SetAt(--nArrayElems, o);
- }
-
- assemblies.Set(AsmArray);
-
- GCPROTECT_END();
-
- END_QCALL;
-}
-
/* static */
void QCALLTYPE AssemblyNative::LoadFromPath(INT_PTR ptrNativeAssemblyLoadContext, LPCWSTR pwzILPath, LPCWSTR pwzNIPath, QCall::ObjectHandleOnStack retLoadedAssembly)
{
diff --git a/src/vm/assemblynative.hpp b/src/vm/assemblynative.hpp
index ece8100e95..514589fb4c 100644
--- a/src/vm/assemblynative.hpp
+++ b/src/vm/assemblynative.hpp
@@ -208,7 +208,6 @@ public:
static BOOL QCALLTYPE OverrideDefaultAssemblyLoadContextForCurrentDomain(INT_PTR ptrNativeAssemblyLoadContext);
static BOOL QCALLTYPE CanUseAppPathAssemblyLoadContextInCurrentDomain();
static void QCALLTYPE LoadFromPath(INT_PTR ptrNativeAssemblyLoadContext, LPCWSTR pwzILPath, LPCWSTR pwzNIPath, QCall::ObjectHandleOnStack retLoadedAssembly);
- static void QCALLTYPE GetLoadedAssembliesInternal(QCall::ObjectHandleOnStack assemblies);
static INT_PTR QCALLTYPE InternalLoadUnmanagedDllFromPath(LPCWSTR unmanagedLibraryPath);
static void QCALLTYPE LoadFromStream(INT_PTR ptrNativeAssemblyLoadContext, INT_PTR ptrAssemblyArray, INT32 cbAssemblyArrayLength, INT_PTR ptrSymbolArray, INT32 cbSymbolArrayLength, QCall::ObjectHandleOnStack retLoadedAssembly);
static Assembly* LoadFromPEImage(ICLRPrivBinder* pBinderContext, PEImage *pILImage, PEImage *pNIImage);
diff --git a/src/vm/ecalllist.h b/src/vm/ecalllist.h
index 5c3e5f82ba..f2784d11e3 100644
--- a/src/vm/ecalllist.h
+++ b/src/vm/ecalllist.h
@@ -519,6 +519,7 @@ FCFuncStart(gAppDomainFuncs)
#if FEATURE_COMINTEROP
FCFuncElement("nSetDisableInterfaceCache", AppDomainNative::SetDisableInterfaceCache)
#endif // FEATURE_COMINTEROP
+ FCFuncElement("nGetAssemblies", AppDomainNative::GetAssemblies)
FCFuncElement("nCreateContext", AppDomainNative::CreateContext)
FCFuncElement("GetId", AppDomainNative::GetId)
FCFuncElement("GetOrInternString", AppDomainNative::GetOrInternString)
@@ -617,7 +618,6 @@ FCFuncEnd()
FCFuncStart(gAssemblyLoadContextFuncs)
QCFuncElement("InitializeAssemblyLoadContext", AssemblyNative::InitializeAssemblyLoadContext)
QCFuncElement("LoadFromPath", AssemblyNative::LoadFromPath)
- QCFuncElement("GetLoadedAssembliesInternal", AssemblyNative::GetLoadedAssembliesInternal)
QCFuncElement("InternalLoadUnmanagedDllFromPath", AssemblyNative::InternalLoadUnmanagedDllFromPath)
QCFuncElement("CanUseAppPathAssemblyLoadContextInCurrentDomain", AssemblyNative::CanUseAppPathAssemblyLoadContextInCurrentDomain)
QCFuncElement("LoadFromStream", AssemblyNative::LoadFromStream)