From 40b9d003af443fa3ede815686dcbffc71d9f0c48 Mon Sep 17 00:00:00 2001 From: Lukas Tenbrink Date: Mon, 6 Oct 2025 10:53:31 +0200 Subject: [PATCH] Improve type registration order in register_core_types.cpp. --- core/register_core_types.cpp | 24 +++++++++++------------- scene/register_scene_types.cpp | 2 -- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/core/register_core_types.cpp b/core/register_core_types.cpp index e0e2d6836be..b71e680b415 100644 --- a/core/register_core_types.cpp +++ b/core/register_core_types.cpp @@ -130,16 +130,23 @@ void register_core_types() { static_assert(sizeof(Callable) <= 16); ObjectDB::setup(); - StringName::setup(); + register_global_constants(); + CoreStringNames::create(); + + GDREGISTER_CLASS(Object); + GDREGISTER_CLASS(RefCounted); + GDREGISTER_CLASS(WeakRef); + GDREGISTER_CLASS(Resource); + + GDREGISTER_CLASS(Time); _time = memnew(Time); ResourceLoader::initialize(); - register_global_constants(); - Variant::register_types(); - CoreStringNames::create(); + GDREGISTER_CLASS(ResourceFormatLoader); + GDREGISTER_CLASS(ResourceFormatSaver); if constexpr (GD_IS_CLASS_ENABLED(Translation)) { resource_format_po.instantiate(); @@ -162,17 +169,12 @@ void register_core_types() { ResourceLoader::add_resource_format_loader(resource_format_image); } - GDREGISTER_CLASS(Object); - GDREGISTER_ABSTRACT_CLASS(Script); GDREGISTER_ABSTRACT_CLASS(ScriptLanguage); GDREGISTER_CLASS(ScriptBacktrace); GDREGISTER_VIRTUAL_CLASS(ScriptExtension); GDREGISTER_VIRTUAL_CLASS(ScriptLanguageExtension); - GDREGISTER_CLASS(RefCounted); - GDREGISTER_CLASS(WeakRef); - GDREGISTER_CLASS(Resource); GDREGISTER_VIRTUAL_CLASS(MissingResource); GDREGISTER_CLASS(Image); @@ -256,9 +258,6 @@ void register_core_types() { GDREGISTER_CLASS(UndoRedo); GDREGISTER_CLASS(TriangleMesh); - GDREGISTER_CLASS(ResourceFormatLoader); - GDREGISTER_CLASS(ResourceFormatSaver); - GDREGISTER_ABSTRACT_CLASS(FileAccess); GDREGISTER_ABSTRACT_CLASS(DirAccess); GDREGISTER_CLASS(CoreBind::Thread); @@ -347,7 +346,6 @@ void register_early_core_singletons() { GDREGISTER_CLASS(CoreBind::OS); Engine::get_singleton()->add_singleton(Engine::Singleton("OS", CoreBind::OS::get_singleton())); - GDREGISTER_CLASS(Time); Engine::get_singleton()->add_singleton(Engine::Singleton("Time", Time::get_singleton())); } diff --git a/scene/register_scene_types.cpp b/scene/register_scene_types.cpp index 58fadf663a1..e5a62d0ed1f 100644 --- a/scene/register_scene_types.cpp +++ b/scene/register_scene_types.cpp @@ -410,8 +410,6 @@ void register_scene_types() { OS::get_singleton()->yield(); // may take time to init - GDREGISTER_CLASS(Object); - GDREGISTER_CLASS(Node); GDREGISTER_VIRTUAL_CLASS(MissingNode); GDREGISTER_ABSTRACT_CLASS(InstancePlaceholder);