[Spice-commits] common/marshaller.c

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri May 18 03:08:43 UTC 2018


 common/marshaller.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

New commits:
commit 8816d30e6710511029e69cfab43920cf19c430cf
Author: Eduardo Lima (Etrunko) <etrunko at redhat.com>
Date:   Thu May 17 12:48:55 2018 -0300

    Fix cast to spice_marshaller_item_free_func function
    
    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>
    Acked-by: Jonathon Jongsma <jjongsma at redhat.com>

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-commits mailing list