[vlc-devel] [PATCH 1/7] input: also copy input slaves in input_item_Copy

Pierre Lamot pierre at videolabs.io
Tue Oct 22 09:45:11 CEST 2019


On 2019-10-22 00:51, Alexandre Janniaux wrote:
> Hi,
> 
> This is meaningful as the slaves are owned by the input
> item, but maybe the documentation of the input_item_Copy
> should be updated to signal this?

the documentation is very broad "This function creates a new 
input_item_t as a copy of another",
I kinda expect it to give me a 1:1 copy of the input_item (maybe epg and 
categories should be copied as well)

though, I guess I can detail what is copied here.

> The case of failure is a bit weird. If we cannot allocate
> memory it would only remove the slave silently from the
> copy. Maybe bailing out and return NULL would be a better
> error management candidate?

the vlc_meta_Merge and the input_item_CopyOptions called within the 
function may already fail silently.

> Regards,
> --
> Alexandre Janniaux
> Videolabs
> 
> On Mon, Oct 21, 2019 at 06:08:53PM +0200, Pierre Lamot wrote:
>> ---
>>  src/input/item.c | 16 ++++++++++++++++
>>  1 file changed, 16 insertions(+)
>> 
>> diff --git a/src/input/item.c b/src/input/item.c
>> index e8db39ca28..a01d4bb3e4 100644
>> --- a/src/input/item.c
>> +++ b/src/input/item.c
>> @@ -1119,6 +1119,22 @@ input_item_t *input_item_Copy( input_item_t 
>> *p_input )
>>          vlc_meta_Merge( meta, p_input->p_meta );
>>      }
>>      b_net = p_input->b_net;
>> +
>> +    if( likely(item != NULL) && p_input->i_slaves > 0 )
>> +    {
>> +        for( int i = 0; i < p_input->i_slaves; i++ )
>> +        {
>> +            input_item_slave_t* slave = input_item_slave_New(
>> +                        p_input->pp_slaves[i]->psz_uri,
>> +                        p_input->pp_slaves[i]->i_type,
>> +                        p_input->pp_slaves[i]->i_priority);
>> +            if( unlikely(slave != NULL) )
>> +            {
>> +                TAB_APPEND(item->i_slaves, item->pp_slaves, slave);
>> +            }
>> +        }
>> +    }
>> +
>>      vlc_mutex_unlock( &p_input->lock );
>> 
>>      if( likely(item != NULL) )
>> --
>> 2.17.1
>> 
>> _______________________________________________
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list