[Spice-devel] [PATCH spice-common] Fix cast to spice_marshalller_intem_free_func function

Eduardo Lima (Etrunko) etrunko at redhat.com
Fri May 18 12:32:54 UTC 2018


On 18/05/18 05:42, Frediano Ziglio wrote:
>>
>> On 17/05/18 18:15, Jonathon Jongsma wrote:
>>> Fine with me.
>>>
>>
>> Thanks, I fixed a typo in header before pushing.
>>
>> s/spice_marshalller_intem_free_func/spice_marshaller_item_free_func
>>
> 
> Can I send a follow up to remove the initial underscore?
> Looks like some Python naming...
> 

If you feel so annoyed by that, do it. I have been using underscore
before names of static functions for a long time, it may be because of
Python convention, but not sure.

> Frediano
> 
>>
>>> Acked-by: Jonathon Jongsma <jjongsma at redhat.com>
>>>
>>>
>>> On Thu, 2018-05-17 at 12:56 -0300, Eduardo Lima (Etrunko) wrote:
>>>> Building with gcc 8.0.1 from Fedora 28 gives the following error:
>>>>
>>>> FAILED: common/common@@spice-common at sta/marshaller.c.o
>>>> ../common/marshaller.c: In function 'spice_marshaller_reserve_space':
>>>> ../common/marshaller.c:311:27: error: cast between incompatible
>>>> function types from 'void (*)(void *)' to 'void (*)(uint8_t *, void
>>>> *)' {aka 'void (*)(unsigned char *, void *)'} [-Werror=cast-function-
>>>> type]
>>>>          item->free_data = (spice_marshaller_item_free_func)free;
>>>>                            ^
>>>> cc1: all warnings being treated as errors
>>>>
>>>> Which can be easily fixed by creating a new function with the correct
>>>> signature and calling free() from it.
>>>>
>>>> Signed-off-by: Eduardo Lima (Etrunko) <etrunko at redhat.com>
>>>> ---
>>>>  common/marshaller.c | 7 ++++++-
>>>>  1 file changed, 6 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/common/marshaller.c b/common/marshaller.c
>>>> index adfb8cd..80cedb7 100644
>>>> --- a/common/marshaller.c
>>>> +++ b/common/marshaller.c
>>>> @@ -270,6 +270,11 @@ static size_t
>>>> remaining_buffer_size(SpiceMarshallerData *d)
>>>>      return MARSHALLER_BUFFER_SIZE - d->current_buffer_position;
>>>>  }
>>>>  
>>>> +static void _reserve_space_free_data(uint8_t *data,
>>>> SPICE_GNUC_UNUSED void *opaque)
>>>> +{
>>>> +    free(data);
>>>> +}
>>>> +
>>>>  uint8_t *spice_marshaller_reserve_space(SpiceMarshaller *m, size_t
>>>> size)
>>>>  {
>>>>      MarshallerItem *item;
>>>> @@ -308,7 +313,7 @@ uint8_t
>>>> *spice_marshaller_reserve_space(SpiceMarshaller *m, size_t size)
>>>>          /* Large item, allocate by itself */
>>>>          item->data = (uint8_t *)spice_malloc(size);
>>>>          item->len = size;
>>>> -        item->free_data = (spice_marshaller_item_free_func)free;
>>>> +        item->free_data = _reserve_space_free_data;
>>>>          item->opaque = NULL;
>>>>      } else {
>>>>          /* Use next buffer */
>>


-- 
Eduardo de Barros Lima (Etrunko)
Software Engineer - RedHat
etrunko at redhat.com


More information about the Spice-devel mailing list