]> git.tdb.fi Git - ext/subsurface.git/commitdiff
Do something half-way sane (no SIGSEGV) when there are no dives
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 31 Aug 2011 23:40:22 +0000 (16:40 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 31 Aug 2011 23:40:22 +0000 (16:40 -0700)
It just leaves ugly blank areas, but whatever.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
info.c
profile.c

diff --git a/info.c b/info.c
index efd17f896f85ec987a9c26900710087cfd3fd2fb..bef3f1dba66a33858bc8285b64ff68f234bcf216 100644 (file)
--- 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 "
index f898be74580d04e80b03926428df962e8d2f32c5..9d84ff29d64de926983555be28660abcef2786dc 100644 (file)
--- 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);