summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormvglasow <michael -at- vonglasow.com>2018-08-18 15:02:23 +0200
committermvglasow <michael -at- vonglasow.com>2018-08-18 15:02:23 +0200
commitaf0bf12e076e53da8f49e66e5329cf46c719497f (patch)
tree15ce9203bad343abd8847a9ad52fb841a845ac54
parent229910eb12e22ea43330a6b95c602b448c847a26 (diff)
downloadnavit-af0bf12e076e53da8f49e66e5329cf46c719497f.tar.gz
Fix:traffic:Fix incorrect segment data for certain event combinations
Signed-off-by: mvglasow <michael -at- vonglasow.com>
-rw-r--r--navit/traffic.c13
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;
}