diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2022-10-05 10:37:17 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2022-10-05 10:37:17 +0200 |
commit | 1507253bd5a8b33df1e72b3848b978bcf4a01586 (patch) | |
tree | 688ed69c397d6fb31fceb0b14db8d46df6aee790 | |
parent | 50a534bf55f0ab0e79d49f0505ba5f4acce1cbad (diff) | |
parent | cd2232eddf82d609e3d2de39011c4a6a6fdafe57 (diff) | |
download | redot-cpp-1507253bd5a8b33df1e72b3848b978bcf4a01586.tar.gz |
Merge pull request #864 from Zylann/fix_passing_null
Fix passing null to functions taking Object parameters
-rw-r--r-- | binding_generator.py | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/binding_generator.py b/binding_generator.py index 5ce6db9..95ca88d 100644 --- a/binding_generator.py +++ b/binding_generator.py @@ -1664,7 +1664,9 @@ def get_encoded_arg(arg_name, type_name, type_meta): result.append(f"\tPtrToArg<{correct_type(type_name)}>::encode({name}, &{name}_encoded);") name = f"&{name}_encoded" elif is_engine_class(type_name): - name = f"{name}->_owner" + # `{name}` is a C++ wrapper, it contains a field which is the object's pointer Godot expects. + # We have to check `nullptr` because when the caller sends `nullptr`, the wrapper itself will be null. + name = f"({name} != nullptr ? {name}->_owner : nullptr)" else: name = f"&{name}" |