[tracker/experiment-with-roi] tracker-extract: Fix a number of memory leaks
- From: Martyn James Russell <mr src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/experiment-with-roi] tracker-extract: Fix a number of memory leaks
- Date: Tue, 6 Sep 2011 16:36:52 +0000 (UTC)
commit fd290d1b9a2d69a4f382ab88fc40775db82bf290
Author: Martyn Russell <martyn lanedo com>
Date: Tue Sep 6 16:58:06 2011 +0100
tracker-extract: Fix a number of memory leaks
- mimetype in extract_task_new()
- task_mutex in TrackerExtract private struct
- TrackerMimetypeInfo in extract_task_free()
- graph string in extract_task_free()
src/tracker-extract/tracker-extract.c | 19 ++++++++++++++++---
1 files changed, 16 insertions(+), 3 deletions(-)
---
diff --git a/src/tracker-extract/tracker-extract.c b/src/tracker-extract/tracker-extract.c
index f8a48ad..cff290a 100644
--- a/src/tracker-extract/tracker-extract.c
+++ b/src/tracker-extract/tracker-extract.c
@@ -152,6 +152,10 @@ tracker_extract_finalize (GObject *object)
/* FIXME: Shutdown modules? */
+ if (priv->task_mutex) {
+ g_mutex_free (priv->task_mutex);
+ }
+
g_hash_table_destroy (priv->single_thread_extractors);
g_thread_pool_free (priv->thread_pool, TRUE, FALSE);
@@ -400,6 +404,7 @@ extract_task_new (TrackerExtract *extract,
GError **error)
{
TrackerExtractTask *task;
+ gchar *mimetype_used;
if (!mimetype || !*mimetype) {
GFile *file;
@@ -420,16 +425,18 @@ extract_task_new (TrackerExtract *extract,
return NULL;
}
- mimetype = g_strdup (g_file_info_get_content_type (info));
+ mimetype_used = g_strdup (g_file_info_get_content_type (info));
g_debug ("Guessing mime type as '%s'", mimetype);
g_object_unref (info);
+ } else {
+ mimetype_used = g_strdup (mimetype);
}
task = g_slice_new0 (TrackerExtractTask);
task->cancellable = (cancellable) ? g_object_ref (cancellable) : NULL;
task->res = (res) ? g_object_ref (res) : NULL;
task->file = g_strdup (uri);
- task->mimetype = g_strdup (mimetype);
+ task->mimetype = mimetype_used;
task->graph = g_strdup (graph);
task->extract = extract;
@@ -459,8 +466,14 @@ extract_task_free (TrackerExtractTask *task)
g_object_unref (task->cancellable);
}
- g_free (task->file);
+ if (task->mimetype_handlers) {
+ tracker_mimetype_info_free (task->mimetype_handlers);
+ }
+
+ g_free (task->graph);
g_free (task->mimetype);
+ g_free (task->file);
+
g_slice_free (TrackerExtractTask, task);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]