@@ -543,32 +543,13 @@ MetaEnum::NextDomainToken(AppDomain** appDomain,
543543 return NextToken (token, NULL , NULL );
544544 }
545545
546- //
547- // Splay tokens across all app domains.
548- //
549-
550- while (true )
546+ // Need to fetch a token.
547+ if ((status = NextToken (token, NULL , NULL )) != S_OK)
551548 {
552- if (m_lastToken == mdTokenNil)
553- {
554- // Need to fetch a token.
555- if ((status = NextToken (token, NULL , NULL )) != S_OK)
556- {
557- return status;
558- }
559-
560- m_domainIter.Init ();
561- }
562-
563- if (m_domainIter.Next ())
564- {
565- break ;
566- }
567-
568- m_lastToken = mdTokenNil;
549+ return status;
569550 }
570551
571- *appDomain = m_domainIter. GetDomain ();
552+ *appDomain = AppDomain::GetCurrentDomain ();
572553 *token = m_lastToken;
573554
574555 return S_OK;
@@ -622,33 +603,14 @@ MetaEnum::NextDomainTokenByName(_In_opt_ LPCUTF8 namespaceName,
622603 return NextTokenByName (namespaceName, name, nameFlags, token);
623604 }
624605
625- //
626- // Splay tokens across all app domains.
627- //
628-
629- while (true )
606+ // Need to fetch a token.
607+ if ((status = NextTokenByName (namespaceName, name, nameFlags,
608+ token)) != S_OK)
630609 {
631- if (m_lastToken == mdTokenNil)
632- {
633- // Need to fetch a token.
634- if ((status = NextTokenByName (namespaceName, name, nameFlags,
635- token)) != S_OK)
636- {
637- return status;
638- }
639-
640- m_domainIter.Init ();
641- }
642-
643- if (m_domainIter.Next ())
644- {
645- break ;
646- }
647-
648- m_lastToken = mdTokenNil;
610+ return status;
649611 }
650612
651- *appDomain = m_domainIter. GetDomain ();
613+ *appDomain = AppDomain::GetCurrentDomain ();
652614 *token = m_lastToken;
653615
654616 return S_OK;
@@ -1366,35 +1328,16 @@ SplitName::CdNextDomainField(ClrDataAccess* dac,
13661328 0 , NULL , NULL , NULL , NULL );
13671329 }
13681330
1369- //
1370- // Splay fields across all app domains.
1371- //
1372-
1373- while (true )
1331+ // Need to fetch a field.
1332+ if ((status = CdNextField (dac, handle, NULL , NULL , NULL ,
1333+ 0 , NULL , NULL , NULL , NULL )) != S_OK)
13741334 {
1375- if (!split->m_lastField )
1376- {
1377- // Need to fetch a field.
1378- if ((status = CdNextField (dac, handle, NULL , NULL , NULL ,
1379- 0 , NULL , NULL , NULL , NULL )) != S_OK)
1380- {
1381- return status;
1382- }
1383-
1384- split->m_metaEnum .m_domainIter .Init ();
1385- }
1386-
1387- if (split->m_metaEnum .m_domainIter .Next ())
1388- {
1389- break ;
1390- }
1391-
1392- split->m_lastField = NULL ;
1335+ return status;
13931336 }
13941337
13951338 return ClrDataValue::
13961339 NewFromFieldDesc (dac,
1397- split-> m_metaEnum . m_domainIter . GetDomain (),
1340+ AppDomain::GetCurrentDomain (),
13981341 split->m_fieldEnum .IsFieldFromParentClass () ?
13991342 CLRDATA_VALUE_IS_INHERITED : 0 ,
14001343 split->m_lastField ,
@@ -3730,16 +3673,9 @@ ClrDataAccess::StartEnumAppDomains(
37303673
37313674 EX_TRY
37323675 {
3733- AppDomainIterator* iter = new (nothrow) AppDomainIterator (FALSE );
3734- if (iter)
3735- {
3736- *handle = TO_CDENUM (iter);
3737- status = S_OK;
3738- }
3739- else
3740- {
3741- status = E_OUTOFMEMORY;
3742- }
3676+ // Only one app domain - use 1 to indicate there there is a next value
3677+ *handle = 1 ;
3678+ status = S_OK;
37433679 }
37443680 EX_CATCH
37453681 {
@@ -3765,12 +3701,12 @@ ClrDataAccess::EnumAppDomain(
37653701
37663702 EX_TRY
37673703 {
3768- AppDomainIterator* iter = FROM_CDENUM (AppDomainIterator, *handle);
3769- if (iter->Next ())
3704+ if (*handle == 1 )
37703705 {
37713706 *appDomain = new (nothrow)
3772- ClrDataAppDomain (this , iter-> GetDomain ());
3707+ ClrDataAppDomain (this , AppDomain::GetCurrentDomain ());
37733708 status = *appDomain ? S_OK : E_OUTOFMEMORY;
3709+ *handle = 0 ;
37743710 }
37753711 else
37763712 {
@@ -3800,8 +3736,7 @@ ClrDataAccess::EndEnumAppDomains(
38003736
38013737 EX_TRY
38023738 {
3803- AppDomainIterator* iter = FROM_CDENUM (AppDomainIterator, handle);
3804- delete iter;
3739+ // Nothing to do - we don't actually create an iterator for app domains
38053740 status = S_OK;
38063741 }
38073742 EX_CATCH
@@ -4462,8 +4397,7 @@ ClrDataAccess::TranslateExceptionRecordToNotification(
44624397 else
44634398 {
44644399 // Find a likely domain, because it's the shared domain.
4465- AppDomainIterator adi (FALSE );
4466- appDomain = adi.GetDomain ();
4400+ appDomain = AppDomain::GetCurrentDomain ();
44674401 }
44684402
44694403 pubMethodInst =
@@ -4527,8 +4461,7 @@ ClrDataAccess::TranslateExceptionRecordToNotification(
45274461 else
45284462 {
45294463 // Find a likely domain, because it's the shared domain.
4530- AppDomainIterator adi (FALSE );
4531- appDomain = adi.GetDomain ();
4464+ appDomain = AppDomain::GetCurrentDomain ();
45324465 }
45334466
45344467 pubMethodInst =
0 commit comments