Merge pull request #110535 from aaronp64/array_resize_ptrw

Avoid repeated `_copy_on_write()` calls in `Array::resize()`
This commit is contained in:
Thaddeus Crews 2025-09-16 09:48:53 -05:00
commit a298979866
No known key found for this signature in database
GPG key ID: 8C6E5FEB5FC03CCC

View file

@ -305,8 +305,9 @@ Error Array::resize(int p_new_size) {
int old_size = _p->array.size(); int old_size = _p->array.size();
Error err = _p->array.resize_initialized(p_new_size); Error err = _p->array.resize_initialized(p_new_size);
if (!err && variant_type != Variant::NIL && variant_type != Variant::OBJECT) { 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++) { 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; return err;