Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Backports:SLE-12-SP1
kactivities5.5214
fix-crash-in-activities-context-menu.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File fix-crash-in-activities-context-menu.patch of Package kactivities5.5214
From: David Edmundson <david@davidedmundson.co.uk> Date: Sat, 06 Feb 2016 18:02:53 +0000 Subject: Fix crash in activities context menu X-Git-Url: http://quickgit.kde.org/?p=kactivities.git&a=commitdiff&h=b3c8ad1ad48d65ea77724f94073909dc8ab97596 --- Fix crash in activities context menu Currently we call deleteLater() from inside ::run which is running in a different thread than the receiving object. (QThread objects live in the thread that created them, not in the thread they create) This patch causes deleteLater to be run in the right thread. QCoreApplication::postEvent is thread safe but it needs to be in the right thread to work out the correct event loop level for deferred delete events. BUG: 351485 REVIEW: 126955 --- --- a/src/workspace/fileitemplugin/FileItemLinkingPlugin.cpp +++ b/src/workspace/fileitemplugin/FileItemLinkingPlugin.cpp @@ -124,7 +124,7 @@ setActions({ action }); } else if (!loaded) { - auto loader = new FileItemLinkingPluginActionLoader(items); + auto loader = FileItemLinkingPluginActionLoader::create(items); static FileItemLinkingPluginActionStaticInit init; --- a/src/workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp +++ b/src/workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp @@ -39,6 +39,13 @@ #include <KLocalizedString> #include "common/dbus/common.h" + +FileItemLinkingPluginActionLoader* FileItemLinkingPluginActionLoader::create(const KFileItemListProperties &items) +{ + auto l = new FileItemLinkingPluginActionLoader(items); + connect(l, &QThread::finished, l, &QObject::deleteLater); + return l; +} FileItemLinkingPluginActionLoader::FileItemLinkingPluginActionLoader( const KFileItemListProperties &items) @@ -150,8 +157,6 @@ } emit result(actions); - - deleteLater(); } Action --- a/src/workspace/fileitemplugin/FileItemLinkingPluginActionLoader.h +++ b/src/workspace/fileitemplugin/FileItemLinkingPluginActionLoader.h @@ -33,8 +33,7 @@ Q_OBJECT public: - FileItemLinkingPluginActionLoader(const KFileItemListProperties &items); - + static FileItemLinkingPluginActionLoader* create(const KFileItemListProperties &items); void run() Q_DECL_OVERRIDE; Action createAction(const QString &activity, bool link, @@ -46,6 +45,7 @@ void result(const ActionList &actions); private: + FileItemLinkingPluginActionLoader(const KFileItemListProperties &items); KFileItemListProperties items; KActivities::Consumer activities; };
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor