Skip to content

Commit

Permalink
Merge pull request #82294 from dalexeev/gds-fix-gdsnc-crash
Browse files Browse the repository at this point in the history
GDScript: Fix crash with `GDScriptNativeClass`
  • Loading branch information
akien-mga committed Sep 26, 2023
2 parents 563d225 + 16b024b commit 0c626bd
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions modules/gdscript/gdscript_compiler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -104,13 +104,24 @@ GDScriptDataType GDScriptCompiler::_gdtype_from_datatype(const GDScriptParser::D
if (p_handle_metatype && p_datatype.is_meta_type) {
result.kind = GDScriptDataType::NATIVE;
result.builtin_type = Variant::OBJECT;
result.native_type = GDScriptNativeClass::get_class_static();
// Fixes GH-82255. `GDScriptNativeClass` is obtainable in GDScript,
// but is not a registered and exposed class, so `GDScriptNativeClass`
// is missing from `GDScriptLanguage::get_singleton()->get_global_map()`.
//result.native_type = GDScriptNativeClass::get_class_static();
result.native_type = Object::get_class_static();
break;
}

result.kind = GDScriptDataType::NATIVE;
result.native_type = p_datatype.native_type;
result.builtin_type = p_datatype.builtin_type;
result.native_type = p_datatype.native_type;

#ifdef DEBUG_ENABLED
if (unlikely(!GDScriptLanguage::get_singleton()->get_global_map().has(result.native_type))) {
ERR_PRINT(vformat(R"(GDScript bug: Native class "%s" not found.)", result.native_type));
result.native_type = Object::get_class_static();
}
#endif
} break;
case GDScriptParser::DataType::SCRIPT: {
if (p_handle_metatype && p_datatype.is_meta_type) {
Expand Down

0 comments on commit 0c626bd

Please sign in to comment.