diff options
author | George L. Albany <Megacake1234@gmail.com> | 2024-11-13 03:25:37 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-13 03:25:37 +0000 |
commit | a089d372e877febb71e4b5365e567275c301e750 (patch) | |
tree | 98d7630d8587d265c655a53490c58a7831c3fff8 /src/core | |
parent | 8ca6bc2cfb90178d10c2a4a7c502242213bfa645 (diff) | |
parent | 2a18d3da32c47f8ac1eea7c05fe3bc9ba2affc82 (diff) | |
download | redot-cpp-master.tar.gz |
Merge commit godotengine/godot-cpp@c20a84e
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; |