You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-13 13:31:48 +00:00
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[].
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user