[epiphany] filters-manager: Fix two memory leaks
- From: Michael Catanzaro <mcatanzaro src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [epiphany] filters-manager: Fix two memory leaks
- Date: Mon, 23 Jan 2017 16:13:45 +0000 (UTC)
commit 1290e4a71d723e7edce59cb89f53d12a4b3a1a1a
Author: Michael Catanzaro <mcatanzaro gnome org>
Date: Mon Jan 23 09:03:33 2017 -0600
filters-manager: Fix two memory leaks
Also, store a string rather than yet another GFile in the
AdblockFilterRetrieveData struct.
https://bugzilla.gnome.org/show_bug.cgi?id=776286
lib/ephy-filters-manager.c | 14 +++++++++-----
1 files changed, 9 insertions(+), 5 deletions(-)
---
diff --git a/lib/ephy-filters-manager.c b/lib/ephy-filters-manager.c
index b171efa..989414f 100644
--- a/lib/ephy-filters-manager.c
+++ b/lib/ephy-filters-manager.c
@@ -81,7 +81,7 @@ adblock_filter_file_is_valid (GFile *file)
typedef struct {
EphyFiltersManager *manager;
- GFile *src_file;
+ char *src_uri;
GFile *filter_file;
GFile *tmp_file;
} AdblockFilterRetrieveData;
@@ -96,7 +96,7 @@ adblock_filter_retrieve_data_new (EphyFiltersManager *manager,
data = g_slice_new (AdblockFilterRetrieveData);
data->manager = g_object_ref (manager);
- data->src_file = g_object_ref (src_file);
+ data->src_uri = g_file_get_uri (src_file);
data->filter_file = g_object_ref (filter_file);
path = g_file_get_path (filter_file);
@@ -112,10 +112,11 @@ static void
adblock_filter_retrieve_data_free (AdblockFilterRetrieveData *data)
{
g_object_unref (data->manager);
- g_object_unref (data->src_file);
g_object_unref (data->filter_file);
g_object_unref (data->tmp_file);
+ g_free (data->src_uri);
+
g_slice_free (AdblockFilterRetrieveData, data);
}
@@ -136,7 +137,7 @@ retrieve_filter_file_finished (GFile *src,
g_object_unref (stream);
if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
- g_warning ("Error retrieving filter %s: %s\n", g_file_get_uri (data->src_file), error->message);
+ g_warning ("Error retrieving filter %s: %s\n", data->src_uri, error->message);
g_error_free (error);
}
@@ -172,6 +173,7 @@ remove_old_adblock_filters (EphyFiltersManager *manager,
GFile *filters_dir;
GFileEnumerator *enumerator;
gboolean current_filter;
+ char *path;
GError *error = NULL;
filters_dir = g_file_new_for_path (manager->filters_dir);
@@ -212,7 +214,9 @@ remove_old_adblock_filters (EphyFiltersManager *manager,
if (!current_filter) {
g_file_delete (file, NULL, &error);
if (error != NULL) {
- g_warning ("Failed to remove %s: %s", g_file_get_path (file), error->message);
+ path = g_file_get_path (file);
+ g_warning ("Failed to remove %s: %s", path, error->message);
+ g_free (path);
g_clear_error (&error);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]