From 9e95b3d807e26178033724873f19e002fbf16926 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Wed, 5 Oct 2022 17:41:49 +0100 Subject: [PATCH] VarAction2: Limit iteration count when substituting variable loads --- src/newgrf_optimiser.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/newgrf_optimiser.cpp b/src/newgrf_optimiser.cpp index 4fa0ce392b..096b3cf5fb 100644 --- a/src/newgrf_optimiser.cpp +++ b/src/newgrf_optimiser.cpp @@ -814,7 +814,9 @@ void OptimiseVarAction2Adjust(VarAction2OptimiseState &state, const GrfSpecFeatu } VarAction2AdjustInferenceFlags non_const_var_inference = VA2AIF_NONE; - while (adjust.variable == 0x7D) { + int iteration = 32; + while (adjust.variable == 0x7D && iteration > 0) { + iteration--; non_const_var_inference = VA2AIF_NONE; auto iter = state.temp_stores.find(adjust.parameter & 0xFF); if (iter == state.temp_stores.end()) {