[Spice-commits] 3 commits - m4/spice-compile-warnings.m4 src/channel-usbredir.c src/spice-glib-main.c

Christophe Fergau teuf at kemper.freedesktop.org
Fri May 4 18:16:10 UTC 2018

 m4/spice-compile-warnings.m4 |    5 +++++
 src/channel-usbredir.c       |    2 +-
 src/spice-glib-main.c        |    6 +++++-
 3 files changed, 11 insertions(+), 2 deletions(-)

New commits:
commit 189bb5f17424dd85008c9e406d40760e3450d0ea
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu May 3 11:50:35 2018 +0200

    win32: Convert locale dir from UTF-8 to local encoding
    As indicated in gtk+ win32 gtk_get_localedir [1], bindtextdomain() is not
    UTF-8 aware on win32, so it needs a filename in locale encoding
    [1] https://gitlab.gnome.org/GNOME/gtk/blob/master/gtk/gtkwin32.c#L187
    Acked-by: Frediano Ziglio <fziglio at redhat.com>

diff --git a/src/spice-glib-main.c b/src/spice-glib-main.c
index c2bd7ca..881015f 100644
--- a/src/spice-glib-main.c
+++ b/src/spice-glib-main.c
@@ -32,9 +32,13 @@ BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
     if (fdwReason == DLL_PROCESS_ATTACH) {
         char *basedir =
-        char *localedir = g_build_filename(basedir, "share", "locale", NULL);
+        char *utf8_localedir = g_build_filename(basedir, "share", "locale", NULL);
+        /* bindtextdomain's 2nd argument is not UTF-8 aware */
+        char *localedir = g_win32_locale_filename_from_utf8 (utf8_localedir);
         bindtextdomain(GETTEXT_PACKAGE, localedir);
+        g_free(utf8_localedir);
         bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
commit f54faed59846090fed0c3760ad30d11868836cf3
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu May 3 11:46:40 2018 +0200

    usb: Remove unused spice_marshaller_add_by_ref_full() user data
    g_free() only expects a single argument, so it won't make use of the
    extra 'channel' arg which will be passed as user data.
    Acked-by: Frediano Ziglio <fziglio at redhat.com>

diff --git a/src/channel-usbredir.c b/src/channel-usbredir.c
index f509e49..0cc5630 100644
--- a/src/channel-usbredir.c
+++ b/src/channel-usbredir.c
@@ -712,7 +712,7 @@ static int try_write_compress_LZ4(SpiceUsbredirChannel *channel, uint8_t *data,
-                                         channel);
+                                         NULL);
         return TRUE;
commit 8bb24c57209db1127678635a4dcffd73c9d790f5
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu May 3 11:09:40 2018 +0200

    build-sys: Disable -Wcast-function-type
    With gcc 8.0.1 from Fedora 28, I'm getting warnings related to
    -Wcast-function-type in a few places. Most of these could be solved
    by adding an intermediate wrapper with the right number of args, but the
    g_source_set_callback() warning cannot be solved this way as the
    callback signature will vary depending on the source it's called on.
    ../../src/spice-session.c: In function 'spice_session_init':
    ../../src/spice-session.c:293:33: warning: cast between incompatible function types from 'pixman_bool_t (*)(pixman_image_t *)' {aka 'int (*)(union pixman_image *)'} to 'void (*)(void *)' [-Wcast-function-type]
         s->images = cache_image_new((GDestroyNotify)pixman_image_unref);
    ../../src/gio-coroutine.c: In function 'g_coroutine_socket_wait':
    ../../src/gio-coroutine.c:59:32: warning: cast between incompatible function types from 'gboolean (*)(GSocket *, GIOCondition,  void *)' {aka 'int (*)(struct _GSocket *, enum <anonymous>,  void *)'} to 'gboolean (*)(void *)' {aka 'int (*)(void *)'} [-Wcast-function-type]
         g_source_set_callback(src, (GSourceFunc)g_io_wait_helper, self, NULL);
    (and a few more like these)
    Acked-by: Frediano Ziglio <fziglio at redhat.com>

diff --git a/m4/spice-compile-warnings.m4 b/m4/spice-compile-warnings.m4
index dfa88fe..0ae3bd7 100644
--- a/m4/spice-compile-warnings.m4
+++ b/m4/spice-compile-warnings.m4
@@ -86,6 +86,11 @@ AC_DEFUN([SPICE_COMPILE_WARNINGS],[
     # We use some deprecated functions to avoid #ifdef hell while maintaining
     # compat with older gtk / glib versions
+    # g_source_set_callback() can't be compatible with this warning. Its API
+    # doc states:
+    # "The exact type of func depends on the type of source; ie. you should
+    # not count on func being called with data as its first parameter."
+    gl_WARN_ADD([-Wno-cast-function-type])

More information about the Spice-commits mailing list