source: don't leak sockets

This commit is contained in:
Wim Taymans 2015-12-02 20:40:25 +01:00
parent 48fdc1d37c
commit 6b93b17298
2 changed files with 7 additions and 4 deletions

View file

@ -252,14 +252,15 @@ on_socket_notify (GObject *gobject,
g_object_get (gobject, "socket", &socket, NULL);
if (socket == NULL) {
GSocket *prev_socket = g_object_get_data (gobject, "last-socket");
GSocket *prev_socket = g_object_steal_data (gobject, "last-socket");
if (prev_socket) {
g_signal_emit_by_name (priv->sink, "remove", prev_socket);
g_object_unref (prev_socket);
}
} else {
g_signal_emit_by_name (priv->sink, "add", socket);
g_object_set_data_full (gobject, "last-socket", socket, g_object_unref);
}
g_object_set_data (gobject, "last-socket", socket);
g_object_get (priv->sink, "num-handles", &num_handles, NULL);
if (num_handles > 0 && socket) {