[vlc-devel] commit: Removed one malloc per new playlist item (qt4). (Laurent Aimar )

git version control git at videolan.org
Tue Feb 17 00:01:53 CET 2009


vlc | branch: master | Laurent Aimar <fenrir at videolan.org> | Tue Feb 17 00:01:02 2009 +0100| [e916edc909efeb05d774e35d9cca10076d47548f] | committer: Laurent Aimar 

Removed one malloc per new playlist item (qt4).

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

 .../gui/qt4/components/playlist/playlist_model.cpp |    8 +++-----
 .../gui/qt4/components/playlist/playlist_model.hpp |   18 ++++++++++++------
 2 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/modules/gui/qt4/components/playlist/playlist_model.cpp b/modules/gui/qt4/components/playlist/playlist_model.cpp
index 285d17e..0b4cdd2 100644
--- a/modules/gui/qt4/components/playlist/playlist_model.cpp
+++ b/modules/gui/qt4/components/playlist/playlist_model.cpp
@@ -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;
diff --git a/modules/gui/qt4/components/playlist/playlist_model.hpp b/modules/gui/qt4/components/playlist/playlist_model.hpp
index 2dcaccb..04fb783 100644
--- a/modules/gui/qt4/components/playlist/playlist_model.hpp
+++ b/modules/gui/qt4/components/playlist/playlist_model.hpp
@@ -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 );




More information about the vlc-devel mailing list