summaryrefslogtreecommitdiffstats
path: root/src/widget
diff options
context:
space:
mode:
authorUwe Klotz <uklotz@mixxx.org>2020-04-18 12:56:50 +0200
committerUwe Klotz <uklotz@mixxx.org>2020-04-18 13:00:27 +0200
commitee3593f120884393b5580fecc11d2551589494b3 (patch)
tree3394540dc28772cba5de9f4cec0a4b899811f9a9 /src/widget
parentf8a7f21a7c6b5ff7906b75d715d22845f0c841fd (diff)
Fix undefined behavior warning for QPointer upon deletion
Diffstat (limited to 'src/widget')
-rw-r--r--src/widget/wtrackmenu.cpp7
-rw-r--r--src/widget/wtrackmenu.h3
2 files changed, 8 insertions, 2 deletions
diff --git a/src/widget/wtrackmenu.cpp b/src/widget/wtrackmenu.cpp
index 969f43f8d9..4312ca939b 100644
--- a/src/widget/wtrackmenu.cpp
+++ b/src/widget/wtrackmenu.cpp
@@ -60,6 +60,13 @@ WTrackMenu::WTrackMenu(QWidget* parent,
setupActions();
}
+WTrackMenu::~WTrackMenu() {
+ // ~QPointer() needs the definition of the wrapped type
+ // upon deletion! Otherwise the behavior is undefined.
+ // The wrapped types of some QPointer members are only
+ // forward declared in the header file.
+}
+
void WTrackMenu::popup(const QPoint& pos, QAction* at) {
if (getTrackPointers().empty()) {
return;
diff --git a/src/widget/wtrackmenu.h b/src/widget/wtrackmenu.h
index f4a25a4794..8d45d87087 100644
--- a/src/widget/wtrackmenu.h
+++ b/src/widget/wtrackmenu.h
@@ -50,8 +50,7 @@ class WTrackMenu : public QMenu {
TrackCollectionManager* pTrackCollectionManager,
Features flags = Feature::All,
TrackModel* trackModel = nullptr);
-
- ~WTrackMenu() override = default;
+ ~WTrackMenu() override;
void loadTrack(TrackId trackId);
void loadTrack(QModelIndex index);