You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-05 12:10:55 +00:00
GDScript compiler: check if subclass exists before comparison
Otherwise these checks might trigger the insertion of an empty value, leading to crashes.
This commit is contained in:
@@ -486,7 +486,7 @@ int GDScriptCompiler::_parse_expression(CodeGen &codegen, const GDScriptParser::
|
||||
script = codegen.script;
|
||||
} else {
|
||||
StringName name = cn->cast_type.class_type->name;
|
||||
if (class_map[name] == codegen.script->subclasses[name]) {
|
||||
if (codegen.script->subclasses.has(name) && class_map[name] == codegen.script->subclasses[name]) {
|
||||
idx = codegen.get_name_map_pos(name);
|
||||
idx |= GDScriptFunction::ADDR_TYPE_CLASS_CONSTANT << GDScriptFunction::ADDR_BITS;
|
||||
} else {
|
||||
@@ -1183,7 +1183,7 @@ int GDScriptCompiler::_parse_expression(CodeGen &codegen, const GDScriptParser::
|
||||
script = codegen.script;
|
||||
} else {
|
||||
StringName name = assign_type.class_type->name;
|
||||
if (class_map[name] == codegen.script->subclasses[name]) {
|
||||
if (codegen.script->subclasses.has(name) && class_map[name] == codegen.script->subclasses[name]) {
|
||||
idx = codegen.get_name_map_pos(name);
|
||||
idx |= GDScriptFunction::ADDR_TYPE_CLASS_CONSTANT << GDScriptFunction::ADDR_BITS;
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user