Merge pull request #69971 from neikeq/csharp-vararg-ret-premature-free
C#: Fix premature free of returned Variant in vararg methods
This commit is contained in:
commit
b8e1d6585c
1 changed files with 4 additions and 1 deletions
|
@ -2489,9 +2489,12 @@ Error BindingsGenerator::_generate_cs_native_calls(const InternalCall &p_icall,
|
|||
|
||||
if (!ret_void) {
|
||||
if (return_type->cname != name_cache.type_Variant) {
|
||||
// Usually the return value takes ownership, but in this case the variant is only used
|
||||
// for conversion to another return type. As such, the local variable takes ownership.
|
||||
r_output << "using godot_variant " << C_LOCAL_VARARG_RET " = ";
|
||||
} else {
|
||||
r_output << "using godot_variant " << C_LOCAL_RET " = ";
|
||||
// Variant's [c_out] takes ownership of the variant value
|
||||
r_output << "godot_variant " << C_LOCAL_RET " = ";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue