summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Verschelde <remi@verschelde.fr>2021-05-21 19:04:15 +0200
committerGitHub <noreply@github.com>2021-05-21 19:04:15 +0200
commit31bd2ccb44c0a796556600714f2f1b9b6e112122 (patch)
tree788c372a9dc759db9a8324f17ac6d3c8e48c0b72
parent2362a59a110e339e402c32dc844fd85e84f2a18d (diff)
parentafdc5edb2a9d3805b2e5d9bf1b3d998b83e0ea85 (diff)
Merge pull request #48926 from madmiraal/fix-38645
Remove alloca from loop and use a single fixed size array declaration
-rw-r--r--core/variant/array.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/core/variant/array.cpp b/core/variant/array.cpp
index 3c7e2a0719..09cf785390 100644
--- a/core/variant/array.cpp
+++ b/core/variant/array.cpp
@@ -366,8 +366,8 @@ Array Array::filter(const Callable &p_callable) const {
new_arr.resize(size());
int accepted_count = 0;
+ const Variant *argptrs[1];
for (int i = 0; i < size(); i++) {
- const Variant **argptrs = (const Variant **)alloca(sizeof(Variant *));
argptrs[0] = &get(i);
Variant result;
@@ -392,8 +392,8 @@ Array Array::map(const Callable &p_callable) const {
Array new_arr;
new_arr.resize(size());
+ const Variant *argptrs[1];
for (int i = 0; i < size(); i++) {
- const Variant **argptrs = (const Variant **)alloca(sizeof(Variant *));
argptrs[0] = &get(i);
Variant result;
@@ -417,8 +417,8 @@ Variant Array::reduce(const Callable &p_callable, const Variant &p_accum) const
start = 1;
}
+ const Variant *argptrs[2];
for (int i = start; i < size(); i++) {
- const Variant **argptrs = (const Variant **)alloca(sizeof(Variant *) * 2);
argptrs[0] = &ret;
argptrs[1] = &get(i);