From 96e8348caa17f5f4ccbed5afc836f9740ec77e0a Mon Sep 17 00:00:00 2001 From: Moritz Lipp Date: Thu, 29 Sep 2011 17:32:35 +0200 Subject: [PATCH] Prevent segfault in statusbar_page_number_update --- zathura.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/zathura.c b/zathura.c index 287b9fb..44b331d 100644 --- a/zathura.c +++ b/zathura.c @@ -389,7 +389,13 @@ document_close(zathura_t* zathura) zathura_document_free(zathura->document); zathura->document = NULL; - gtk_widget_hide_all(zathura->ui.page_view); + gtk_widget_hide(zathura->ui.page_view); + + statusbar_page_number_update(zathura); + + if (zathura->ui.session != NULL && zathura->ui.statusbar.file != NULL) { + girara_statusbar_item_set_text(zathura->ui.session, zathura->ui.statusbar.file, "[No name]"); + } return true; } @@ -440,9 +446,13 @@ statusbar_page_number_update(zathura_t* zathura) return; } - char* page_number_text = g_strdup_printf("[%d/%d]", zathura->document->current_page_number + 1, zathura->document->number_of_pages); - girara_statusbar_item_set_text(zathura->ui.session, zathura->ui.statusbar.page_number, page_number_text); - g_free(page_number_text); + if (zathura->document != NULL) { + char* page_number_text = g_strdup_printf("[%d/%d]", zathura->document->current_page_number + 1, zathura->document->number_of_pages); + girara_statusbar_item_set_text(zathura->ui.session, zathura->ui.statusbar.page_number, page_number_text); + g_free(page_number_text); + } else { + girara_statusbar_item_set_text(zathura->ui.session, zathura->ui.statusbar.page_number, ""); + } } void