From 5b6f641e990566c67e82a540b1c2e4212b747831 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Wed, 15 Nov 2023 13:45:38 +1100 Subject: [PATCH] Fix sizeof usage for Variant pointers in alloca Coverity report this as a non portable usage of sizeof --- core/variant/callable_bind.cpp | 4 ++-- scene/animation/animation_mixer.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/variant/callable_bind.cpp b/core/variant/callable_bind.cpp index 9a6380a55f42..6d6c60cbd4fe 100644 --- a/core/variant/callable_bind.cpp +++ b/core/variant/callable_bind.cpp @@ -133,7 +133,7 @@ void CallableCustomBind::get_bound_arguments(Vector &r_arguments, int & } void CallableCustomBind::call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, Callable::CallError &r_call_error) const { - const Variant **args = (const Variant **)alloca(sizeof(const Variant **) * (binds.size() + p_argcount)); + const Variant **args = (const Variant **)alloca(sizeof(Variant *) * (binds.size() + p_argcount)); for (int i = 0; i < p_argcount; i++) { args[i] = (const Variant *)p_arguments[i]; } @@ -145,7 +145,7 @@ void CallableCustomBind::call(const Variant **p_arguments, int p_argcount, Varia } Error CallableCustomBind::rpc(int p_peer_id, const Variant **p_arguments, int p_argcount, Callable::CallError &r_call_error) const { - const Variant **args = (const Variant **)alloca(sizeof(const Variant **) * (binds.size() + p_argcount)); + const Variant **args = (const Variant **)alloca(sizeof(Variant *) * (binds.size() + p_argcount)); for (int i = 0; i < p_argcount; i++) { args[i] = (const Variant *)p_arguments[i]; } diff --git a/scene/animation/animation_mixer.cpp b/scene/animation/animation_mixer.cpp index 085dcd75562d..96c2addb662b 100644 --- a/scene/animation/animation_mixer.cpp +++ b/scene/animation/animation_mixer.cpp @@ -1789,7 +1789,7 @@ void AnimationMixer::_blend_apply() { void AnimationMixer::_call_object(Object *p_object, const StringName &p_method, const Vector &p_params, bool p_deferred) { // Separate function to use alloca() more efficiently - const Variant **argptrs = (const Variant **)alloca(sizeof(const Variant **) * p_params.size()); + const Variant **argptrs = (const Variant **)alloca(sizeof(Variant *) * p_params.size()); const Variant *args = p_params.ptr(); uint32_t argcount = p_params.size(); for (uint32_t i = 0; i < argcount; i++) {