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 )
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;
......
......@@ -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 );
......
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