From 891c75b092fef4e3e6e870ebd2ed9569c06f6976 Mon Sep 17 00:00:00 2001 From: akashihi Date: Mon, 28 Jun 2010 13:17:50 +0000 Subject: [PATCH] Fix:core:Added NULL check in tracking_angle_delta. Additionally added new fallback behaviour for profile setting. Ticket #593 git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@3434 ffa7fe5e-494d-0410-b361-a75ebd5db220 --- navit/navit/navit.c | 12 +++++++++++- navit/navit/track.c | 9 ++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/navit/navit/navit.c b/navit/navit/navit.c index 108df2f..95f987a 100644 --- a/navit/navit/navit.c +++ b/navit/navit/navit.c @@ -2099,7 +2099,17 @@ navit_set_vehicle(struct navit *this_, struct navit_vehicle *nv) if (navit_set_vehicleprofile(this_, attr.u.str)) return; } - navit_set_vehicleprofile(this_,"car"); + if (!navit_set_vehicleprofile(this_,"car")) { + /* We do not have a fallback "car" profile + * so lets set any profile */ + GList *l; + l=this_->vehicleprofiles; + if (l) { + this_->vehicleprofile=l->data; + if (this_->route) + route_set_profile(this_->route, this_->vehicleprofile); + } + } } /** diff --git a/navit/navit/track.c b/navit/navit/track.c index c3fffef..32d26ed 100644 --- a/navit/navit/track.c +++ b/navit/navit/track.c @@ -518,10 +518,13 @@ tracking_angle_abs_diff(int a1, int a2, int full) static int tracking_angle_delta(struct tracking *tr, int vehicle_angle, int street_angle, int flags) { - int full=180,ret=360,fwd,rev; + int full=180,ret=360,fwd=0,rev=0; struct vehicleprofile *profile=tr->vehicleprofile; - fwd=((flags & profile->flags_forward_mask) == profile->flags); - rev=((flags & profile->flags_reverse_mask) == profile->flags); + + if (profile) { + fwd=((flags & profile->flags_forward_mask) == profile->flags); + rev=((flags & profile->flags_reverse_mask) == profile->flags); + } if (fwd || rev) { if (!fwd || !rev) { full=360; -- 2.7.4