diff options
author | Dan Winship <danw@gnome.org> | 2012-07-17 09:41:15 -0400 |
---|---|---|
committer | Dan Winship <danw@gnome.org> | 2012-07-17 09:43:15 -0400 |
commit | 320464490e97c74c5f04651efef0341d6f04b1c5 (patch) | |
tree | 7703504d1d7666b0e8c26432e5350aac53b1d8fe /libnm-glib/nm-client.c | |
parent | a03e7fb74f792062110d9a1ff15e7df87bfd787d (diff) | |
download | NetworkManager-320464490e97c74c5f04651efef0341d6f04b1c5.tar.gz |
libnm-glib: fix GAsyncInitable implementations
If a class implements init_async, it should implement init_finish too,
rather than assuming the default implementation will do the right
thing (which it briefly didn't in glib 2.33).
Diffstat (limited to 'libnm-glib/nm-client.c')
-rw-r--r-- | libnm-glib/nm-client.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libnm-glib/nm-client.c b/libnm-glib/nm-client.c index fa8d508df3..178a5fdd40 100644 --- a/libnm-glib/nm-client.c +++ b/libnm-glib/nm-client.c @@ -1566,6 +1566,17 @@ init_async (GAsyncInitable *initable, int io_priority, G_TYPE_INVALID); } +static gboolean +init_finish (GAsyncInitable *initable, GAsyncResult *result, GError **error) +{ + GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result); + + if (g_simple_async_result_propagate_error (simple, error)) + return FALSE; + else + return TRUE; +} + static void dispose (GObject *object) { @@ -1923,4 +1934,5 @@ nm_client_async_initable_iface_init (GAsyncInitableIface *iface) nm_client_parent_async_initable_iface = g_type_interface_peek_parent (iface); iface->init_async = init_async; + iface->init_finish = init_finish; } |