2
0
Fork 0

GDScript: validate instance before accessing it on error

Make sure the instance is valid before trying to access the script in
after an error happened. If the instance is not valid it's possible that
the script is invalid as well.

Fix #29623
3.2
George Marques 2019-11-01 14:37:32 +07:00
parent 36a785513f
commit 9fcd38fc70
No known key found for this signature in database
GPG Key ID: 046BD46A3201E43D
1 changed files with 2 additions and 2 deletions

@ -1561,14 +1561,14 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
//error
// function, file, line, error, explanation
String err_file;
if (p_instance && p_instance->script->is_valid() && p_instance->script->path != "")
if (p_instance && ObjectDB::instance_validate(p_instance->owner) && p_instance->script->is_valid() && p_instance->script->path != "")
err_file = p_instance->script->path;
else if (script)
err_file = script->path;
if (err_file == "")
err_file = "<built-in>";
String err_func = name;
if (p_instance && p_instance->script->is_valid() && p_instance->script->name != "")
if (p_instance && ObjectDB::instance_validate(p_instance->owner) && p_instance->script->is_valid() && p_instance->script->name != "")
err_func = p_instance->script->name + "." + err_func;
int err_line = line;
if (err_text == "") {