[atomix/wip/kill-libxml] Plugged some memory leaks



commit ebae8a528140b8aa2b62a2969b0ebc044cd089d9
Author: Robert Roth <robert roth off gmail com>
Date:   Mon Mar 30 12:48:57 2015 +0300

    Plugged some memory leaks

 src/level-manager.c |   34 +++++++++++++++++-----------------
 src/level.c         |    1 -
 src/main.c          |   11 +++++++----
 src/theme-manager.c |    2 ++
 4 files changed, 26 insertions(+), 22 deletions(-)
---
diff --git a/src/level-manager.c b/src/level-manager.c
index 4c12bd1..2e20160 100644
--- a/src/level-manager.c
+++ b/src/level-manager.c
@@ -263,21 +263,6 @@ static void search_level_in_dir (LevelManager *lm, gchar *dir_path)
     }
 }
 
-static gchar *lookup_level_name (gchar *filename)
-{
-
-  gchar *name = NULL;
-  Level *level = NULL;
-
-  g_return_val_if_fail (filename != NULL, NULL);
-  g_return_val_if_fail (g_file_test (filename, G_FILE_TEST_EXISTS), NULL);
-
-  level = load_level (filename);
-  name = level_get_name (level);
-
-  return name;
-}
-
 static void add_level (LevelManager *lm, gchar *levelname, gchar *filename)
 {
   gchar *search_result;
@@ -338,7 +323,7 @@ Level *level_manager_get_next_level (LevelManager *lm, Level *current_level)
     {
       filename = g_hash_table_lookup (lm->priv->levels, levelname);
       if (filename != NULL)
-       level = load_level (filename);
+           level = load_level (filename);
     }
 
   return level;
@@ -376,6 +361,21 @@ static GMarkupParser level_parser =
   xml_parser_log_error
 };
 
+static gchar *lookup_level_name (gchar *filename)
+{
+
+  gchar *name = NULL;
+  Level *level = NULL;
+
+  g_return_val_if_fail (filename != NULL, NULL);
+  g_return_val_if_fail (g_file_test (filename, G_FILE_TEST_EXISTS), NULL);
+
+  level = load_level (filename);
+  name = level_get_name (level);
+
+  return name;
+}
+
 static Level *load_level (gchar *filename)
 {
   GFile *level_file;
@@ -396,6 +396,7 @@ static Level *load_level (gchar *filename)
   level_file = g_file_new_for_path (filename);
   if (g_file_load_contents (level_file, NULL, &level_contents, &level_length, NULL, NULL)) {
     level = level_new ();
+    level->priv->file_name = g_path_get_basename (filename);
     parse_context = g_markup_parse_context_new (&level_parser,
                                                 G_MARKUP_TREAT_CDATA_AS_TEXT,
                                                 level,
@@ -403,7 +404,6 @@ static Level *load_level (gchar *filename)
     g_markup_parse_context_parse (parse_context, level_contents, level_length, NULL);
     g_markup_parse_context_unref (parse_context);
     g_free (level_contents);
-    level->priv->file_name = g_path_get_basename (filename);
   }
 
   return level;
diff --git a/src/level.c b/src/level.c
index 46a8471..160672d 100644
--- a/src/level.c
+++ b/src/level.c
@@ -99,7 +99,6 @@ static void level_finalize (GObject *object)
 {
   LevelPrivate *priv;
   Level* level = LEVEL (object);
-
   priv = level->priv;
 
   if (priv->name)
diff --git a/src/main.c b/src/main.c
index 51e8d40..24f9190 100644
--- a/src/main.c
+++ b/src/main.c
@@ -575,6 +575,7 @@ static AtomixApp *create_gui (void)
 {
   AtomixApp *app;
   gchar *ui_path;
+  gchar *icon_path;
   GtkBuilder *builder;
   GtkWidget *stats_grid;
   GtkWidget *time_label;
@@ -653,11 +654,13 @@ static AtomixApp *create_gui (void)
   app->lb_formula = GTK_WIDGET (gtk_builder_get_object (builder, "formula_value"));
   app->lb_score = GTK_WIDGET (gtk_builder_get_object (builder, "score_value"));
 
-  gtk_window_set_default_icon_from_file (g_build_filename (DATADIR,
-                                                          "pixmaps",
-                                                          "atomix-icon.png",
-                                                          NULL),
+  icon_path = g_build_filename (DATADIR,
+                                                           "pixmaps",
+                                                           "atomix-icon.png",
+                                                           NULL);
+  gtk_window_set_default_icon_from_file (icon_path,
                                                           NULL);
+  g_free (icon_path);
 
   gtk_widget_show_all (GTK_WIDGET (app->mainwin));
 
diff --git a/src/theme-manager.c b/src/theme-manager.c
index 2ebb787..b787220 100644
--- a/src/theme-manager.c
+++ b/src/theme-manager.c
@@ -349,6 +349,8 @@ static Theme *load_theme (gchar *theme_dir)
     }
 
   theme_file = g_file_new_for_path (theme_file_path);
+  g_free (theme_file_path);
+
   if (g_file_load_contents (theme_file, NULL, &theme_contents, &theme_length, NULL, NULL)) {
     theme = theme_new ();
     priv = theme->priv;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]