[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/4.4/kdebase/runtime/nepomuk/services/storage
From: Sebastian Trueg <sebastian () trueg ! de>
Date: 2010-05-26 16:11:15
Message-ID: 20100526161115.1949CAC8C0 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1130851 by trueg:
Backport: crash fix on logout
M +14 -6 nepomukcore.cpp
M +2 -0 nepomukcore.h
--- branches/KDE/4.4/kdebase/runtime/nepomuk/services/storage/nepomukcore.cpp #1130850:1130851
@@ -43,7 +43,6 @@
Nepomuk::Core::~Core()
{
kDebug() << "Shutting down Nepomuk storage core.";
- delete m_repository;
}
@@ -72,17 +71,26 @@
{
// we only allow the one model
if ( name == QLatin1String( s_repositoryName ) ) {
+ // we need to use createModel via ServerCore::model to ensure proper memory
+ // management. Otherwise m_repository could be deleted before all connections
+ // are down
+ return ServerCore::model( name );
+ }
+ else {
+ return 0;
+ }
+}
+
+
+Soprano::Model* Nepomuk::Core::createModel( const Soprano::BackendSettings& )
+{
if ( !m_repository ) {
- m_repository = new Repository( name );
+ m_repository = new Repository( QLatin1String( s_repositoryName ) );
connect( m_repository, SIGNAL( opened( Repository*, bool ) ),
this, SLOT( slotRepositoryOpened( Repository*, bool ) ) );
QTimer::singleShot( 0, m_repository, SLOT( open() ) );
}
return m_repository;
}
- else {
- return 0;
- }
-}
#include "nepomukcore.moc"
--- branches/KDE/4.4/kdebase/runtime/nepomuk/services/storage/nepomukcore.h #1130850:1130851
@@ -58,6 +58,8 @@
void slotRepositoryOpened( Repository* repo, bool success );
private:
+ Soprano::Model* createModel( const Soprano::BackendSettings& );
+
/// the one single "main" repository Nepomuk uses
Repository* m_repository;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic