[yelp] [libyelp/yelp-document.c] Don't keep trying to refree freed resources



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]