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