1 |
johu 12/03/16 12:23:27 |
2 |
|
3 |
Added: kdelibs-4.8.1-nepomuk-kmail.patch |
4 |
Log: |
5 |
Revision bump adds upstream patch to fix crashes in kmail caused by nepomuk concurrency problems. This is issue is fixed in KDE SC 4.8.2. Patch spotted by Volker Hemmann <volkerarmin@××××××××××.com>. Fixes bug #408421. |
6 |
|
7 |
(Portage version: 2.2.0_alpha90/cvs/Linux i686) |
8 |
|
9 |
Revision Changes Path |
10 |
1.1 kde-base/kdelibs/files/kdelibs-4.8.1-nepomuk-kmail.patch |
11 |
|
12 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/kde-base/kdelibs/files/kdelibs-4.8.1-nepomuk-kmail.patch?rev=1.1&view=markup |
13 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/kde-base/kdelibs/files/kdelibs-4.8.1-nepomuk-kmail.patch?rev=1.1&content-type=text/plain |
14 |
|
15 |
Index: kdelibs-4.8.1-nepomuk-kmail.patch |
16 |
=================================================================== |
17 |
diff --git a/nepomuk/core/resourcedata.cpp b/nepomuk/core/resourcedata.cpp |
18 |
index abe55ea..e65e66e 100644 |
19 |
--- a/nepomuk/core/resourcedata.cpp |
20 |
+++ b/nepomuk/core/resourcedata.cpp |
21 |
@@ -175,7 +175,7 @@ void Nepomuk::ResourceData::resetAll( bool isDelete ) |
22 |
if( !m_uri.isEmpty() ) { |
23 |
m_rm->m_initializedData.remove( m_uri ); |
24 |
if( m_rm->m_watcher && m_addedToWatcher ) { |
25 |
- m_rm->m_watcher->removeResource(Resource::fromResourceUri(m_uri)); |
26 |
+ QMetaObject::invokeMethod(m_rm->m_watcher, "removeResource", Qt::AutoConnection, Q_ARG(Nepomuk::Resource, Resource::fromResourceUri(m_uri))); |
27 |
m_addedToWatcher = false; |
28 |
} |
29 |
} |
30 |
@@ -394,15 +394,16 @@ bool Nepomuk::ResourceData::load() |
31 |
|
32 |
if(!m_rm->m_watcher) { |
33 |
m_rm->m_watcher = new ResourceWatcher(m_rm->m_manager); |
34 |
+ m_rm->m_watcher->moveToThread(m_rm->m_manager->thread()); |
35 |
QObject::connect( m_rm->m_watcher, SIGNAL(propertyAdded(Nepomuk::Resource, Nepomuk::Types::Property, QVariant)), |
36 |
m_rm->m_manager, SLOT(slotPropertyAdded(Nepomuk::Resource, Nepomuk::Types::Property, QVariant)) ); |
37 |
QObject::connect( m_rm->m_watcher, SIGNAL(propertyRemoved(Nepomuk::Resource, Nepomuk::Types::Property, QVariant)), |
38 |
m_rm->m_manager, SLOT(slotPropertyRemoved(Nepomuk::Resource, Nepomuk::Types::Property, QVariant)) ); |
39 |
m_rm->m_watcher->addResource( Nepomuk::Resource::fromResourceUri(m_uri) ); |
40 |
- m_rm->m_watcher->start(); |
41 |
+ QMetaObject::invokeMethod(m_rm->m_watcher, "start", Qt::AutoConnection); |
42 |
} |
43 |
else { |
44 |
- m_rm->m_watcher->addResource( Nepomuk::Resource::fromResourceUri(m_uri) ); |
45 |
+ QMetaObject::invokeMethod(m_rm->m_watcher, "addResource", Qt::AutoConnection, Q_ARG(Nepomuk::Resource, Nepomuk::Resource::fromResourceUri(m_uri)) ); |
46 |
} |
47 |
m_addedToWatcher = true; |
48 |
|
49 |
diff --git a/nepomuk/core/resourcewatcher.h b/nepomuk/core/resourcewatcher.h |
50 |
index 06b9622..92b12f5 100644 |
51 |
--- a/nepomuk/core/resourcewatcher.h |
52 |
+++ b/nepomuk/core/resourcewatcher.h |
53 |
@@ -93,6 +93,7 @@ namespace Nepomuk { |
54 |
*/ |
55 |
virtual ~ResourceWatcher(); |
56 |
|
57 |
+ public Q_SLOTS: |
58 |
/** |
59 |
* \brief Add a type to be watched. |
60 |
* |
61 |
@@ -204,7 +205,6 @@ namespace Nepomuk { |
62 |
*/ |
63 |
QList<Types::Property> properties() const; |
64 |
|
65 |
- public Q_SLOTS: |
66 |
/** |
67 |
* \brief Start the signalling of changes. |
68 |
* |