Merge pull request #864 from Zylann/fix_passing_null

Fix passing null to functions taking Object parameters
pull/806/merge
Rémi Verschelde 2022-10-05 10:37:17 +02:00
commit 1507253bd5
1 changed files with 3 additions and 1 deletions

View File

@ -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);") result.append(f"\tPtrToArg<{correct_type(type_name)}>::encode({name}, &{name}_encoded);")
name = f"&{name}_encoded" name = f"&{name}_encoded"
elif is_engine_class(type_name): 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: else:
name = f"&{name}" name = f"&{name}"