diff options
| author | Spartan322 <Megacake1234@gmail.com> | 2024-11-12 15:34:50 -0500 |
|---|---|---|
| committer | Spartan322 <Megacake1234@gmail.com> | 2024-11-12 15:34:50 -0500 |
| commit | 2a18d3da32c47f8ac1eea7c05fe3bc9ba2affc82 (patch) | |
| tree | 98d7630d8587d265c655a53490c58a7831c3fff8 /src/core | |
| parent | 8ca6bc2cfb90178d10c2a4a7c502242213bfa645 (diff) | |
| parent | c20a84e483ec61c77e5903cb4a139f6875e28a3b (diff) | |
| download | redot-cpp-2a18d3da32c47f8ac1eea7c05fe3bc9ba2affc82.tar.gz | |
Merge commit godotengine/godot-cpp@c20a84e483ec61c77e5903cb4a139f6875e28a3b
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/class_db.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/core/class_db.cpp b/src/core/class_db.cpp index fd7d246..7a46f89 100644 --- a/src/core/class_db.cpp +++ b/src/core/class_db.cpp @@ -355,9 +355,14 @@ void ClassDB::add_virtual_method(const StringName &p_class, const MethodInfo &p_ if (mi.argument_count > 0) { mi.arguments = (GDExtensionPropertyInfo *)memalloc(sizeof(GDExtensionPropertyInfo) * mi.argument_count); mi.arguments_metadata = (GDExtensionClassMethodArgumentMetadata *)memalloc(sizeof(GDExtensionClassMethodArgumentMetadata) * mi.argument_count); + if (mi.argument_count != p_method.arguments_metadata.size()) { + WARN_PRINT("Mismatch argument metadata count for virtual method: " + String(p_class) + "::" + p_method.name); + } for (uint32_t i = 0; i < mi.argument_count; i++) { mi.arguments[i] = p_method.arguments[i]._to_gdextension(); - mi.arguments_metadata[i] = p_method.arguments_metadata[i]; + if (i < p_method.arguments_metadata.size()) { + mi.arguments_metadata[i] = p_method.arguments_metadata[i]; + } } } else { mi.arguments = nullptr; |
