summaryrefslogtreecommitdiff
path: root/navit
diff options
context:
space:
mode:
authorakashihi <akashihi@ffa7fe5e-494d-0410-b361-a75ebd5db220>2010-06-28 13:17:50 +0000
committerakashihi <akashihi@ffa7fe5e-494d-0410-b361-a75ebd5db220>2010-06-28 13:17:50 +0000
commite214bb3989eaac2bd009389ff2d1fa9a95da8790 (patch)
treea89e8446fa274807073f978605b102430e8af49b /navit
parent86a94089b8cad05b42ae0039bdfbc31d8bc8ea79 (diff)
downloadnavit-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.c12
-rw-r--r--navit/track.c9
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;