summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garcia Campos <cgarcia@igalia.com>2012-08-31 12:30:49 +0200
committerShaun McCance <shaunm@gnome.org>2012-11-21 10:26:15 -0500
commit22ce877d810020ae69dd1509a4a5d3c3b55836d0 (patch)
tree0fff4328ed6ea73610cb3138b7f7443950057258
parent59091e405ce1fc1e9c54b8658be9cb2968a50e3d (diff)
downloadyelp-22ce877d810020ae69dd1509a4a5d3c3b55836d0.tar.gz
yelp-view: Don't free the passed GError in view_show_error_page()
The error should be considered as a const parameter, and it should be freed by the caller that created it. https://bugzilla.gnome.org/show_bug.cgi?id=683100
-rw-r--r--libyelp/yelp-document.c2
-rw-r--r--libyelp/yelp-view.c6
2 files changed, 5 insertions, 3 deletions
diff --git a/libyelp/yelp-document.c b/libyelp/yelp-document.c
index 1a4ff0a7..8794682d 100644
--- a/libyelp/yelp-document.c
+++ b/libyelp/yelp-document.c
@@ -1437,7 +1437,6 @@ request_idle_error (Request *request)
callback = request->callback;
user_data = request->user_data;
error = request->error;
- request->error = NULL;
priv->reqs_pending = g_slist_remove (priv->reqs_pending, request);
}
@@ -1450,6 +1449,7 @@ request_idle_error (Request *request)
user_data,
error);
+ g_clear_error (&request->error);
g_object_unref (document);
return FALSE;
}
diff --git a/libyelp/yelp-view.c b/libyelp/yelp-view.c
index 5e21bbfc..31469875 100644
--- a/libyelp/yelp-view.c
+++ b/libyelp/yelp-view.c
@@ -1634,6 +1634,7 @@ view_load_page (YelpView *view)
_("Could not load a document"));
}
view_show_error_page (view, error);
+ g_error_free (error);
return;
}
@@ -1798,7 +1799,6 @@ view_show_error_page (YelpView *view,
"UTF-8",
"file:///error/");
g_signal_handler_unblock (view, priv->navigation_requested);
- g_error_free (error);
g_free (title_m);
g_free (content_beg);
if (content_end != NULL)
@@ -2029,8 +2029,10 @@ uri_resolved (YelpUri *uri,
if (error == NULL)
view_load_page (view);
- else
+ else {
view_show_error_page (view, error);
+ g_error_free (error);
+ }
}
static void