From: Dan Winship Date: Tue, 17 Jul 2012 13:12:39 +0000 (-0400) Subject: GAsyncInitable: partially revert the init_finish changes X-Git-Tag: 2.33.6~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d90ad1805552aab969f316a1de687efdb71e27fe;p=platform%2Fupstream%2Fglib.git GAsyncInitable: partially revert the init_finish changes g_async_initable_real_init_finish() was previously handling all GSimpleAsyncResults, even if they weren't created by g_async_initable_real_init_async(), and libnm-glib accidentally relied on that behavior. So remove the g_simple_async_result_is_valid() check. --- diff --git a/gio/gasyncinitable.c b/gio/gasyncinitable.c index e8cf8c9..d5712a5 100644 --- a/gio/gasyncinitable.c +++ b/gio/gasyncinitable.c @@ -290,15 +290,16 @@ g_async_initable_real_init_finish (GAsyncInitable *initable, GAsyncResult *res, GError **error) { - GSimpleAsyncResult *simple; + /* For backward compatibility we have to process GSimpleAsyncResults + * even if they aren't tagged from g_async_initable_real_init_async. + */ + if (G_IS_SIMPLE_ASYNC_RESULT (res)) + { + GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (res); + if (g_simple_async_result_propagate_error (simple, error)) + return FALSE; + } - g_return_val_if_fail (g_simple_async_result_is_valid (res, G_OBJECT (initable), - g_async_initable_real_init_async), - FALSE); - - simple = G_SIMPLE_ASYNC_RESULT (res); - if (g_simple_async_result_propagate_error (simple, error)) - return FALSE; return TRUE; }