Fix a memory leak in Song (dynamically allocated error list)

Make the member Song::m_errors a static member to prevent memory leaks.
The member was allocated dynamically when an instance of a Song was
created but was not deleted in the destructor.
This commit is contained in:
Michael Gregorius
2017-07-27 19:07:19 +02:00
parent 9d92ea2cca
commit 017fb4b089
2 changed files with 6 additions and 7 deletions

View File

@@ -367,7 +367,7 @@ private:
bool m_loadingProject;
QList<QString> * m_errors;
QList<QString> m_errors;
PlayModes m_playMode;
PlayPos m_playPos[Mode_Count];

View File

@@ -86,7 +86,6 @@ Song::Song() :
m_playing( false ),
m_paused( false ),
m_loadingProject( false ),
m_errors( new QList<QString>() ),
m_playMode( Mode_None ),
m_length( 0 ),
m_patternToPlay( NULL ),
@@ -1506,21 +1505,21 @@ void Song::removeController( Controller * controller )
void Song::clearErrors()
{
m_errors->clear();
m_errors.clear();
}
void Song::collectError( const QString error )
{
m_errors->append( error );
m_errors.append( error );
}
bool Song::hasErrors()
{
return ( m_errors->length() > 0 );
return !m_errors.empty();
}
@@ -1529,9 +1528,9 @@ QString* Song::errorSummary()
{
QString* errors = new QString();
for ( int i = 0 ; i < m_errors->length() ; i++ )
for ( int i = 0 ; i < m_errors.length() ; i++ )
{
errors->append( m_errors->value( i ) + "\n" );
errors->append( m_errors.value( i ) + "\n" );
}
errors->prepend( "\n\n" );