on_server_message: Do not unref message GBytes

We don't own the reference. Since GLib 2.58, the g_bytes_unref that
follows the signal emission in libsoup loudly complains about the
attempt to underflow the refcount.
This commit is contained in:
Jan Alexander Steffens (heftig) 2018-09-20 10:48:06 +02:00 committed by Matthew Waters
parent 547f296293
commit fd1d53b04a
2 changed files with 10 additions and 12 deletions

View File

@ -755,20 +755,19 @@ static void
on_server_message (SoupWebsocketConnection * conn, SoupWebsocketDataType type, on_server_message (SoupWebsocketConnection * conn, SoupWebsocketDataType type,
GBytes * message, gpointer user_data) GBytes * message, gpointer user_data)
{ {
gsize size; gchar *text;
gchar *text, *data;
switch (type) { switch (type) {
case SOUP_WEBSOCKET_DATA_BINARY: case SOUP_WEBSOCKET_DATA_BINARY:
g_printerr ("Received unknown binary message, ignoring\n"); g_printerr ("Received unknown binary message, ignoring\n");
g_bytes_unref (message);
return; return;
case SOUP_WEBSOCKET_DATA_TEXT: case SOUP_WEBSOCKET_DATA_TEXT: {
data = g_bytes_unref_to_data (message, &size); gsize size;
const gchar *data = g_bytes_get_data (message, &size);
/* Convert to NULL-terminated string */ /* Convert to NULL-terminated string */
text = g_strndup (data, size); text = g_strndup (data, size);
g_free (data);
break; break;
}
default: default:
g_assert_not_reached (); g_assert_not_reached ();
} }

View File

@ -443,20 +443,19 @@ static void
on_server_message (SoupWebsocketConnection * conn, SoupWebsocketDataType type, on_server_message (SoupWebsocketConnection * conn, SoupWebsocketDataType type,
GBytes * message, gpointer user_data) GBytes * message, gpointer user_data)
{ {
gsize size; gchar *text;
gchar *text, *data;
switch (type) { switch (type) {
case SOUP_WEBSOCKET_DATA_BINARY: case SOUP_WEBSOCKET_DATA_BINARY:
g_printerr ("Received unknown binary message, ignoring\n"); g_printerr ("Received unknown binary message, ignoring\n");
g_bytes_unref (message);
return; return;
case SOUP_WEBSOCKET_DATA_TEXT: case SOUP_WEBSOCKET_DATA_TEXT: {
data = g_bytes_unref_to_data (message, &size); gsize size;
const gchar *data = g_bytes_get_data (message, &size);
/* Convert to NULL-terminated string */ /* Convert to NULL-terminated string */
text = g_strndup (data, size); text = g_strndup (data, size);
g_free (data);
break; break;
}
default: default:
g_assert_not_reached (); g_assert_not_reached ();
} }