Browse Source

Fix arg count checks in SceneDebugger

kleonc 2 years ago
parent
commit
95809e58d5
1 changed files with 4 additions and 4 deletions
  1. 4 4
      scene/debugger/scene_debugger.cpp

+ 4 - 4
scene/debugger/scene_debugger.cpp

@@ -163,6 +163,7 @@ Error SceneDebugger::parse_message(void *p_user, const String &p_msg, const Arra
 		live_editor->_res_set_func(p_args[0], p_args[1], p_args[2]);
 		live_editor->_res_set_func(p_args[0], p_args[1], p_args[2]);
 
 
 	} else if (p_msg == "live_node_call") {
 	} else if (p_msg == "live_node_call") {
+		ERR_FAIL_COND_V(p_args.size() < 2, ERR_INVALID_DATA);
 		LocalVector<Variant> args;
 		LocalVector<Variant> args;
 		LocalVector<Variant *> argptrs;
 		LocalVector<Variant *> argptrs;
 		args.resize(p_args.size() - 2);
 		args.resize(p_args.size() - 2);
@@ -171,11 +172,10 @@ Error SceneDebugger::parse_message(void *p_user, const String &p_msg, const Arra
 			args[i] = p_args[i + 2];
 			args[i] = p_args[i + 2];
 			argptrs[i] = &args[i];
 			argptrs[i] = &args[i];
 		}
 		}
-		live_editor->_node_call_func(p_args[0], p_args[1], (const Variant **)argptrs.ptr(), argptrs.size());
+		live_editor->_node_call_func(p_args[0], p_args[1], argptrs.size() ? (const Variant **)argptrs.ptr() : nullptr, argptrs.size());
 
 
 	} else if (p_msg == "live_res_call") {
 	} else if (p_msg == "live_res_call") {
-		ERR_FAIL_COND_V(p_args.size() < 10, ERR_INVALID_DATA);
-
+		ERR_FAIL_COND_V(p_args.size() < 2, ERR_INVALID_DATA);
 		LocalVector<Variant> args;
 		LocalVector<Variant> args;
 		LocalVector<Variant *> argptrs;
 		LocalVector<Variant *> argptrs;
 		args.resize(p_args.size() - 2);
 		args.resize(p_args.size() - 2);
@@ -184,7 +184,7 @@ Error SceneDebugger::parse_message(void *p_user, const String &p_msg, const Arra
 			args[i] = p_args[i + 2];
 			args[i] = p_args[i + 2];
 			argptrs[i] = &args[i];
 			argptrs[i] = &args[i];
 		}
 		}
-		live_editor->_res_call_func(p_args[0], p_args[1], (const Variant **)argptrs.ptr(), argptrs.size());
+		live_editor->_res_call_func(p_args[0], p_args[1], argptrs.size() ? (const Variant **)argptrs.ptr() : nullptr, argptrs.size());
 
 
 	} else if (p_msg == "live_create_node") {
 	} else if (p_msg == "live_create_node") {
 		ERR_FAIL_COND_V(p_args.size() < 3, ERR_INVALID_DATA);
 		ERR_FAIL_COND_V(p_args.size() < 3, ERR_INVALID_DATA);