Closed hakuhan closed 2 weeks ago
Thanks!
It'd probably be good to add a check like you show above, but you shouldn't be directly calling ClassDB::add_virtual_method()
anyway.
Instead, use the GDVIRTUAL*()
and GDVIRTUAL_BIND()
macros. They'll take care of all the necessary setup. You can see an example of them in the test code in test/src/example.h
and test/src/example.cpp
.
Godot version
4.3
godot-cpp version
4.3
System information
Windows 11
Issue description
When I regist a method with a parameter to be virtual for godot. Editor crashed when launching. I think it is caused by empty arguments_metadata in created MethodInfo. I tried to add vector size checking code in class_db.cpp. And crash dosen't appear.
Steps to reproduce
ClassDB::add_virtual_method("TestClass", MethodInfo(Variant::Type::BOOL, "func_with_parameter", PropertyInfo(Variant::STRING_NAME, "param_name", PROPERTY_HINT_NONE, "StringName", PROPERTY_USAGE_NONE)), {"param_name"});
Minimal reproduction project
Please try with steps thanks!