mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-03-21 00:09:47 +01: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:
parent
f9a6775126
commit
6e19a85d73
@ -151,6 +151,7 @@ using namespace Tomahawk;
|
||||
TomahawkApp::TomahawkApp( int& argc, char *argv[] )
|
||||
: TOMAHAWK_APPLICATION( argc, argv )
|
||||
, m_database( 0 )
|
||||
, m_databaseResolver( 0 )
|
||||
, m_scanManager( 0 )
|
||||
, m_audioEngine( 0 )
|
||||
, m_servent( 0 )
|
||||
@ -309,26 +310,50 @@ TomahawkApp::~TomahawkApp()
|
||||
{
|
||||
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
|
||||
foreach( Tomahawk::ExternalResolver* r, m_scriptResolvers.values() )
|
||||
{
|
||||
delete r;
|
||||
}
|
||||
m_scriptResolvers.clear();
|
||||
Pipeline::instance()->removeResolver( m_databaseResolver );
|
||||
delete m_databaseResolver;
|
||||
|
||||
delete m_servent;
|
||||
delete m_scanManager;
|
||||
//FIXME: Delete stuff created in initLocalCollection ?
|
||||
|
||||
#ifndef TOMAHAWK_HEADLESS
|
||||
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;
|
||||
#endif
|
||||
|
||||
delete SipHandler::instance();
|
||||
Pipeline::instance()->stop();
|
||||
|
||||
delete m_database;
|
||||
delete m_infoSystem;
|
||||
|
||||
delete TomahawkUtils::proxyFactory();
|
||||
delete TomahawkUtils::nam();
|
||||
|
||||
qDebug() << "Finished shutdown.";
|
||||
}
|
||||
|
||||
@ -444,7 +469,8 @@ void
|
||||
TomahawkApp::setupPipeline()
|
||||
{
|
||||
// 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
|
||||
foreach( QString resolver, TomahawkSettings::instance()->enabledScriptResolvers() )
|
||||
@ -537,7 +563,6 @@ TomahawkApp::setupSIP()
|
||||
#endif
|
||||
|
||||
qDebug() << "Connecting SIP classes";
|
||||
//SipHandler::instance()->refreshProxy();
|
||||
SipHandler::instance()->loadFromConfig( true );
|
||||
}
|
||||
}
|
||||
|
@ -42,6 +42,7 @@
|
||||
#include "utils/tomahawkutils.h"
|
||||
#include "kdsingleapplicationguard/kdsingleapplicationguard.h"
|
||||
|
||||
class DatabaseResolver;
|
||||
class AudioEngine;
|
||||
class Database;
|
||||
class ScanManager;
|
||||
@ -116,6 +117,7 @@ private:
|
||||
QHash<QString, Tomahawk::ExternalResolver*> m_scriptResolvers;
|
||||
|
||||
Database* m_database;
|
||||
DatabaseResolver* m_databaseResolver;
|
||||
ScanManager *m_scanManager;
|
||||
AudioEngine* m_audioEngine;
|
||||
Servent* m_servent;
|
||||
|
Loading…
x
Reference in New Issue
Block a user