diff options
author | MarcoPolo-PasTonMolo <marcopolopastonmolo@protonmail.com> | 2022-10-22 12:55:17 +0300 |
---|---|---|
committer | MarcoPolo-PasTonMolo <marcopolopastonmolo@protonmail.com> | 2022-10-22 12:56:15 +0300 |
commit | 135a4cd9e63de2047fb667e8c49f3a60cf341031 (patch) | |
tree | deabd8cd9d118df49f9f7b8a396294769ea57e29 /src/ui | |
parent | 6bca96f041ffdaad4716c5afcf23ba6620fb587e (diff) | |
download | profani-tty-135a4cd9e63de2047fb667e8c49f3a60cf341031.tar.gz |
Fix segfault when loading from MAM
When loading messages from MAM profanity would segfault. Reason was that we were freeing the timestamp of messages when displaying them and we needed it for loading MAM.
Diffstat (limited to 'src/ui')
-rw-r--r-- | src/ui/window.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/ui/window.c b/src/ui/window.c index dc37a5f1..dd40a534 100644 --- a/src/ui/window.c +++ b/src/ui/window.c @@ -2056,9 +2056,20 @@ win_redraw(ProfWin* window) void win_print_loading_history(ProfWin* window) { - GDateTime* timestamp = buffer_size(window->layout->buffer) != 0 ? buffer_get_entry(window->layout->buffer, 0)->time : g_date_time_new_now_local(); + GDateTime* timestamp; + gboolean is_buffer_empty = buffer_size(window->layout->buffer) == 0; + + if (!is_buffer_empty) { + timestamp = buffer_get_entry(window->layout->buffer, 0)->time; + } else { + timestamp = g_date_time_new_now_local(); + } + buffer_prepend(window->layout->buffer, "-", 0, timestamp, NO_DATE, THEME_ROOMINFO, NULL, NULL, LOADING_MESSAGE, NULL, NULL); - g_date_time_unref(timestamp); + + if (is_buffer_empty) + g_date_time_unref(timestamp); + win_redraw(window); } |