@@ -2834,19 +2834,17 @@ ClrDataAccess::GetAppDomainData(CLRDATA_ADDRESS addr, struct DacpAppDomainData *
28342834 }
28352835 else
28362836 {
2837- PTR_BaseDomain pBaseDomain = PTR_BaseDomain (TO_TADDR (addr));
2838-
28392837 ZeroMemory (appdomainData, sizeof (DacpAppDomainData));
2840- appdomainData->AppDomainPtr = PTR_CDADDR (pBaseDomain) ;
2838+ appdomainData->AppDomainPtr = addr ;
28412839 PTR_LoaderAllocator pLoaderAllocator = SystemDomain::GetGlobalLoaderAllocator ();
28422840 appdomainData->pHighFrequencyHeap = HOST_CDADDR (pLoaderAllocator->GetHighFrequencyHeap ());
28432841 appdomainData->pLowFrequencyHeap = HOST_CDADDR (pLoaderAllocator->GetLowFrequencyHeap ());
28442842 appdomainData->pStubHeap = HOST_CDADDR (pLoaderAllocator->GetStubHeap ());
28452843 appdomainData->appDomainStage = STAGE_OPEN;
28462844
2847- if (pBaseDomain-> IsAppDomain ( ))
2845+ if (addr != HOST_CDADDR ( SystemDomain::System () ))
28482846 {
2849- AppDomain * pAppDomain = pBaseDomain-> AsAppDomain ( );
2847+ PTR_AppDomain pAppDomain = PTR_AppDomain ( TO_TADDR (addr) );
28502848 appdomainData->DomainLocalBlock = 0 ;
28512849 appdomainData->pDomainLocalModules = 0 ;
28522850
@@ -2963,15 +2961,19 @@ ClrDataAccess::GetAssemblyList(CLRDATA_ADDRESS addr, int count, CLRDATA_ADDRESS
29632961
29642962 SOSDacEnter ();
29652963
2966- BaseDomain* pBaseDomain = PTR_BaseDomain (TO_TADDR (addr));
2967-
2968- int n=0 ;
2969- if (pBaseDomain->IsAppDomain ())
2964+ if (addr == HOST_CDADDR (SystemDomain::System ()))
2965+ {
2966+ // We shouldn't be asking for the assemblies in SystemDomain
2967+ hr = E_INVALIDARG;
2968+ }
2969+ else
29702970 {
2971- AppDomain::AssemblyIterator i = pBaseDomain->AsAppDomain ()->IterateAssembliesEx (
2971+ PTR_AppDomain pAppDomain = PTR_AppDomain (TO_TADDR (addr));
2972+ AppDomain::AssemblyIterator i = pAppDomain->IterateAssembliesEx (
29722973 (AssemblyIterationFlags)(kIncludeLoading | kIncludeLoaded | kIncludeExecution ));
29732974 CollectibleAssemblyHolder<DomainAssembly *> pDomainAssembly;
29742975
2976+ int n = 0 ;
29752977 if (values)
29762978 {
29772979 while (i.Next (pDomainAssembly.This ()) && (n < count))
@@ -2994,13 +2996,6 @@ ClrDataAccess::GetAssemblyList(CLRDATA_ADDRESS addr, int count, CLRDATA_ADDRESS
29942996 if (pNeeded)
29952997 *pNeeded = n;
29962998 }
2997- else
2998- {
2999- // The only other type of BaseDomain is the SystemDomain, and we shouldn't be asking
3000- // for the assemblies in it.
3001- _ASSERTE (false );
3002- hr = E_INVALIDARG;
3003- }
30042999
30053000 SOSDacLeave ();
30063001 return hr;
@@ -3040,19 +3035,17 @@ ClrDataAccess::GetAppDomainName(CLRDATA_ADDRESS addr, unsigned int count, _Inout
30403035{
30413036 SOSDacEnter ();
30423037
3043- PTR_BaseDomain pBaseDomain = PTR_BaseDomain (TO_TADDR (addr));
3044- if (!pBaseDomain->IsAppDomain ())
3038+ if (addr == HOST_CDADDR (SystemDomain::System ()))
30453039 {
3046- // Shared domain and SystemDomain don 't have this field.
3040+ // SystemDomain doesn 't have this field.
30473041 if (pNeeded)
30483042 *pNeeded = 1 ;
30493043 if (name)
30503044 name[0 ] = 0 ;
30513045 }
30523046 else
30533047 {
3054- AppDomain* pAppDomain = pBaseDomain->AsAppDomain ();
3055-
3048+ PTR_AppDomain pAppDomain = PTR_AppDomain (TO_TADDR (addr));
30563049 if (!pAppDomain->m_friendlyName .IsEmpty ())
30573050 {
30583051 if (!pAppDomain->m_friendlyName .DacGetUnicode (count, name, pNeeded))
@@ -3103,9 +3096,9 @@ ClrDataAccess::GetAppDomainConfigFile(CLRDATA_ADDRESS appDomain, int count,
31033096}
31043097
31053098HRESULT
3106- ClrDataAccess::GetAssemblyData (CLRDATA_ADDRESS cdBaseDomainPtr , CLRDATA_ADDRESS assembly, struct DacpAssemblyData *assemblyData)
3099+ ClrDataAccess::GetAssemblyData (CLRDATA_ADDRESS domain , CLRDATA_ADDRESS assembly, struct DacpAssemblyData *assemblyData)
31073100{
3108- if (assembly == (CLRDATA_ADDRESS)NULL && cdBaseDomainPtr == (CLRDATA_ADDRESS)NULL )
3101+ if (assembly == (CLRDATA_ADDRESS)NULL && domain == (CLRDATA_ADDRESS)NULL )
31093102 {
31103103 return E_INVALIDARG;
31113104 }
@@ -3117,14 +3110,9 @@ ClrDataAccess::GetAssemblyData(CLRDATA_ADDRESS cdBaseDomainPtr, CLRDATA_ADDRESS
31173110 // Make sure conditionally-assigned fields like AssemblySecDesc, LoadContext, etc. are zeroed
31183111 ZeroMemory (assemblyData, sizeof (DacpAssemblyData));
31193112
3120- // If the specified BaseDomain is an AppDomain, get a pointer to it
3121- AppDomain * pDomain = NULL ;
3122- if (cdBaseDomainPtr != (CLRDATA_ADDRESS)NULL )
3113+ if (domain != (CLRDATA_ADDRESS)NULL )
31233114 {
3124- assemblyData->BaseDomainPtr = cdBaseDomainPtr;
3125- PTR_BaseDomain baseDomain = PTR_BaseDomain (TO_TADDR (cdBaseDomainPtr));
3126- if ( baseDomain->IsAppDomain () )
3127- pDomain = baseDomain->AsAppDomain ();
3115+ assemblyData->DomainPtr = domain;
31283116 }
31293117
31303118 assemblyData->AssemblyPtr = HOST_CDADDR (pAssembly);
0 commit comments