diff options
author | akashihi <akashihi@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2010-06-28 13:17:50 +0000 |
---|---|---|
committer | akashihi <akashihi@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2010-06-28 13:17:50 +0000 |
commit | e214bb3989eaac2bd009389ff2d1fa9a95da8790 (patch) | |
tree | a89e8446fa274807073f978605b102430e8af49b /navit | |
parent | 86a94089b8cad05b42ae0039bdfbc31d8bc8ea79 (diff) | |
download | navit-e214bb3989eaac2bd009389ff2d1fa9a95da8790.tar.gz |
Fix:core:Added NULL check in tracking_angle_delta. Additionally added
new fallback behaviour for profile setting. Ticket #593
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@3434 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit')
-rw-r--r-- | navit/navit.c | 12 | ||||
-rw-r--r-- | navit/track.c | 9 |
2 files changed, 17 insertions, 4 deletions
diff --git a/navit/navit.c b/navit/navit.c index 108df2fbc..95f987a6e 100644 --- a/navit/navit.c +++ b/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/track.c b/navit/track.c index c3fffef15..32d26ed7a 100644 --- a/navit/track.c +++ b/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; |