Mercurial > geeqie.yaz
comparison src/logwindow.c @ 718:7119e30971ec
Fix a segfault occuring when logging an empty message and there is no log window.
author | zas_ |
---|---|
date | Wed, 21 May 2008 08:53:51 +0000 |
parents | fece9ff5c624 |
children | a7289f9e8d29 |
comparison
equal
deleted
inserted
replaced
717:aae956e84de4 | 718:7119e30971ec |
---|---|
209 GtkTextBuffer *buffer; | 209 GtkTextBuffer *buffer; |
210 GtkTextIter iter; | 210 GtkTextIter iter; |
211 gint line_limit = 1000; //FIXME: option | 211 gint line_limit = 1000; //FIXME: option |
212 static GList *memory = NULL; | 212 static GList *memory = NULL; |
213 | 213 |
214 if (logwindow == NULL && *str) | 214 if (logwindow == NULL) |
215 { | 215 { |
216 LogMsg *msg = g_new(LogMsg, 1); | 216 if (*str) { |
217 | 217 LogMsg *msg = g_new(LogMsg, 1); |
218 msg->text = g_strdup(str); | 218 |
219 msg->type = type; | 219 msg->text = g_strdup(str); |
220 | 220 msg->type = type; |
221 memory = g_list_prepend(memory, msg); | 221 |
222 | 222 memory = g_list_prepend(memory, msg); |
223 while (g_list_length(memory) >= line_limit) | 223 |
224 { | 224 while (g_list_length(memory) >= line_limit) |
225 GList *work = g_list_last(memory); | 225 { |
226 LogMsg *oldest_msg = work->data; | 226 GList *work = g_list_last(memory); |
227 LogMsg *oldest_msg = work->data; | |
227 | 228 |
228 g_free(oldest_msg->text); | 229 g_free(oldest_msg->text); |
229 memory = g_list_delete_link(memory, work); | 230 memory = g_list_delete_link(memory, work); |
231 } | |
230 } | 232 } |
231 | |
232 return; | 233 return; |
233 } | 234 } |
234 | 235 |
235 text = GTK_TEXT_VIEW(logwindow->text); | 236 text = GTK_TEXT_VIEW(logwindow->text); |
236 buffer = gtk_text_view_get_buffer(text); | 237 buffer = gtk_text_view_get_buffer(text); |