[vlc-commits] Qt: playlist_model: don't declare array with non constant expression

Francois Cartegnie git at videolan.org
Fri Mar 2 01:36:16 CET 2012


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Fri Mar  2 01:01:29 2012 +0100| [e4a2f9949332e0336dca030b01662503b402c8fe] | committer: Francois Cartegnie

Qt: playlist_model: don't declare array with non constant expression

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e4a2f9949332e0336dca030b01662503b402c8fe
---

 .../gui/qt4/components/playlist/playlist_model.cpp |   18 ++++++++++++++----
 1 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/modules/gui/qt4/components/playlist/playlist_model.cpp b/modules/gui/qt4/components/playlist/playlist_model.cpp
index f17e7e3..63aa259 100644
--- a/modules/gui/qt4/components/playlist/playlist_model.cpp
+++ b/modules/gui/qt4/components/playlist/playlist_model.cpp
@@ -233,7 +233,10 @@ void PLModel::dropMove( const PlMimeData * plMimeData, PLItem *target, int row )
 {
     QList<input_item_t*> inputItems = plMimeData->inputItems();
     QList<PLItem*> model_items;
-    playlist_item_t *pp_items[inputItems.count()];
+    playlist_item_t **pp_items;
+    pp_items = (playlist_item_t **)
+               calloc( inputItems.count(), sizeof( playlist_item_t* ) );
+    if ( !pp_items ) return;
 
     PL_LOCK;
 
@@ -242,7 +245,9 @@ void PLModel::dropMove( const PlMimeData * plMimeData, PLItem *target, int row )
 
     if( !p_parent || row > p_parent->i_children )
     {
-        PL_UNLOCK; return;
+        PL_UNLOCK;
+        free( pp_items );
+        return;
     }
 
     int new_pos = row == -1 ? p_parent->i_children : row;
@@ -265,7 +270,9 @@ void PLModel::dropMove( const PlMimeData * plMimeData, PLItem *target, int row )
         {
             if( climber == item )
             {
-                PL_UNLOCK; return;
+                PL_UNLOCK;
+                free( pp_items );
+                return;
             }
             climber = climber->parent();
         }
@@ -281,7 +288,9 @@ void PLModel::dropMove( const PlMimeData * plMimeData, PLItem *target, int row )
 
     if( model_items.isEmpty() )
     {
-        PL_UNLOCK; return;
+        PL_UNLOCK;
+        free( pp_items );
+        return;
     }
 
     playlist_TreeMoveMany( p_playlist, i, pp_items, p_parent, new_pos );
@@ -292,6 +301,7 @@ void PLModel::dropMove( const PlMimeData * plMimeData, PLItem *target, int row )
         takeItem( item );
 
     insertChildren( target, model_items, model_pos );
+    free( pp_items );
 }
 
 /* remove item with its id */



More information about the vlc-commits mailing list