From 091fb0da44b884e6a053e000fe5aa2068fb26b8c Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Tue, 16 Jan 2024 17:31:23 +0000 Subject: [PATCH] Fix crash which could occur when trying to extend invalidated reservation When using realistic braking --- src/train_cmd.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index f771399c9b..4744d57e24 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -1016,7 +1016,11 @@ static void AdvanceLookAheadPosition(Train *v) if (v->lookahead->current_position == v->lookahead->next_extend_position) { SetTrainReservationLookaheadEnd(v); + + /* This may clear the lookahead if it has become invalid */ TryLongReserveChooseTrainTrackFromReservationEnd(v, true); + if (v->lookahead == nullptr) return; + v->lookahead->SetNextExtendPositionIfUnset(); } }