mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-07-31 11:20:22 +02:00
Was trying to work on the crash on shutdown by making sure we explicitly delete items in tomahawkapp. Except where there are FIXMEs all are now explicitly deleted, in reverse order of instantiation. So far no help, but figured might as well keep the changes.
This commit is contained in:
@@ -151,6 +151,7 @@ using namespace Tomahawk;
|
|||||||
TomahawkApp::TomahawkApp( int& argc, char *argv[] )
|
TomahawkApp::TomahawkApp( int& argc, char *argv[] )
|
||||||
: TOMAHAWK_APPLICATION( argc, argv )
|
: TOMAHAWK_APPLICATION( argc, argv )
|
||||||
, m_database( 0 )
|
, m_database( 0 )
|
||||||
|
, m_databaseResolver( 0 )
|
||||||
, m_scanManager( 0 )
|
, m_scanManager( 0 )
|
||||||
, m_audioEngine( 0 )
|
, m_audioEngine( 0 )
|
||||||
, m_servent( 0 )
|
, m_servent( 0 )
|
||||||
@@ -309,26 +310,50 @@ TomahawkApp::~TomahawkApp()
|
|||||||
{
|
{
|
||||||
qDebug() << Q_FUNC_INFO;
|
qDebug() << Q_FUNC_INFO;
|
||||||
|
|
||||||
|
#ifdef LIBLASTFM_FOUND
|
||||||
|
delete m_scrobbler;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//FIXME: m_session doesn't allow you to stop(), so is this safe?
|
||||||
|
delete m_session.staticContentService();
|
||||||
|
|
||||||
// stop script resolvers
|
// stop script resolvers
|
||||||
foreach( Tomahawk::ExternalResolver* r, m_scriptResolvers.values() )
|
foreach( Tomahawk::ExternalResolver* r, m_scriptResolvers.values() )
|
||||||
{
|
{
|
||||||
delete r;
|
delete r;
|
||||||
}
|
}
|
||||||
m_scriptResolvers.clear();
|
m_scriptResolvers.clear();
|
||||||
|
Pipeline::instance()->removeResolver( m_databaseResolver );
|
||||||
|
delete m_databaseResolver;
|
||||||
|
|
||||||
delete m_servent;
|
//FIXME: Delete stuff created in initLocalCollection ?
|
||||||
delete m_scanManager;
|
|
||||||
#ifndef TOMAHAWK_HEADLESS
|
#ifndef TOMAHAWK_HEADLESS
|
||||||
delete m_mainwindow;
|
delete m_mainwindow;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
delete m_infoSystem;
|
||||||
|
|
||||||
|
//FIXME: delete GeneratorFactory::registerFactory( "echonest", new EchonestFactory ); ?
|
||||||
|
|
||||||
|
delete m_database;
|
||||||
|
|
||||||
|
delete SipHandler::instance();
|
||||||
|
|
||||||
|
delete m_servent;
|
||||||
|
|
||||||
|
Pipeline::instance()->stop();
|
||||||
|
delete Pipeline::instance();
|
||||||
|
|
||||||
|
delete m_scanManager;
|
||||||
|
|
||||||
|
#ifndef TOMAHAWK_HEADLESS
|
||||||
delete m_audioEngine;
|
delete m_audioEngine;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
delete SipHandler::instance();
|
delete TomahawkUtils::proxyFactory();
|
||||||
Pipeline::instance()->stop();
|
delete TomahawkUtils::nam();
|
||||||
|
|
||||||
delete m_database;
|
|
||||||
delete m_infoSystem;
|
|
||||||
|
|
||||||
qDebug() << "Finished shutdown.";
|
qDebug() << "Finished shutdown.";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -444,7 +469,8 @@ void
|
|||||||
TomahawkApp::setupPipeline()
|
TomahawkApp::setupPipeline()
|
||||||
{
|
{
|
||||||
// setup resolvers for local content, and (cached) remote collection content
|
// setup resolvers for local content, and (cached) remote collection content
|
||||||
Pipeline::instance()->addResolver( new DatabaseResolver( 100 ) );
|
m_databaseResolver = new DatabaseResolver( 100 );
|
||||||
|
Pipeline::instance()->addResolver( m_databaseResolver );
|
||||||
|
|
||||||
// load script resolvers
|
// load script resolvers
|
||||||
foreach( QString resolver, TomahawkSettings::instance()->enabledScriptResolvers() )
|
foreach( QString resolver, TomahawkSettings::instance()->enabledScriptResolvers() )
|
||||||
@@ -537,7 +563,6 @@ TomahawkApp::setupSIP()
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
qDebug() << "Connecting SIP classes";
|
qDebug() << "Connecting SIP classes";
|
||||||
//SipHandler::instance()->refreshProxy();
|
|
||||||
SipHandler::instance()->loadFromConfig( true );
|
SipHandler::instance()->loadFromConfig( true );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -42,6 +42,7 @@
|
|||||||
#include "utils/tomahawkutils.h"
|
#include "utils/tomahawkutils.h"
|
||||||
#include "kdsingleapplicationguard/kdsingleapplicationguard.h"
|
#include "kdsingleapplicationguard/kdsingleapplicationguard.h"
|
||||||
|
|
||||||
|
class DatabaseResolver;
|
||||||
class AudioEngine;
|
class AudioEngine;
|
||||||
class Database;
|
class Database;
|
||||||
class ScanManager;
|
class ScanManager;
|
||||||
@@ -116,6 +117,7 @@ private:
|
|||||||
QHash<QString, Tomahawk::ExternalResolver*> m_scriptResolvers;
|
QHash<QString, Tomahawk::ExternalResolver*> m_scriptResolvers;
|
||||||
|
|
||||||
Database* m_database;
|
Database* m_database;
|
||||||
|
DatabaseResolver* m_databaseResolver;
|
||||||
ScanManager *m_scanManager;
|
ScanManager *m_scanManager;
|
||||||
AudioEngine* m_audioEngine;
|
AudioEngine* m_audioEngine;
|
||||||
Servent* m_servent;
|
Servent* m_servent;
|
||||||
|
Reference in New Issue
Block a user