diff options
author | Raul Santos <raulsntos@gmail.com> | 2023-01-17 04:32:05 +0100 |
---|---|---|
committer | Raul Santos <raulsntos@gmail.com> | 2023-01-17 04:32:05 +0100 |
commit | ab5e532f1a00e526b2a6ebdc67fd53f866d0dfa1 (patch) | |
tree | 3b8940924b93a369cce0b9dfefde394a179c13e3 /modules/mono/editor | |
parent | 04a39ecd846f40ac1049b699291f28b2f08e2185 (diff) |
C#: Skip methods with pointer parameters
Diffstat (limited to 'modules/mono/editor')
-rw-r--r-- | modules/mono/editor/bindings_generator.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/modules/mono/editor/bindings_generator.cpp b/modules/mono/editor/bindings_generator.cpp index c0d88553ad..96a4635fe3 100644 --- a/modules/mono/editor/bindings_generator.cpp +++ b/modules/mono/editor/bindings_generator.cpp @@ -2795,6 +2795,18 @@ bool BindingsGenerator::_arg_default_value_is_assignable_to_type(const Variant & return false; } +bool method_has_ptr_parameter(MethodInfo p_method_info) { + if (p_method_info.return_val.type == Variant::INT && p_method_info.return_val.hint == PROPERTY_HINT_INT_IS_POINTER) { + return true; + } + for (PropertyInfo arg : p_method_info.arguments) { + if (arg.type == Variant::INT && arg.hint == PROPERTY_HINT_INT_IS_POINTER) { + return true; + } + } + return false; +} + bool BindingsGenerator::_populate_object_type_interfaces() { obj_types.clear(); @@ -2938,6 +2950,11 @@ bool BindingsGenerator::_populate_object_type_interfaces() { continue; } + if (method_has_ptr_parameter(method_info)) { + // Pointers are not supported. + continue; + } + MethodInterface imethod; imethod.name = method_info.name; imethod.cname = cname; |