Skip to content

Commit 0f93a61

Browse files
committed
Fix crash in ClassDB::add_virtual_method() if arguments metadata is the wrong size
1 parent d477589 commit 0f93a61

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

src/core/class_db.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,9 @@ void ClassDB::add_virtual_method(const StringName &p_class, const MethodInfo &p_
355355
mi.arguments_metadata = (GDExtensionClassMethodArgumentMetadata *)memalloc(sizeof(GDExtensionClassMethodArgumentMetadata) * mi.argument_count);
356356
for (uint32_t i = 0; i < mi.argument_count; i++) {
357357
mi.arguments[i] = p_method.arguments[i]._to_gdextension();
358-
mi.arguments_metadata[i] = p_method.arguments_metadata[i];
358+
if (i < p_method.arguments_metadata.size()) {
359+
mi.arguments_metadata[i] = p_method.arguments_metadata[i];
360+
}
359361
}
360362
} else {
361363
mi.arguments = nullptr;

0 commit comments

Comments
 (0)