fix repeated slow updates
fix memory leak (apToDelete[i] was not actually being deleted)
This commit is contained in:
@@ -1611,10 +1611,22 @@ void SongManager::FreeAllLoadedFromProfile( ProfileSlot slot )
|
|||||||
apToDelete.push_back( *c );
|
apToDelete.push_back( *c );
|
||||||
}
|
}
|
||||||
|
|
||||||
// XXX: this will update best, etc. every time; too slow
|
/* We don't use DeleteCourse here, so we don't UpdatePopular and UpdateShuffled
|
||||||
|
* repeatedly. */
|
||||||
for( unsigned i = 0; i < apToDelete.size(); ++i )
|
for( unsigned i = 0; i < apToDelete.size(); ++i )
|
||||||
this->DeleteCourse( apToDelete[i] );
|
{
|
||||||
|
vector<Course*>::iterator iter = find( m_pCourses.begin(), m_pCourses.end(), apToDelete[i] );
|
||||||
|
ASSERT( iter != m_pCourses.end() );
|
||||||
|
m_pCourses.erase( iter );
|
||||||
|
delete apToDelete[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Popular and Shuffled may refer to courses that we just freed. */
|
||||||
|
UpdatePopular();
|
||||||
|
UpdateShuffled();
|
||||||
|
RefreshCourseGroupInfo();
|
||||||
|
|
||||||
|
/* Free profile steps. */
|
||||||
FOREACH( Song*, m_pSongs, s )
|
FOREACH( Song*, m_pSongs, s )
|
||||||
(*s)->FreeAllLoadedFromProfile( slot );
|
(*s)->FreeAllLoadedFromProfile( slot );
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user