diff options
author | mvglasow <michael -at- vonglasow.com> | 2018-08-18 15:02:23 +0200 |
---|---|---|
committer | mvglasow <michael -at- vonglasow.com> | 2018-08-18 15:02:23 +0200 |
commit | af0bf12e076e53da8f49e66e5329cf46c719497f (patch) | |
tree | 15ce9203bad343abd8847a9ad52fb841a845ac54 /navit/traffic.c | |
parent | 229910eb12e22ea43330a6b95c602b448c847a26 (diff) | |
download | navit-af0bf12e076e53da8f49e66e5329cf46c719497f.tar.gz |
Fix:traffic:Fix incorrect segment data for certain event combinations
Signed-off-by: mvglasow <michael -at- vonglasow.com>
Diffstat (limited to 'navit/traffic.c')
-rw-r--r-- | navit/traffic.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/navit/traffic.c b/navit/traffic.c index 7b2040ec1..a8a0c07b4 100644 --- a/navit/traffic.c +++ b/navit/traffic.c @@ -3049,8 +3049,7 @@ static struct seg_data * traffic_message_parse_events(struct traffic_message * t case event_restriction_closed_ahead: if (!ret) ret = seg_data_new(); - if (ret->speed > 0) - ret->speed = 0; + ret->speed = 0; break; case event_restriction_intermittent_closures: case event_restriction_batch_service: @@ -3122,10 +3121,11 @@ static struct seg_data * traffic_message_parse_events(struct traffic_message * t if (!has_flags) flags = AF_ALL; + if (!ret) + ret = seg_data_new(); + /* use implicit values if no explicit ones are given */ if ((speed != INT_MAX) || speed_penalty || (speed_factor != 100) || delay) { - if (!ret) - ret = seg_data_new(); if (ret->speed == INT_MAX) { ret->speed = speed; ret->speed_penalty = speed_penalty; @@ -3133,10 +3133,11 @@ static struct seg_data * traffic_message_parse_events(struct traffic_message * t } if (!ret->delay) ret->delay = delay; - ret->dir = this_->location->directionality; - ret->flags = flags; } + ret->dir = this_->location->directionality; + ret->flags = flags; + return ret; } |