summaryrefslogtreecommitdiff
path: root/libyelp/yelp-document.c
diff options
context:
space:
mode:
authorShaun McCance <shaunm@gnome.org>2010-04-28 12:21:00 -0500
committerShaun McCance <shaunm@gnome.org>2010-04-28 12:21:00 -0500
commit1d2b1bc6438c865ad0da84dc94ee842ac4a898ae (patch)
tree2b73fc5cd598caf48ceb19adffe7c71a7be4687a /libyelp/yelp-document.c
parented25f72e8eb3524240e098736ede569949652e32 (diff)
downloadyelp-1d2b1bc6438c865ad0da84dc94ee842ac4a898ae.tar.gz
[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.
Diffstat (limited to 'libyelp/yelp-document.c')
-rw-r--r--libyelp/yelp-document.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libyelp/yelp-document.c b/libyelp/yelp-document.c
index aec4e7f7..c4ceba9f 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