
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 :|