On Thu, Apr 19, 2012 at 04:45:29PM +0300, Zeeshan Ali (Khattak) wrote:
From: "Zeeshan Ali (Khattak)" <zeeshanak(a)gnome.org>
---
libvirt-gobject/libvirt-gobject-domain.c | 74 ++++++++++++++++++++++++++++++
libvirt-gobject/libvirt-gobject-domain.h | 7 +++
libvirt-gobject/libvirt-gobject.sym | 4 +-
3 files changed, 84 insertions(+), 1 deletions(-)
diff --git a/libvirt-gobject/libvirt-gobject-domain.c
b/libvirt-gobject/libvirt-gobject-domain.c
index 0bafa7e..c1a2086 100644
--- a/libvirt-gobject/libvirt-gobject-domain.c
+++ b/libvirt-gobject/libvirt-gobject-domain.c
@@ -572,6 +572,80 @@ GVirDomainInfo *gvir_domain_get_info(GVirDomain *dom,
return ret;
}
+static void
+gvir_domain_get_info_helper(GSimpleAsyncResult *res,
+ GObject *object,
+ GCancellable *cancellable G_GNUC_UNUSED)
+{
+ GVirDomain *dom = GVIR_DOMAIN(object);
+ GVirDomainInfo *info;
+ GError *err = NULL;
+
+ info = gvir_domain_get_info(dom, &err);
+ if (err)
+ g_simple_async_result_take_error(res, err);
+ else
+ g_simple_async_result_set_op_res_gpointer(res, info, NULL);
I still think this can leak memory in error cases/corner cases, see my answer to
your first patch.
Christophe