diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-08-31 16:40:22 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-08-31 16:40:22 -0700 |
commit | 968aa28155b3a55b558d16e3a46dfd5c887dc3c6 (patch) | |
tree | dd3c18e4da2799773a4dcb9df521e916556e6b13 | |
parent | 00d798854aa2594b819f50dc135efca96a93adb9 (diff) | |
download | subsurface-968aa28155b3a55b558d16e3a46dfd5c887dc3c6.tar.gz |
Do something half-way sane (no SIGSEGV) when there are no dives
It just leaves ugly blank areas, but whatever.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | info.c | 7 | ||||
-rw-r--r-- | profile.c | 4 |
2 files changed, 9 insertions, 2 deletions
@@ -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 " @@ -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); |