GDscript function str2var now returns input string on invalid input
str2var used to raise a blocking error when invalid input was passed. Now it logs an error message and returns the input string. This solution was proposed in #13021. Closes #11457 and #13021.
This commit is contained in:
parent
eeee47196c
commit
78c9677816
1 changed files with 2 additions and 10 deletions
|
@ -729,22 +729,14 @@ void GDScriptFunctions::call(Function p_func, const Variant **p_args, int p_arg_
|
|||
r_ret = Variant();
|
||||
return;
|
||||
}
|
||||
r_ret = *p_args[0];
|
||||
|
||||
VariantParser::StreamString ss;
|
||||
ss.s = *p_args[0];
|
||||
|
||||
String errs;
|
||||
int line;
|
||||
Error err = VariantParser::parse(&ss, r_ret, errs, line);
|
||||
|
||||
if (err != OK) {
|
||||
r_error.error = Variant::CallError::CALL_ERROR_INVALID_ARGUMENT;
|
||||
r_error.argument = 0;
|
||||
r_error.expected = Variant::STRING;
|
||||
r_ret = "Parse error at line " + itos(line) + ": " + errs;
|
||||
return;
|
||||
}
|
||||
|
||||
(void)VariantParser::parse(&ss, r_ret, errs, line);
|
||||
} break;
|
||||
case VAR_TO_BYTES: {
|
||||
VALIDATE_ARG_COUNT(1);
|
||||
|
|
Loading…
Reference in a new issue