[yelp] [libyelp/yelp-document.c] Don't keep trying to refree freed resources
- From: Shaun McCance <shaunm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [yelp] [libyelp/yelp-document.c] Don't keep trying to refree freed resources
- Date: Wed, 28 Apr 2010 21:41:25 +0000 (UTC)
commit 1d2b1bc6438c865ad0da84dc94ee842ac4a898ae
Author: Shaun McCance <shaunm gnome org>
Date: Wed Apr 28 12:21:00 2010 -0500
[libyelp/yelp-document.c] Don't keep trying to refree freed resources
Request structs are freed with request_try_free. If the request can't be
freed, it just adds itself in idle callback to try again. But it wasn't
returning FALSE, so it could end up repeatedly trying to free, even when
the struct was freed.
libyelp/yelp-document.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/libyelp/yelp-document.c b/libyelp/yelp-document.c
index aec4e7f..c4ceba9 100644
--- a/libyelp/yelp-document.c
+++ b/libyelp/yelp-document.c
@@ -120,7 +120,7 @@ static void request_cancel (GCancellable *cancellab
static gboolean request_idle_contents (Request *request);
static gboolean request_idle_info (Request *request);
static gboolean request_idle_error (Request *request);
-static void request_try_free (Request *request);
+static gboolean request_try_free (Request *request);
static void request_free (Request *request);
static const gchar * str_ref (const gchar *str);
@@ -1079,7 +1079,7 @@ request_idle_error (Request *request)
return FALSE;
}
-static void
+static gboolean
request_try_free (Request *request)
{
if (!g_cancellable_is_cancelled (request->cancellable))
@@ -1089,6 +1089,8 @@ request_try_free (Request *request)
request_free (request);
else
g_idle_add ((GSourceFunc) request_try_free, request);
+
+ return FALSE;
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]