[grilo/0.1.x] grl-net: Correctly unref operation async result
- From: SimÃn Pena <spenap src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [grilo/0.1.x] grl-net: Correctly unref operation async result
- Date: Thu, 3 Nov 2011 16:57:29 +0000 (UTC)
commit 251c0d8097349fc8b1adcf7864bfa1139417e2ac
Author: Sam Thursfield <sam thursfield codethink co uk>
Date: Wed Oct 26 13:57:11 2011 +0100
grl-net: Correctly unref operation async result
Correct behaviour is to unref the GSimpleAsyncResult object after the call to
g_simple_async_result_complete(). It cannot be done in the async result's callback.
https://bugzilla.gnome.org/show_bug.cgi?id=662763
Signed-off-by: Simon Pena <spena igalia com>
libs/net/grl-net-wc.c | 12 +++++++-----
1 files changed, 7 insertions(+), 5 deletions(-)
---
diff --git a/libs/net/grl-net-wc.c b/libs/net/grl-net-wc.c
index 6186b8e..96ad375 100644
--- a/libs/net/grl-net-wc.c
+++ b/libs/net/grl-net-wc.c
@@ -397,6 +397,7 @@ read_async_cb (GObject *source, GAsyncResult *res, gpointer user_data)
g_error_free (error);
g_simple_async_result_complete (result);
+ g_object_unref (result);
return;
}
@@ -413,6 +414,7 @@ read_async_cb (GObject *source, GAsyncResult *res, gpointer user_data)
}
g_simple_async_result_complete (result);
+ g_object_unref (result);
}
static void
@@ -431,6 +433,7 @@ reply_cb (GObject *source, GAsyncResult *res, gpointer user_data)
g_error_free (error);
g_simple_async_result_complete (result);
+ g_object_unref (result);
return;
}
@@ -471,6 +474,7 @@ reply_cb (SoupSession *session,
}
g_simple_async_result_complete (result);
+ g_object_unref (result);
}
static void
@@ -521,6 +525,7 @@ get_url_now (GrlNetWc *self,
GRL_NET_WC_ERROR_PROTOCOL_ERROR,
"Malformed URL: %s", url);
g_simple_async_result_complete_in_idle (G_SIMPLE_ASYNC_RESULT (result));
+ g_object_unref (result);
return;
}
@@ -720,16 +725,14 @@ grl_net_wc_request_finish (GrlNetWc *self,
g_warn_if_fail (g_simple_async_result_get_source_tag (res) ==
grl_net_wc_request_async);
-#ifdef LIBSOUP_USE_UNSTABLE_REQUEST_API
- RequestResult *rr = g_simple_async_result_get_op_res_gpointer (res);
-#endif
-
if (g_simple_async_result_propagate_error (res, error) == TRUE) {
ret = FALSE;
goto end_func;
}
#ifdef LIBSOUP_USE_UNSTABLE_REQUEST_API
+ RequestResult *rr = g_simple_async_result_get_op_res_gpointer (res);
+
if (self->priv->previous_data) {
g_free (self->priv->previous_data);
}
@@ -759,7 +762,6 @@ grl_net_wc_request_finish (GrlNetWc *self,
#endif
end_func:
- g_object_unref (res);
return ret;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]