From b43f84780882358d451bece176de2c854f666f30 Mon Sep 17 00:00:00 2001 From: Ninni Pipping Date: Tue, 14 Mar 2023 14:11:05 +0100 Subject: Fix `Array.slice()` rounding for `abs(step) != 1` (cherry picked from commit 10f385fb792dc74ffb8be221fec88ba9ef7aaa25) --- core/variant/array.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'core') diff --git a/core/variant/array.cpp b/core/variant/array.cpp index d156c35343..5215142dd3 100644 --- a/core/variant/array.cpp +++ b/core/variant/array.cpp @@ -466,7 +466,7 @@ Array Array::slice(int p_begin, int p_end, int p_step, bool p_deep) const { ERR_FAIL_COND_V_MSG(p_step > 0 && begin > end, result, "Slice is positive, but bounds is decreasing."); ERR_FAIL_COND_V_MSG(p_step < 0 && begin < end, result, "Slice is negative, but bounds is increasing."); - int result_size = (end - begin) / p_step; + int result_size = (end - begin) / p_step + (((end - begin) % p_step != 0) ? 1 : 0); result.resize(result_size); for (int src_idx = begin, dest_idx = 0; dest_idx < result_size; ++dest_idx) { -- cgit v1.2.3