From aff9158d4156dadb6fb8ddbd5edcd8d0c7f7e17b Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Fri, 28 Oct 2011 05:38:11 -0700 Subject: [PATCH] filechooserentry: Reorganize function Setter functions the way I code it look like this (in order): 1) Figure out if the value changed. If not, exit early. 2) Clear the old value (ie unref stuff, disconnect signals 3) Copy the new value 4) Set up things about the new value This reorganization does that. And by doing that, it even reduces the amount of code and the amount of branches (and with it, nesting) needed. --- gtk/gtkfilechooserentry.c | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/gtk/gtkfilechooserentry.c b/gtk/gtkfilechooserentry.c index 9c8d6839eb..170305ef5e 100644 --- a/gtk/gtkfilechooserentry.c +++ b/gtk/gtkfilechooserentry.c @@ -1489,34 +1489,23 @@ reload_current_folder (GtkFileChooserEntry *chooser_entry, GFile *folder_file, gboolean force_reload) { - gboolean reload = FALSE; - g_assert (folder_file != NULL); + if (chooser_entry->current_folder_file + && g_file_equal (folder_file, chooser_entry->current_folder_file) + && chooser_entry->load_folder_cancellable + && !force_reload) + return REFRESH_OK; + if (chooser_entry->current_folder_file) { - if ((!(g_file_equal (folder_file, chooser_entry->current_folder_file) - && chooser_entry->load_folder_cancellable)) - || force_reload) - { - reload = TRUE; - - discard_current_folder (chooser_entry); - discard_loading_and_current_folder_file (chooser_entry); - - chooser_entry->current_folder_file = g_object_ref (folder_file); - } - } - else - { - chooser_entry->current_folder_file = g_object_ref (folder_file); - reload = TRUE; + discard_current_folder (chooser_entry); + discard_loading_and_current_folder_file (chooser_entry); } + + chooser_entry->current_folder_file = g_object_ref (folder_file); - if (reload) - return start_loading_current_folder (chooser_entry); - else - return REFRESH_OK; + return start_loading_current_folder (chooser_entry); } static RefreshStatus