summaryrefslogtreecommitdiff
path: root/modules/visual_script
diff options
context:
space:
mode:
authorJacob Edie <jacobedie1@gmail.com>2020-10-06 22:12:47 -0400
committerJacob Edie <jacobedie1@gmail.com>2020-10-06 22:12:47 -0400
commitd76457a7f39cade4f0bccfc8c68eb1b1c5a59c44 (patch)
tree7e8155f575b326cbbfcbacc05b1c0e044abbf4b4 /modules/visual_script
parent8818a93a3cc861144ab337401e00a3d1f5f549b2 (diff)
added temp variable because *p_inputs[2] is the same as *p_outputs[0]
Diffstat (limited to 'modules/visual_script')
-rw-r--r--modules/visual_script/visual_script_nodes.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/modules/visual_script/visual_script_nodes.cpp b/modules/visual_script/visual_script_nodes.cpp
index 1b77ed3168..28122ade99 100644
--- a/modules/visual_script/visual_script_nodes.cpp
+++ b/modules/visual_script/visual_script_nodes.cpp
@@ -1706,8 +1706,10 @@ public:
virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
bool valid;
+ // *p_output[0] points to the same place as *p_inputs[2] so we need a temp to store the value before the change in the next line
+ Variant temp = *p_inputs[2];
*p_outputs[0] = *p_inputs[0];
- p_outputs[0]->set(*p_inputs[1], *p_inputs[2], &valid);
+ p_outputs[0]->set(*p_inputs[1], temp, &valid);
if (!valid) {
r_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD;