Commit e916edc9 authored by Laurent Aimar's avatar Laurent Aimar

Removed one malloc per new playlist item (qt4).

parent 3fae03b3
...@@ -521,7 +521,7 @@ void PLModel::customEvent( QEvent *event ) ...@@ -521,7 +521,7 @@ void PLModel::customEvent( QEvent *event )
if( type == ItemUpdate_Type ) if( type == ItemUpdate_Type )
ProcessInputItemUpdate( ple->i_id ); ProcessInputItemUpdate( ple->i_id );
else if( type == ItemAppend_Type ) else if( type == ItemAppend_Type )
ProcessItemAppend( ple->p_add ); ProcessItemAppend( &ple->add );
else if( type == ItemDelete_Type ) else if( type == ItemDelete_Type )
ProcessItemRemoval( ple->i_id ); ProcessItemRemoval( ple->i_id );
else else
...@@ -550,7 +550,7 @@ void PLModel::ProcessItemRemoval( int i_id ) ...@@ -550,7 +550,7 @@ void PLModel::ProcessItemRemoval( int i_id )
removeItem( 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; playlist_item_t *p_item = NULL;
PLItem *newItem = NULL; PLItem *newItem = NULL;
...@@ -977,9 +977,7 @@ static int ItemAppended( vlc_object_t *p_this, const char *psz_variable, ...@@ -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 ) vlc_value_t oval, vlc_value_t nval, void *param )
{ {
PLModel *p_model = (PLModel *) param; PLModel *p_model = (PLModel *) param;
playlist_add_t *p_add = (playlist_add_t *)malloc( sizeof( playlist_add_t)); const playlist_add_t *p_add = (playlist_add_t *)nval.p_address;
memcpy( p_add, nval.p_address, sizeof( playlist_add_t ) );
PLEvent *event = new PLEvent( p_add ); PLEvent *event = new PLEvent( p_add );
QApplication::postEvent( p_model, event ); QApplication::postEvent( p_model, event );
return VLC_SUCCESS; return VLC_SUCCESS;
......
...@@ -61,15 +61,21 @@ class PLEvent : public QEvent ...@@ -61,15 +61,21 @@ class PLEvent : public QEvent
{ {
public: public:
PLEvent( int type, int id ) : QEvent( (QEvent::Type)(type) ) 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) ) PLEvent( const playlist_add_t *a ) : QEvent( (QEvent::Type)(ItemAppend_Type) )
{ p_add = a; }; {
add = *a;
};
virtual ~PLEvent() { free( p_add ); }; virtual ~PLEvent() { };
int i_id; int i_id;
playlist_add_t *p_add; playlist_add_t add;
}; };
...@@ -136,7 +142,7 @@ private: ...@@ -136,7 +142,7 @@ private:
/* Update processing */ /* Update processing */
void ProcessInputItemUpdate( int i_input_id ); void ProcessInputItemUpdate( int i_input_id );
void ProcessItemRemoval( int i_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( PLItem *, bool, bool force = false );
void UpdateTreeItem( playlist_item_t *, PLItem *, bool, bool forc = false ); void UpdateTreeItem( playlist_item_t *, PLItem *, bool, bool forc = false );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment