Index: playlist.cpp
===================================================================
RCS file: /src/repository/freeamp/base/src/playlist.cpp,v
retrieving revision 1.115
diff -r1.115 playlist.cpp
332a333
>     vector<PlaylistItem*>::iterator pi,pe;
337,339c338,339
<     size = m_masterList.size();
< 
<     for(index = 0; index < size; index++)
---
>     pe = m_masterList.end();
>     for(pi = m_masterList.begin(); pi !=  pe; pi++)
341,343c341,342
<         item = m_masterList[index];
< 
<         if(item)
---
>         item = *pi;
>         if (item && item->GetState() == kPlaylistItemState_Delete)
345,356c344,345
<             // if the metadata thread is still accessing this item
<             // we don't wanna delete the item  out from under it.
<             // instead we set a flag and let the metadata thread
<             // clean up when it returns.
<             if(item->GetState() == kPlaylistItemState_RetrievingMetaData)
<             {
<                 item->SetState(kPlaylistItemState_Delete);  
<             }
<             else
<             {
<                 delete item;
<             }
---
>             delete item;
>             item = NULL;
359,360d347
<     
<     size = m_externalList.size();
362c349,350
<     for(index = 0; index < size; index++)
---
>     pe = m_externalList.end();
>     for(pi = m_externalList.begin(); pi !=  pe; pi++)
364,366c352,353
<         item = m_externalList[index];
< 
<         if(item)
---
>         item = *pi;
>         if (item && item->GetState() == kPlaylistItemState_Delete)
368,379c355,356
<             // if the metadata thread is still accessing this item
<             // we don't wanna delete the item  out from under it.
<             // instead we set a flag and let the metadata thread
<             // clean up when it returns.
<             if(item->GetState() == kPlaylistItemState_RetrievingMetaData)
<             {
<                 item->SetState(kPlaylistItemState_Delete);  
<             }
<             else
<             {
<                 delete item;
<             }
---
>             delete item;
>             item = NULL;
382,385c359,361
< 
<     size = m_portableList.size();
< 
<     for(index = 0; index < size; index++)
---
>     
>     pe = m_portableList.end();
>     for(pi = m_portableList.begin(); pi !=  pe; pi++)
387,389c363,364
<         item = m_portableList[index];
< 
<         if(item)
---
>         item = *pi;
>         if (item && item->GetState() == kPlaylistItemState_Delete)
391,402c366,367
<             // if the metadata thread is still accessing this item
<             // we don't wanna delete the item  out from under it.
<             // instead we set a flag and let the metadata thread
<             // clean up when it returns.
<             if(item->GetState() == kPlaylistItemState_RetrievingMetaData)
<             {
<                 item->SetState(kPlaylistItemState_Delete);  
<             }
<             else
<             {
<                 delete item;
<             }
---
>             delete item;
>             item = NULL;
1069,1080c1034
<         // if the metadata thread is still accessing this item
<         // we don't wanna delete the item  out from under it.
<         // instead we set a flag and let the metadata thread
<         // clean up when it returns.
<         if(item->GetState() == kPlaylistItemState_RetrievingMetaData)
<         {
<             item->SetState(kPlaylistItemState_Delete);  
<         }
<         else
<         {
<             delete item;
<         }
---
>         item->SetState(kPlaylistItemState_Delete);  
1158,1169c1112
<             // if the metadata thread is still accessing this item
<             // we don't wanna delete the item  out from under it.
<             // instead we set a flag and let the metadata thread
<             // clean up when it returns.
<             if(item->GetState() == kPlaylistItemState_RetrievingMetaData)
<             {
<                 item->SetState(kPlaylistItemState_Delete);  
<             }
<             else
<             {
<                 delete item;
<             }
---
>             item->SetState(kPlaylistItemState_Delete);  
1254,1265c1197
<                 // if the metadata thread is still accessing this item
<                 // we don't wanna delete the item  out from under it.
<                 // instead we set a flag and let the metadata thread
<                 // clean up when it returns.
<                 if(item->GetState() == kPlaylistItemState_RetrievingMetaData)
<                 {
<                     item->SetState(kPlaylistItemState_Delete);  
<                 }
<                 else
<                 {
<                     delete item;
<                 }
---
>                 item->SetState(kPlaylistItemState_Delete);  
1322,1333c1254
<             // if the metadata thread is still accessing this item
<             // we don't wanna delete the item  out from under it.
<             // instead we set a flag and let the metadata thread
<             // clean up when it returns.
<             if(item->GetState() == kPlaylistItemState_RetrievingMetaData)
<             {
<                 item->SetState(kPlaylistItemState_Delete);  
<             }
<             else
<             {
<                 delete item;
<             }          
---
>             item->SetState(kPlaylistItemState_Delete);  
1772,1783c1693
<                 // if the metadata thread is still accessing this item
<                 // we don't wanna delete the item  out from under it.
<                 // instead we set a flag and let the metadata thread
<                 // clean up when it returns.
<                 if(item->GetState() == kPlaylistItemState_RetrievingMetaData)
<                 {
<                     item->SetState(kPlaylistItemState_Delete);  
<                 }
<                 else
<                 {
<                     delete item;
<                 }
---
>                 item->SetState(kPlaylistItemState_Delete);  
2144,2155c2054
<                     // if the metadata thread is still accessing this item
<                     // we don't wanna delete the item  out from under it.
<                     // instead we set a flag and let the metadata thread
<                     // clean up when it returns.
<                     if(item->GetState() == kPlaylistItemState_RetrievingMetaData)
<                     {
<                         item->SetState(kPlaylistItemState_Delete);  
<                     }
<                     else
<                     {
<                         delete item;
<                     }
---
>                     item->SetState(kPlaylistItemState_Delete);  
2207,2218c2106
<                 // if the metadata thread is still accessing this item
<                 // we don't wanna delete the item  out from under it.
<                 // instead we set a flag and let the metadata thread
<                 // clean up when it returns.
<                 if(item->GetState() == kPlaylistItemState_RetrievingMetaData)
<                 {
<                     item->SetState(kPlaylistItemState_Delete);  
<                 }
<                 else
<                 {
<                     delete item;
<                 }
---
>                 item->SetState(kPlaylistItemState_Delete);  
2501a2390
>                     item = NULL;
