diff options
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; } |