Mercurial > geeqie
comparison src/cache_maint.c @ 1523:24a12aa0cb54
Fix up event source ids type: gint -> guint.
Functions like g_timeout_add() or g_idle_add() return a guint
greater than 0, but in most places it was wrongly stored as int
and initialized to -1.
This broke assertions matching in g_source_remove() for example
since id was always greater than 0 even when timer was not set
(-1 was casted to the biggest guint).
author | zas_ |
---|---|
date | Mon, 06 Apr 2009 22:13:54 +0000 |
parents | 5f49f305a6b6 |
children | 956aab097ea7 |
comparison
equal
deleted
inserted
replaced
1522:d7206703d90f | 1523:24a12aa0cb54 |
---|---|
28 typedef struct _CMData CMData; | 28 typedef struct _CMData CMData; |
29 struct _CMData | 29 struct _CMData |
30 { | 30 { |
31 GList *list; | 31 GList *list; |
32 GList *done_list; | 32 GList *done_list; |
33 gint idle_id; | 33 guint idle_id; /* event source id */ |
34 GenericDialog *gd; | 34 GenericDialog *gd; |
35 GtkWidget *entry; | 35 GtkWidget *entry; |
36 GtkWidget *spinner; | 36 GtkWidget *spinner; |
37 GtkWidget *button_stop; | 37 GtkWidget *button_stop; |
38 GtkWidget *button_close; | 38 GtkWidget *button_close; |
109 return TRUE; | 109 return TRUE; |
110 } | 110 } |
111 | 111 |
112 static void cache_maintain_home_close(CMData *cm) | 112 static void cache_maintain_home_close(CMData *cm) |
113 { | 113 { |
114 if (cm->idle_id != -1) g_source_remove(cm->idle_id); | 114 if (cm->idle_id) g_source_remove(cm->idle_id); |
115 if (cm->gd) generic_dialog_close(cm->gd); | 115 if (cm->gd) generic_dialog_close(cm->gd); |
116 filelist_free(cm->list); | 116 filelist_free(cm->list); |
117 g_list_free(cm->done_list); | 117 g_list_free(cm->done_list); |
118 g_free(cm); | 118 g_free(cm); |
119 } | 119 } |
120 | 120 |
121 static void cache_maintain_home_stop(CMData *cm) | 121 static void cache_maintain_home_stop(CMData *cm) |
122 { | 122 { |
123 if (cm->idle_id != -1) | 123 if (cm->idle_id) |
124 { | 124 { |
125 g_source_remove(cm->idle_id); | 125 g_source_remove(cm->idle_id); |
126 cm->idle_id = -1; | 126 cm->idle_id = 0; |
127 } | 127 } |
128 | 128 |
129 gtk_entry_set_text(GTK_ENTRY(cm->entry), _("done")); | 129 gtk_entry_set_text(GTK_ENTRY(cm->entry), _("done")); |
130 spinner_set_interval(cm->spinner, -1); | 130 spinner_set_interval(cm->spinner, -1); |
131 | 131 |
156 base_length = strlen(cache_folder); | 156 base_length = strlen(cache_folder); |
157 | 157 |
158 if (!cm->list) | 158 if (!cm->list) |
159 { | 159 { |
160 DEBUG_1("purge chk done."); | 160 DEBUG_1("purge chk done."); |
161 cm->idle_id = -1; | 161 cm->idle_id = 0; |
162 cache_maintain_home_stop(cm); | 162 cache_maintain_home_stop(cm); |
163 return FALSE; | 163 return FALSE; |
164 } | 164 } |
165 | 165 |
166 fd = cm->list->data; | 166 fd = cm->list->data; |
687 gint count_done; | 687 gint count_done; |
688 | 688 |
689 gboolean local; | 689 gboolean local; |
690 gboolean recurse; | 690 gboolean recurse; |
691 | 691 |
692 gint idle_id; | 692 guint idle_id; /* event source id */ |
693 }; | 693 }; |
694 | 694 |
695 static void cache_manager_render_reset(CleanData *cd) | 695 static void cache_manager_render_reset(CleanData *cd) |
696 { | 696 { |
697 filelist_free(cd->list); | 697 filelist_free(cd->list); |
935 gtk_widget_set_sensitive(cd->button_close, TRUE); | 935 gtk_widget_set_sensitive(cd->button_close, TRUE); |
936 | 936 |
937 gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(cd->progress), 1.0); | 937 gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(cd->progress), 1.0); |
938 gtk_progress_bar_set_text(GTK_PROGRESS_BAR(cd->progress), _("done")); | 938 gtk_progress_bar_set_text(GTK_PROGRESS_BAR(cd->progress), _("done")); |
939 | 939 |
940 if (cd->idle_id != -1) | 940 if (cd->idle_id) |
941 { | 941 { |
942 g_source_remove(cd->idle_id); | 942 g_source_remove(cd->idle_id); |
943 cd->idle_id = -1; | 943 cd->idle_id = 0; |
944 } | 944 } |
945 | 945 |
946 thumb_loader_std_thumb_file_validate_cancel(cd->tl); | 946 thumb_loader_std_thumb_file_validate_cancel(cd->tl); |
947 cd->tl = NULL; | 947 cd->tl = NULL; |
948 | 948 |
981 } | 981 } |
982 | 982 |
983 return TRUE; | 983 return TRUE; |
984 } | 984 } |
985 | 985 |
986 cd->idle_id = -1; | 986 cd->idle_id = 0; |
987 cache_manager_standard_clean_done(cd); | 987 cache_manager_standard_clean_done(cd); |
988 return FALSE; | 988 return FALSE; |
989 } | 989 } |
990 | 990 |
991 static void cache_manager_standard_clean_valid_cb(const gchar *path, gboolean valid, gpointer data) | 991 static void cache_manager_standard_clean_valid_cb(const gchar *path, gboolean valid, gpointer data) |
1116 gtk_box_pack_start(GTK_BOX(cd->gd->vbox), cd->progress, FALSE, FALSE, 0); | 1116 gtk_box_pack_start(GTK_BOX(cd->gd->vbox), cd->progress, FALSE, FALSE, 0); |
1117 gtk_widget_show(cd->progress); | 1117 gtk_widget_show(cd->progress); |
1118 | 1118 |
1119 cd->days = 30; | 1119 cd->days = 30; |
1120 cd->tl = NULL; | 1120 cd->tl = NULL; |
1121 cd->idle_id = -1; | 1121 cd->idle_id = 0; |
1122 | 1122 |
1123 gtk_widget_show(cd->gd->dialog); | 1123 gtk_widget_show(cd->gd->dialog); |
1124 } | 1124 } |
1125 | 1125 |
1126 static void cache_manager_standard_clean_cb(GtkWidget *widget, gpointer data) | 1126 static void cache_manager_standard_clean_cb(GtkWidget *widget, gpointer data) |