diff options
Diffstat (limited to 'user/audacious/qt-crash.patch')
-rw-r--r-- | user/audacious/qt-crash.patch | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/user/audacious/qt-crash.patch b/user/audacious/qt-crash.patch new file mode 100644 index 000000000..4b7d42d3b --- /dev/null +++ b/user/audacious/qt-crash.patch @@ -0,0 +1,43 @@ +From 61471d51503736d868f5978f5b9a1471f3d2c9ce Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Thu, 20 Sep 2018 12:36:16 -0500 +Subject: [PATCH] libaudqt: Fix crash when infopopup is being hidden + +Hovering over the track I wanted to listen to showed a tool tip (the +InfoPopup widget); if I moved the mouse in any way after the widget was +displayed, it would immediately crash with a segmentation fault. + +Valgrind showed that this was due to s_infopopup being deleted from an +event that involved it. By switching both `delete` to `deleteLater`, +the crash no longer occurs. + +Closes: #828. +--- + src/libaudqt/infopopup-qt.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/libaudqt/infopopup-qt.cc b/src/libaudqt/infopopup-qt.cc +index fdbba41d2..cad4d16d5 100644 +--- a/src/libaudqt/infopopup-qt.cc ++++ b/src/libaudqt/infopopup-qt.cc +@@ -176,7 +176,7 @@ static InfoPopup * s_infopopup; + + static void infopopup_show (const String & filename, const Tuple & tuple) + { +- delete s_infopopup; ++ if(s_infopopup) s_infopopup->deleteLater(); + s_infopopup = new InfoPopup (filename, tuple); + + QObject::connect (s_infopopup, & QObject::destroyed, [] () { +@@ -206,7 +206,7 @@ EXPORT void infopopup_show_current () + + EXPORT void infopopup_hide () + { +- delete s_infopopup; ++ s_infopopup->deleteLater(); + } + + } // namespace audqt +-- +2.18.0 + |