From 16d5688a6ee49641807e656e09ab5ae7f59d9a80 Mon Sep 17 00:00:00 2001 From: martin-s Date: Fri, 19 Dec 2008 22:41:57 +0000 Subject: Fix:Avoid crashing if tracking hasn't got a street git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@1841 ffa7fe5e-494d-0410-b361-a75ebd5db220 --- navit/route.c | 5 ++++- navit/track.c | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/navit/route.c b/navit/route.c index 36634f876..ef281b001 100644 --- a/navit/route.c +++ b/navit/route.c @@ -679,6 +679,7 @@ route_set_position_from_tracking(struct route *this, struct tracking *tracking) { struct pcoord *c; struct route_info *ret; + struct street_data *sd; dbg(2,"enter\n"); c=tracking_get_pos(tracking); @@ -695,7 +696,9 @@ route_set_position_from_tracking(struct route *this, struct tracking *tracking) ret->lp.x=c->x; ret->lp.y=c->y; ret->pos=tracking_get_segment_pos(tracking); - ret->street=street_data_dup(tracking_get_street_data(tracking)); + sd=tracking_get_street_data(tracking); + if (sd) + ret->street=street_data_dup(sd); route_info_distances(ret, c->pro); dbg(3,"c->x=0x%x, c->y=0x%x pos=%d item=(0x%x,0x%x)\n", c->x, c->y, ret->pos, ret->street->item.id_hi, ret->street->item.id_lo); dbg(3,"street 0=(0x%x,0x%x) %d=(0x%x,0x%x)\n", ret->street->c[0].x, ret->street->c[0].y, ret->street->count-1, ret->street->c[ret->street->count-1].x, ret->street->c[ret->street->count-1].y); diff --git a/navit/track.c b/navit/track.c index 645ebeef9..a5ae42c36 100644 --- a/navit/track.c +++ b/navit/track.c @@ -91,7 +91,9 @@ tracking_get_segment_pos(struct tracking *tr) struct street_data * tracking_get_street_data(struct tracking *tr) { - return tr->curr_line->street; + if (tr->curr_line) + return tr->curr_line->street; + return NULL; } int -- cgit v1.2.1