Removed one malloc per new playlist item (qt4).
authorLaurent Aimar <fenrir@videolan.org>
Mon, 16 Feb 2009 23:01:02 +0000 (00:01 +0100)
committerLaurent Aimar <fenrir@videolan.org>
Mon, 16 Feb 2009 23:01:02 +0000 (00:01 +0100)
modules/gui/qt4/components/playlist/playlist_model.cpp
modules/gui/qt4/components/playlist/playlist_model.hpp

index 285d17e..0b4cdd2 100644 (file)
@@ -521,7 +521,7 @@ void PLModel::customEvent( QEvent *event )
     if( type == ItemUpdate_Type )
         ProcessInputItemUpdate( ple->i_id );
     else if( type == ItemAppend_Type )
-        ProcessItemAppend( ple->p_add );
+        ProcessItemAppend( &ple->add );
     else if( type == ItemDelete_Type )
         ProcessItemRemoval( ple->i_id );
     else
@@ -550,7 +550,7 @@ void PLModel::ProcessItemRemoval( int i_id )
     removeItem( i_id );
 }
 
-void PLModel::ProcessItemAppend( playlist_add_t *p_add )
+void PLModel::ProcessItemAppend( const playlist_add_t *p_add )
 {
     playlist_item_t *p_item = NULL;
     PLItem *newItem = NULL;
@@ -977,9 +977,7 @@ static int ItemAppended( vlc_object_t *p_this, const char *psz_variable,
                          vlc_value_t oval, vlc_value_t nval, void *param )
 {
     PLModel *p_model = (PLModel *) param;
-    playlist_add_t *p_add = (playlist_add_t *)malloc( sizeof( playlist_add_t));
-    memcpy( p_add, nval.p_address, sizeof( playlist_add_t ) );
-
+    const playlist_add_t *p_add = (playlist_add_t *)nval.p_address;
     PLEvent *event = new PLEvent( p_add );
     QApplication::postEvent( p_model, event );
     return VLC_SUCCESS;
index 2dcaccb..04fb783 100644 (file)
@@ -61,15 +61,21 @@ class PLEvent : public QEvent
 {
 public:
     PLEvent( int type, int id ) : QEvent( (QEvent::Type)(type) )
-    { i_id = id; p_add = NULL; };
+    {
+        i_id = id;
+        add.i_node = -1;
+        add.i_item = -1;
+    };
 
-    PLEvent( playlist_add_t  *a ) : QEvent( (QEvent::Type)(ItemAppend_Type) )
-    { p_add = a; };
+    PLEvent( const playlist_add_t  *a ) : QEvent( (QEvent::Type)(ItemAppend_Type) )
+    {
+        add = *a;
+    };
 
-    virtual ~PLEvent() { free( p_add ); };
+    virtual ~PLEvent() { };
 
     int i_id;
-    playlist_add_t *p_add;
+    playlist_add_t add;
 };
 
 
@@ -136,7 +142,7 @@ private:
     /* Update processing */
     void ProcessInputItemUpdate( int i_input_id );
     void ProcessItemRemoval( int i_id );
-    void ProcessItemAppend( playlist_add_t *p_add );
+    void ProcessItemAppend( const playlist_add_t *p_add );
 
     void UpdateTreeItem( PLItem *, bool, bool force = false );
     void UpdateTreeItem( playlist_item_t *, PLItem *, bool, bool forc = false );