Proper async behavior for seahorse_collection_delete ()

* The async 'source' object was set to a SecretService
   instead of a SecretCollection in the callback
This commit is contained in:
Stef Walter 2012-06-27 16:41:13 +02:00
parent 463c649ca8
commit 738b11c14c

View File

@ -1086,6 +1086,20 @@ secret_collection_create_sync (SecretService *service,
return collection;
}
static void
on_service_delete_path (GObject *source,
GAsyncResult *result,
gpointer user_data)
{
GSimpleAsyncResult *async = G_SIMPLE_ASYNC_RESULT (user_data);
GError *error = NULL;
secret_service_delete_path_finish (SECRET_SERVICE (source), result, &error);
if (error != NULL)
g_simple_async_result_take_error (async, error);
g_simple_async_result_complete (async);
g_object_unref (async);
}
/**
* secret_collection_delete:
* @self: a collection
@ -1105,14 +1119,21 @@ secret_collection_delete (SecretCollection *self,
GAsyncReadyCallback callback,
gpointer user_data)
{
GSimpleAsyncResult *async;
const gchar *object_path;
g_return_if_fail (SECRET_IS_COLLECTION (self));
g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
async = g_simple_async_result_new (G_OBJECT (self), callback, user_data,
secret_collection_delete);
object_path = g_dbus_proxy_get_object_path (G_DBUS_PROXY (self));
_secret_service_delete_path (self->pv->service, object_path, FALSE,
cancellable, callback, user_data);
cancellable, on_service_delete_path,
g_object_ref (async));
g_object_unref (async);
}
/**
@ -1132,8 +1153,13 @@ secret_collection_delete_finish (SecretCollection *self,
{
g_return_val_if_fail (SECRET_IS_COLLECTION (self), FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (self),
secret_collection_delete), FALSE);
return secret_service_delete_path_finish (self->pv->service, result, error);
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error))
return FALSE;
return TRUE;
}
/**