about summary refs log tree commit diff stats
path: root/src/ui/window.c
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2015-08-09 00:40:37 +0100
committerJames Booth <boothj5@gmail.com>2015-08-09 00:40:37 +0100
commit783342a48ce3a3db398d4aa4a0b032bddd0a9262 (patch)
tree8d2fdc8fc735c5054f86cd67aee7ae8fa7d3429c /src/ui/window.c
parentd944e8252ef8bd2e93edc7bb8ab8218c6bf28570 (diff)
downloadprofani-tty-783342a48ce3a3db398d4aa4a0b032bddd0a9262.tar.gz
Free timestamps and carbons stanzas
Diffstat (limited to 'src/ui/window.c')
-rw-r--r--src/ui/window.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/ui/window.c b/src/ui/window.c
index 95e89849..d537c97a 100644
--- a/src/ui/window.c
+++ b/src/ui/window.c
@@ -907,12 +907,17 @@ void
 win_print(ProfWin *window, const char show_char, int pad_indent, GDateTime *timestamp,
     int flags, theme_item_t theme_item, const char * const from, const char * const message)
 {
-    if (timestamp == NULL) timestamp = g_date_time_new_now_local();
+    if (timestamp == NULL) {
+        timestamp = g_date_time_new_now_local();
+    } else {
+        g_date_time_ref(timestamp);
+    }
 
     buffer_push(window->layout->buffer, show_char, pad_indent, timestamp, flags, theme_item, from, message, NULL);
     _win_print(window, show_char, pad_indent, timestamp, flags, theme_item, from, message, NULL);
     // TODO: cross-reference.. this should be replaced by a real event-based system
     ui_input_nonblocking(TRUE);
+    g_date_time_unref(timestamp);
 }
 
 void
@@ -975,7 +980,7 @@ _win_print(ProfWin *window, const char show_char, int pad_indent, GDateTime *tim
     gchar *date_fmt = NULL;
     char *time_pref = prefs_get_string(PREF_TIME);
     date_fmt = g_date_time_format(time, time_pref);
-    free(time_pref);
+    prefs_free_string(time_pref);
     assert(date_fmt != NULL);
 
     if(strlen(date_fmt) != 0){
@@ -992,7 +997,6 @@ _win_print(ProfWin *window, const char show_char, int pad_indent, GDateTime *tim
                 wattroff(window->layout->win, theme_attrs(THEME_TIME));
             }
         }
-        g_free(date_fmt);
     }
 
     if (strlen(from) > 0) {
@@ -1049,6 +1053,8 @@ _win_print(ProfWin *window, const char show_char, int pad_indent, GDateTime *tim
             wattroff(window->layout->win, theme_attrs(theme_item));
         }
     }
+
+    g_free(date_fmt);
 }
 
 static void