[Spice-devel] [PATCH spice-common] Fix cast to spice_marshalller_intem_free_func function
Jonathon Jongsma
jjongsma at redhat.com
Thu May 17 21:15:54 UTC 2018
Fine with me.
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 */
More information about the Spice-devel
mailing list