diff options
-rw-r--r-- | src/vm/eventpipeconfiguration.cpp | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/vm/eventpipeconfiguration.cpp b/src/vm/eventpipeconfiguration.cpp index 80c4878782..8a1f3bce2a 100644 --- a/src/vm/eventpipeconfiguration.cpp +++ b/src/vm/eventpipeconfiguration.cpp @@ -413,17 +413,12 @@ void EventPipeConfiguration::DeleteDeferredProviders() while(pElem != NULL) { EventPipeProvider *pProvider = pElem->GetValue(); + pElem = m_pProviderList->GetNext(pElem); if(pProvider->GetDeleteDeferred()) { - // The act of deleting the provider unregisters it and removes it from the list. + // The act of deleting the provider unregisters it, + // removes it from the list, and deletes the list element delete(pProvider); - SListElem<EventPipeProvider*> *pCurElem = pElem; - pElem = m_pProviderList->GetNext(pElem); - delete(pCurElem); - } - else - { - pElem = m_pProviderList->GetNext(pElem); } } } |