diff options
Diffstat (limited to 'kde-unstable/kdemultimedia/fix-memleak-in-kmix.patch')
-rw-r--r-- | kde-unstable/kdemultimedia/fix-memleak-in-kmix.patch | 55 |
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; + } + |