diff --git a/info.c b/info.c index efd17f896..bef3f1dba 100644 --- a/info.c +++ b/info.c @@ -12,6 +12,13 @@ void update_dive_info(struct dive *dive) struct tm *tm; char buffer[80]; + if (!dive) { + gtk_entry_set_text(GTK_ENTRY(datetime), "no dive"); + gtk_entry_set_text(GTK_ENTRY(depth), ""); + gtk_entry_set_text(GTK_ENTRY(duration), ""); + return; + } + tm = gmtime(&dive->when); snprintf(buffer, sizeof(buffer), "%04d-%02d-%02d " diff --git a/profile.c b/profile.c index f898be745..9d84ff29d 100644 --- a/profile.c +++ b/profile.c @@ -100,7 +100,7 @@ static void plot(cairo_t *cr, int w, int h, struct dive *dive, int samples, stru static gboolean expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer data) { - struct dive *dive = dive_table.dives[selected_dive]; + struct dive *dive = current_dive; cairo_t *cr; int w,h; @@ -111,7 +111,7 @@ static gboolean expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer cairo_set_source_rgb(cr, 0, 0, 0); cairo_paint(cr); - if (dive->samples) + if (dive && dive->samples) plot(cr, w, h, dive, dive->samples, dive->sample); cairo_destroy(cr);