summaryrefslogtreecommitdiff
path: root/kde-unstable/kdemultimedia/fix-memleak-in-kmix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'kde-unstable/kdemultimedia/fix-memleak-in-kmix.patch')
-rw-r--r--kde-unstable/kdemultimedia/fix-memleak-in-kmix.patch55
1 files changed, 55 insertions, 0 deletions
diff --git a/kde-unstable/kdemultimedia/fix-memleak-in-kmix.patch b/kde-unstable/kdemultimedia/fix-memleak-in-kmix.patch
new file mode 100644
index 000000000..31ea4a606
--- /dev/null
+++ b/kde-unstable/kdemultimedia/fix-memleak-in-kmix.patch
@@ -0,0 +1,55 @@
+Index: kdemultimedia/kmix/backends/mixer_pulse.cpp
+===================================================================
+--- kdemultimedia/kmix/backends/mixer_pulse.cpp (revision 1241345)
++++ kdemultimedia/kmix/backends/mixer_pulse.cpp (revision 1241346)
+@@ -754,7 +754,12 @@
+ return;
+ }
+ addDevice((*map)[index]);
+- emit controlsReconfigured(_mixer->id());
++ // Do not emit directly to ensure all connected slots are executed
++ // in their own event loop.
++ QMetaObject::invokeMethod(this,
++ "controlsReconfigured",
++ Qt::QueuedConnection,
++ Q_ARG(QString, _mixer->id()));
+ }
+
+ void Mixer_PULSE::removeWidget(int index)
+@@ -778,7 +783,12 @@
+ {
+ delete *iter;
+ m_mixDevices.erase(iter);
+- emit controlsReconfigured(_mixer->id());
++ // Do not emit directly to ensure all connected slots are executed
++ // in their own event loop.
++ QMetaObject::invokeMethod(this,
++ "controlsReconfigured",
++ Qt::QueuedConnection,
++ Q_ARG(QString, _mixer->id()));
+ return;
+ }
+ }
+@@ -799,7 +809,12 @@
+ delete *iter;
+ m_mixDevices.erase(iter);
+ }
+- emit controlsReconfigured(_mixer->id());
++ // Do not emit directly to ensure all connected slots are executed
++ // in their own event loop.
++ QMetaObject::invokeMethod(this,
++ "controlsReconfigured",
++ Qt::QueuedConnection,
++ Q_ARG(QString, _mixer->id()));
+ }
+
+ void Mixer_PULSE::addDevice(devinfo& dev)
+@@ -990,7 +1005,7 @@
+ kDebug(67100) << "Using PulseAudio for mixer: " << m_mixerName;
+ m_isOpen = true;
+ }
+-
++
+ return 0;
+ }
+