From: Luiz Augusto Von Dentz Date: Mon, 6 Sep 2010 10:26:19 +0000 (+0300) Subject: Do not automatically remove watches for service names X-Git-Tag: accepted/2.0alpha-wayland/20121110.002834~2456 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=24e666c801f5188d791f5b3725a1c91b45c48a7a;p=profile%2Fivi%2Fconnman.git Do not automatically remove watches for service names Services can be owned again so it is perfectly fine to keep the watch. --- diff --git a/gdbus/watch.c b/gdbus/watch.c index 29f23e2..b686c85 100644 --- a/gdbus/watch.c +++ b/gdbus/watch.c @@ -386,18 +386,19 @@ static DBusHandlerResult service_filter(DBusConnection *connection, cb->conn_func(connection, cb->user_data); } + /* Only auto remove if it is a bus name watch */ + if (data->argument[0] == ':' && + (!cb->conn_func || !cb->disc_func)) { + filter_data_remove_callback(data, cb); + continue; + } + /* Check if the watch was removed/freed by the callback * function */ if (!g_slist_find(data->callbacks, cb)) continue; data->callbacks = g_slist_remove(data->callbacks, cb); - - if (!cb->conn_func || !cb->disc_func) { - g_free(cb); - continue; - } - data->processed = g_slist_append(data->processed, cb); }