]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/components/simple_preferences.cpp
Preferences: fix some memleaks and fix horrible video-filter bug. :D
[vlc] / modules / gui / qt4 / components / simple_preferences.cpp
index 206283f2766272383d8daedf10f23100fd9b4f17..980b504b6de62c2d52ccc35be5d69f6c773101d0 100644 (file)
@@ -40,6 +40,8 @@
 #include <QUrl>
 #include <QVBoxLayout>
 
+#include <QtAlgorithms>
+
 #include <string>
 
 #define ICON_HEIGHT 64
@@ -334,7 +336,9 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
 
             CONNECT( ui.volNormBox, toggled( bool ), ui.volNormSpin,
                      setEnabled( bool ) );
-            qs_filter = qfu( config_GetPsz( p_intf, "audio-filter" ) );
+            char* psz = config_GetPsz( p_intf, "audio-filter" );
+            qs_filter = qfu( psz );
+            free( psz );
             bool b_normalizer = ( qs_filter.contains( "volnorm" ) );
             {
                 ui.volNormBox->setChecked( b_normalizer );
@@ -381,7 +385,9 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
             ui.systemCodecBox->hide();
 #endif
             /* Access Filters */
-            qs_filter = qfu( config_GetPsz( p_intf, "access-filter" ) );
+            char* psz = config_GetPsz( p_intf, "access-filter" );
+            qs_filter = qfu( psz );
+            free( psz );
             ui.timeshiftBox->setChecked( qs_filter.contains( "timeshift" ) );
             ui.dumpBox->setChecked( qs_filter.contains( "dump" ) );
             ui.recordBox->setChecked( qs_filter.contains( "record" ) );
@@ -471,7 +477,7 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
                 else if( strstr( psz_intf, "qt" ) )
                     ui.qt4->setChecked( true );
             }
-            delete psz_intf;
+            free( psz_intf );
 
             optionWidgets.append( ui.skins );
             optionWidgets.append( ui.qt4 );
@@ -564,6 +570,12 @@ void SPrefsPanel::updateAudioOptions( int number)
     optionWidgets[fileW]->setVisible( ( value == "aout_file" ) );
 }
 
+
+SPrefsPanel::~SPrefsPanel()
+{
+    qDeleteAll( controls ); controls.clear();
+}
+
 void SPrefsPanel::updateAudioVolume( int volume )
 {
     qobject_cast<QSpinBox *>(optionWidgets[volLW])