[libvirt] [libvirt-glib 2/2] Use g_simple_async_result_is_valid in _finish functions
Daniel P. Berrange
berrange at redhat.com
Mon Jan 9 09:39:07 UTC 2012
On Mon, Jan 09, 2012 at 10:11:12AM +0100, Christophe Fergeau wrote:
> The _finish functions for async operations can be simplified by
> using g_simple_async_result_is_valid instead of doing the checks
> it does by ourselves.
> ---
> libvirt-gobject/libvirt-gobject-connection.c | 37 +++++++----------
> libvirt-gobject/libvirt-gobject-domain.c | 15 +++----
> libvirt-gobject/libvirt-gobject-input-stream.c | 5 +-
> libvirt-gobject/libvirt-gobject-output-stream.c | 5 +-
> libvirt-gobject/libvirt-gobject-storage-pool.c | 48 ++++++++++-------------
> 5 files changed, 48 insertions(+), 62 deletions(-)
>
> diff --git a/libvirt-gobject/libvirt-gobject-storage-pool.c b/libvirt-gobject/libvirt-gobject-storage-pool.c
> index 488f146..c0b32a5 100644
> --- a/libvirt-gobject/libvirt-gobject-storage-pool.c
> +++ b/libvirt-gobject/libvirt-gobject-storage-pool.c
> @@ -455,15 +455,13 @@ gboolean gvir_storage_pool_refresh_finish(GVirStoragePool *pool,
> GError **err)
> {
> g_return_val_if_fail(GVIR_IS_STORAGE_POOL(pool), FALSE);
> - g_return_val_if_fail(G_IS_ASYNC_RESULT(result), FALSE);
> -
> - if (G_IS_SIMPLE_ASYNC_RESULT(result)) {
> - GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result);
> - g_warn_if_fail (g_simple_async_result_get_source_tag(simple) ==
> - gvir_storage_pool_refresh_async);
> - if (g_simple_async_result_propagate_error(simple, err))
> - return FALSE;
> - }
> + g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(pool),
> + gvir_storage_pool_refresh_async),
> + -1);
s/-1/FALSE/
> +
> + if (g_simple_async_result_propagate_error(G_SIMPLE_ASYNC_RESULT(result),
> + err))
> + return FALSE;
>
> return TRUE;
> }
> @@ -649,15 +647,13 @@ gboolean gvir_storage_pool_build_finish(GVirStoragePool *pool,
> GError **err)
> {
> g_return_val_if_fail(GVIR_IS_STORAGE_POOL(pool), FALSE);
> - g_return_val_if_fail(G_IS_ASYNC_RESULT(result), FALSE);
> -
> - if (G_IS_SIMPLE_ASYNC_RESULT(result)) {
> - GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result);
> - g_warn_if_fail (g_simple_async_result_get_source_tag(simple) ==
> - gvir_storage_pool_build_async);
> - if (g_simple_async_result_propagate_error(simple, err))
> - return FALSE;
> - }
> + g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(pool),
> + gvir_storage_pool_build_async),
> + -1);
s/-1/FALSE/
> +
> + if (g_simple_async_result_propagate_error(G_SIMPLE_ASYNC_RESULT(result),
> + err))
> + return FALSE;
>
> return TRUE;
> }
> @@ -749,15 +745,13 @@ gboolean gvir_storage_pool_start_finish(GVirStoragePool *pool,
> GError **err)
> {
> g_return_val_if_fail(GVIR_IS_STORAGE_POOL(pool), FALSE);
> - g_return_val_if_fail(G_IS_ASYNC_RESULT(result), FALSE);
> -
> - if (G_IS_SIMPLE_ASYNC_RESULT(result)) {
> - GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result);
> - g_warn_if_fail (g_simple_async_result_get_source_tag(simple) ==
> - gvir_storage_pool_start_async);
> - if (g_simple_async_result_propagate_error(simple, err))
> - return FALSE;
> - }
> + g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(pool),
> + gvir_storage_pool_start_async),
> + -1);
s/-1/FALSE/
> +
> + if (g_simple_async_result_propagate_error(G_SIMPLE_ASYNC_RESULT(result),
> + err))
> + return FALSE;
>
> return TRUE;
> }
ACK, if those 3 return values are fixed
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list