From 4c3f2be16d00ef8bd21da2f4b4f57f1850a553a6 Mon Sep 17 00:00:00 2001 From: aaronp64 Date: Mon, 15 Sep 2025 14:03:21 -0400 Subject: [PATCH] Avoid repeated _copy_on_write() calls in Array::resize() Updated Array::resize() to call ptrw() once before looping to initialize typed array elements, instead of accessing each through .write[]. --- core/variant/array.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/variant/array.cpp b/core/variant/array.cpp index 6647ffa8b02..7b234c35d2b 100644 --- a/core/variant/array.cpp +++ b/core/variant/array.cpp @@ -305,8 +305,9 @@ Error Array::resize(int p_new_size) { int old_size = _p->array.size(); Error err = _p->array.resize_initialized(p_new_size); if (!err && variant_type != Variant::NIL && variant_type != Variant::OBJECT) { + Variant *write = _p->array.ptrw(); for (int i = old_size; i < p_new_size; i++) { - VariantInternal::initialize(&_p->array.write[i], variant_type); + VariantInternal::initialize(&write[i], variant_type); } } return err;