mirror of
https://github.com/godotengine/godot.git
synced 2024-11-14 16:13:08 +00:00
Merge pull request #73689 from vnen/gdscript-fix-inheritance-native-class
GDScript: Fix setting native type with script inheritance
This commit is contained in:
commit
49c1902a04
@ -2265,13 +2265,15 @@ Error GDScriptCompiler::_populate_class_members(GDScript *p_script, const GDScri
|
||||
|
||||
GDScriptDataType base_type = _gdtype_from_datatype(p_class->base_type, p_script);
|
||||
|
||||
int native_idx = GDScriptLanguage::get_singleton()->get_global_map()[base_type.native_type];
|
||||
p_script->native = GDScriptLanguage::get_singleton()->get_global_array()[native_idx];
|
||||
ERR_FAIL_COND_V(p_script->native.is_null(), ERR_BUG);
|
||||
|
||||
// Inheritance
|
||||
switch (base_type.kind) {
|
||||
case GDScriptDataType::NATIVE: {
|
||||
int native_idx = GDScriptLanguage::get_singleton()->get_global_map()[base_type.native_type];
|
||||
p_script->native = GDScriptLanguage::get_singleton()->get_global_array()[native_idx];
|
||||
ERR_FAIL_COND_V(p_script->native.is_null(), ERR_BUG);
|
||||
} break;
|
||||
case GDScriptDataType::NATIVE:
|
||||
// Nothing more to do.
|
||||
break;
|
||||
case GDScriptDataType::GDSCRIPT: {
|
||||
Ref<GDScript> base = Ref<GDScript>(base_type.script_type);
|
||||
if (base.is_null()) {
|
||||
@ -2303,7 +2305,6 @@ Error GDScriptCompiler::_populate_class_members(GDScript *p_script, const GDScri
|
||||
p_script->base = base;
|
||||
p_script->_base = base.ptr();
|
||||
p_script->member_indices = base->member_indices;
|
||||
p_script->native = base->native;
|
||||
} break;
|
||||
default: {
|
||||
_set_error("Parser bug: invalid inheritance.", nullptr);
|
||||
|
Loading…
Reference in New Issue
Block a user