Merge pull request #111318 from Ivorforce/registration-order-1

Improve type registration order in `register_core_types.cpp`.
This commit is contained in:
Thaddeus Crews 2025-10-07 11:54:41 -05:00
commit 9c63619f20
No known key found for this signature in database
GPG key ID: 8C6E5FEB5FC03CCC
2 changed files with 11 additions and 15 deletions

View file

@ -130,16 +130,23 @@ void register_core_types() {
static_assert(sizeof(Callable) <= 16); static_assert(sizeof(Callable) <= 16);
ObjectDB::setup(); ObjectDB::setup();
StringName::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); _time = memnew(Time);
ResourceLoader::initialize(); ResourceLoader::initialize();
register_global_constants();
Variant::register_types(); Variant::register_types();
CoreStringNames::create(); GDREGISTER_CLASS(ResourceFormatLoader);
GDREGISTER_CLASS(ResourceFormatSaver);
if constexpr (GD_IS_CLASS_ENABLED(Translation)) { if constexpr (GD_IS_CLASS_ENABLED(Translation)) {
resource_format_po.instantiate(); resource_format_po.instantiate();
@ -162,17 +169,12 @@ void register_core_types() {
ResourceLoader::add_resource_format_loader(resource_format_image); ResourceLoader::add_resource_format_loader(resource_format_image);
} }
GDREGISTER_CLASS(Object);
GDREGISTER_ABSTRACT_CLASS(Script); GDREGISTER_ABSTRACT_CLASS(Script);
GDREGISTER_ABSTRACT_CLASS(ScriptLanguage); GDREGISTER_ABSTRACT_CLASS(ScriptLanguage);
GDREGISTER_CLASS(ScriptBacktrace); GDREGISTER_CLASS(ScriptBacktrace);
GDREGISTER_VIRTUAL_CLASS(ScriptExtension); GDREGISTER_VIRTUAL_CLASS(ScriptExtension);
GDREGISTER_VIRTUAL_CLASS(ScriptLanguageExtension); GDREGISTER_VIRTUAL_CLASS(ScriptLanguageExtension);
GDREGISTER_CLASS(RefCounted);
GDREGISTER_CLASS(WeakRef);
GDREGISTER_CLASS(Resource);
GDREGISTER_VIRTUAL_CLASS(MissingResource); GDREGISTER_VIRTUAL_CLASS(MissingResource);
GDREGISTER_CLASS(Image); GDREGISTER_CLASS(Image);
@ -256,9 +258,6 @@ void register_core_types() {
GDREGISTER_CLASS(UndoRedo); GDREGISTER_CLASS(UndoRedo);
GDREGISTER_CLASS(TriangleMesh); GDREGISTER_CLASS(TriangleMesh);
GDREGISTER_CLASS(ResourceFormatLoader);
GDREGISTER_CLASS(ResourceFormatSaver);
GDREGISTER_ABSTRACT_CLASS(FileAccess); GDREGISTER_ABSTRACT_CLASS(FileAccess);
GDREGISTER_ABSTRACT_CLASS(DirAccess); GDREGISTER_ABSTRACT_CLASS(DirAccess);
GDREGISTER_CLASS(CoreBind::Thread); GDREGISTER_CLASS(CoreBind::Thread);
@ -347,7 +346,6 @@ void register_early_core_singletons() {
GDREGISTER_CLASS(CoreBind::OS); GDREGISTER_CLASS(CoreBind::OS);
Engine::get_singleton()->add_singleton(Engine::Singleton("OS", CoreBind::OS::get_singleton())); 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())); Engine::get_singleton()->add_singleton(Engine::Singleton("Time", Time::get_singleton()));
} }

View file

@ -410,8 +410,6 @@ void register_scene_types() {
OS::get_singleton()->yield(); // may take time to init OS::get_singleton()->yield(); // may take time to init
GDREGISTER_CLASS(Object);
GDREGISTER_CLASS(Node); GDREGISTER_CLASS(Node);
GDREGISTER_VIRTUAL_CLASS(MissingNode); GDREGISTER_VIRTUAL_CLASS(MissingNode);
GDREGISTER_ABSTRACT_CLASS(InstancePlaceholder); GDREGISTER_ABSTRACT_CLASS(InstancePlaceholder);