[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