diff options
author | jandegr <jandegr@users.noreply.github.com> | 2016-09-16 19:58:56 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-16 19:58:56 +0200 |
commit | 6728e21b0c9383504003684ef65fdf410c409971 (patch) | |
tree | 6a0426bc48e6a64ed1954df733f71a03f8ae87e6 | |
parent | 201839ca0f717ff32eaef5d59b83ff33962777cc (diff) | |
download | navit-6728e21b0c9383504003684ef65fdf410c409971.tar.gz |
gui_internal: free heightlines and diagram_pointsR6785
-rw-r--r-- | navit/gui/internal/gui_internal_command.c | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/navit/gui/internal/gui_internal_command.c b/navit/gui/internal/gui_internal_command.c index 21e299162..d26bd677d 100644 --- a/navit/gui/internal/gui_internal_command.c +++ b/navit/gui/internal/gui_internal_command.c @@ -540,6 +540,8 @@ gui_internal_cmd2_route_height_profile(struct gui_priv *this, char *function, st gui_internal_widget_append(box, w=gui_internal_label_new(this, text)); w->flags=gravity_bottom_center|orientation_horizontal|flags_fill; g_free(text); + gui_internal_menu_render(this); + return; } } } @@ -584,14 +586,28 @@ gui_internal_cmd2_route_height_profile(struct gui_priv *this, char *function, st } } } + while (heightlines){ + heightline=heightlines; + heightlines=heightlines->next; + g_free(heightline); + } if(mr) map_rect_destroy(mr); - gui_internal_menu_render(this); - - if(diagram_points_count < 2) /*fixme: maybe show a flatline in such cases*/ + if(diagram_points_count < 2){ + char *text; + struct widget *w; + text=g_strdup_printf("%s",_("The route must cross at least 2 heightlines")); + gui_internal_widget_append(box, w=gui_internal_label_new(this, text)); + w->flags=gravity_bottom_center|orientation_horizontal|flags_fill; + g_free(text); + gui_internal_menu_render(this); + if(diagram_points) + g_free(diagram_points); return; + } + gui_internal_menu_render(this); first=1; diagram_point=diagram_points; while (diagram_point) { @@ -634,6 +650,11 @@ gui_internal_cmd2_route_height_profile(struct gui_priv *this, char *function, st x=min->c.x+1; } } + while (diagram_points){ + diagram_point=diagram_points; + diagram_points=diagram_points->next; + g_free(diagram_point); + } } static void |