From 40f77e3b7b8eac6846c0328bb9623b78d3b80359 Mon Sep 17 00:00:00 2001 From: Jan Holthuis Date: Tue, 23 Jul 2024 18:46:18 +0200 Subject: [PATCH] fix(dlgprefwaveform): Fix `-Wdangling-reference` on GCC 14.1.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes the following warning: src/preferences/dialog/dlgprefwaveform.cpp: In member function ‘void DlgPrefWaveform::updateWaveformAcceleration(WaveformWidgetType::Type, WaveformWidgetBackend)’: src/preferences/dialog/dlgprefwaveform.cpp:462:21: error: possibly dangling reference to a temporary [-Werror=dangling-reference] 462 | const auto& handle = factory->getAvailableTypes()[handleIdx]; | ^~~~~~ src/preferences/dialog/dlgprefwaveform.cpp:462:68: note: the temporary was destroyed at the end of the full expression ‘WaveformWidgetFactory::getAvailableTypes() const().QList::operator[](((qsizetype)handleIdx))’ 462 | const auto& handle = factory->getAvailableTypes()[handleIdx]; | ^ cc1plus: all warnings being treated as errors I made `getAvailableTypes()` return a const reference to show that the underlying `QVector` does not get dropped. Alternatively, we'd have to save the return value in a temporary local variable to fix the warning. --- src/waveform/waveformwidgetfactory.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/waveform/waveformwidgetfactory.h b/src/waveform/waveformwidgetfactory.h index 0a297b5fdc8..82c147558b3 100644 --- a/src/waveform/waveformwidgetfactory.h +++ b/src/waveform/waveformwidgetfactory.h @@ -122,7 +122,9 @@ class WaveformWidgetFactory : public QObject, public Singleton getAvailableTypes() const { return m_waveformWidgetHandles;} + const QVector& getAvailableTypes() const { + return m_waveformWidgetHandles; + } void getAvailableVSyncTypes(QList>* list); void destroyWidgets();