]> Pileus Git - aweather/commitdiff
Fix crash when setting the date
authorAndy Spencer <andy753421@gmail.com>
Thu, 10 Nov 2011 07:17:49 +0000 (07:17 +0000)
committerAndy Spencer <andy753421@gmail.com>
Thu, 10 Nov 2011 07:17:49 +0000 (07:17 +0000)
If the date was set before the time was set, the call to get the current
time from the tree-view would return a null path and cause a segfault.

src/aweather-gui.c

index 5e25535a49d711eb56ec9551b690f7aca283c45f..df5e84695aa9a9d265d3a7fa2e2fd9e133843301 100644 (file)
@@ -258,13 +258,15 @@ G_MODULE_EXPORT void on_time_changed(AWeatherGui *self)
                        (guint*)&tm.tm_mon, (guint*)&tm.tm_mday);
        tm.tm_year -= 1900;
 
-       GtkTreeIter   iter;
-       GtkTreePath  *path  = NULL;
-       GtkWidget    *view  = aweather_gui_get_widget(self, "main_time");
-       GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
+       GtkTreePath *path = NULL;
+       GtkWidget   *view = aweather_gui_get_widget(self, "main_time");
        gtk_tree_view_get_cursor(GTK_TREE_VIEW(view), &path, NULL);
-       gtk_tree_model_get_iter(model, &iter, path);
-       gtk_tree_model_get(model, &iter, 1, &tm.tm_hour, 2, &tm.tm_min, -1);
+       if (path) {
+               GtkTreeIter   iter;
+               GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
+               gtk_tree_model_get_iter(model, &iter, path);
+               gtk_tree_model_get(model, &iter, 1, &tm.tm_hour, 2, &tm.tm_min, -1);
+       }
 
        grits_viewer_set_time(self->viewer, mktime(&tm));
 }