[bijiben] Fix leaks on path, color and dates strings



commit 484c11db71f0e6ffb36b57a9ee5c48c411fc6bde
Author: Pierre-Yves Luyten <py luyten fr>
Date:   Fri Feb 8 22:32:50 2013 +0100

    Fix leaks on path, color and dates strings

 src/bjb-main-view.c                           |   11 ++++---
 src/libbiji/biji-tracker.c                    |   19 +++++++++----
 src/libbiji/serializer/biji-lazy-serializer.c |   35 +++++++++++++++---------
 3 files changed, 41 insertions(+), 24 deletions(-)
---
diff --git a/src/bjb-main-view.c b/src/bjb-main-view.c
index e2ad649..7fa9d6e 100644
--- a/src/bjb-main-view.c
+++ b/src/bjb-main-view.c
@@ -407,14 +407,15 @@ on_item_activated(GdMainView        * gd,
   GtkTreeModel * model ;
 
   /* Get Note Path */
-  model = gd_main_view_get_model(gd);
-  gtk_tree_model_get_iter (model,&iter, (GtkTreePath*) path);
+  model = gd_main_view_get_model (gd);
+  gtk_tree_model_get_iter (model, &iter, (GtkTreePath*) path);
   gtk_tree_model_get (model, &iter,COL_URI, &note_path,-1);
 
   /* Switch to that note */
-  book = bjb_window_base_get_book(view->priv->window); 
-  to_open = note_book_get_note_at_path(book,note_path) ;
-  switch_to_note(view,to_open); 
+  book = bjb_window_base_get_book (view->priv->window); 
+  to_open = note_book_get_note_at_path (book, note_path);
+  g_free (note_path);
+  switch_to_note (view, to_open); 
 
   return FALSE ;
 }
diff --git a/src/libbiji/biji-tracker.c b/src/libbiji/biji-tracker.c
index 2684d9c..4356d8f 100644
--- a/src/libbiji/biji-tracker.c
+++ b/src/libbiji/biji-tracker.c
@@ -322,14 +322,21 @@ biji_note_delete_from_tracker (BijiNoteObj *note)
 void
 bijiben_push_note_to_tracker (BijiNoteObj *note)
 {
-  gchar *title,*content,*file,*create_date,*last_change_date, *path;
-    
+  gchar *title,*content,*file,*date, *create_date,*last_change_date, *path;
+
+  path = biji_note_obj_get_path (note);    
   title = tracker_str (biji_note_obj_get_title (note));
-  file = g_strdup_printf ("file://%s", biji_note_obj_get_path(note));
-  create_date = to_8601_date (biji_note_obj_get_last_change_date (note));
-  last_change_date = to_8601_date (biji_note_obj_get_last_change_date (note));
+  file = g_strdup_printf ("file://%s", path);
+
+  date = biji_note_obj_get_create_date (note);
+  create_date = to_8601_date (date);
+  g_free (date);
+
+  date = biji_note_obj_get_last_change_date (note);
+  last_change_date = to_8601_date (date);
+  g_free (date);
+
   content = tracker_str (biji_note_get_raw_text (note));
-  path = biji_note_obj_get_path (note);
 
   /* TODO : nie:mimeType Note ;
    * All these properties are unique and thus can be "updated"
diff --git a/src/libbiji/serializer/biji-lazy-serializer.c b/src/libbiji/serializer/biji-lazy-serializer.c
index 3c1a149..9c6c558 100644
--- a/src/libbiji/serializer/biji-lazy-serializer.c
+++ b/src/libbiji/serializer/biji-lazy-serializer.c
@@ -166,7 +166,9 @@ biji_lazy_serialize_internal (BijiLazySerializer *self)
 {
   BijiLazySerializerPrivate *priv = self->priv;
   GList                     *tags;
-  GdkRGBA                   color;
+  GdkRGBA                    color;
+  gchar                     *path, *date, *color_str;
+  gboolean                   retval;
 
   priv->writer = xmlNewTextWriterMemory(priv->buf, 0);
 
@@ -199,14 +201,17 @@ biji_lazy_serialize_internal (BijiLazySerializer *self)
   xmlTextWriterEndElement(priv->writer);
 
   // <last-change-date>
-  serialize_node (priv->writer, "last-change-date",
-                  biji_note_obj_get_last_change_date (priv->note));
+  date = biji_note_obj_get_last_change_date (priv->note);
+  serialize_node (priv->writer, "last-change-date", date);
+  g_free (date);
 
-  serialize_node (priv->writer, "last-metadata-change-date",
-                  biji_note_obj_get_last_metadata_change_date(priv->note));
+  date = biji_note_obj_get_last_metadata_change_date (priv->note);
+  serialize_node (priv->writer, "last-metadata-change-date", date);
+  g_free (date);
 
-  serialize_node (priv->writer, "create-date",
-                  biji_note_obj_get_create_date (priv->note));
+  date = biji_note_obj_get_create_date (priv->note);
+  serialize_node (priv->writer, "create-date", date);
+  g_free (date);
 
   serialize_node (priv->writer, "cursor-position", "0");
   serialize_node (priv->writer, "selection-bound-position", "0");
@@ -214,9 +219,13 @@ biji_lazy_serialize_internal (BijiLazySerializer *self)
   serialize_node (priv->writer, "height", "0");
   serialize_node (priv->writer, "x", "0");
   serialize_node (priv->writer, "y", "0");
-  
+
   if (biji_note_obj_get_rgba (priv->note, &color))
-    serialize_node (priv->writer, "color", gdk_rgba_to_string (&color));
+  {
+    color_str = gdk_rgba_to_string (&color);
+    serialize_node (priv->writer, "color", color_str);
+    g_free (color_str);
+  }
 
   //<tags>
   xmlTextWriterWriteRaw(priv->writer, BAD_CAST "\n ");
@@ -235,10 +244,10 @@ biji_lazy_serialize_internal (BijiLazySerializer *self)
 
   xmlFreeTextWriter(priv->writer);
 
-  return g_file_set_contents (biji_note_obj_get_path (priv->note),
-                              (gchar*) priv->buf->content,
-                              -1,
-                              NULL);
+  path = biji_note_obj_get_path (priv->note);
+  retval = g_file_set_contents (path, (gchar*) priv->buf->content, -1, NULL);
+  g_free (path);
+  return retval;
 }
 
 /* No matter if icon is saved or not.


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