Skip to content

Commit f444616

Browse files
authored
Merge pull request #1404 from AThousandShips/virt_fix
Fix crash on virtual method calls
2 parents e55b792 + fc986c2 commit f444616

File tree

1 file changed

+2
-5
lines changed

1 file changed

+2
-5
lines changed

binding_generator.py

+2-5
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,8 @@ def generate_virtual_version(argcount, const=False, returns=False):
7878
if (::godot::internal::gdextension_interface_object_has_script_method(_owner, &_gdvirtual_##m_name##_sn)) { \\
7979
GDExtensionCallError ce;\\
8080
$CALLSIARGS\\
81-
$CALLSIBEGIN::godot::internal::gdextension_interface_object_call_script_method(_owner, &_gdvirtual_##m_name##_sn, $CALLSIARGPASS, $CALLSIRETPASS, &ce);\\
81+
Variant ret;\\
82+
::godot::internal::gdextension_interface_object_call_script_method(_owner, &_gdvirtual_##m_name##_sn, $CALLSIARGPASS, &ret, &ce);\\
8283
if (ce.error == GDEXTENSION_CALL_OK) {\\
8384
$CALLSIRET\\
8485
return true;\\
@@ -160,12 +161,8 @@ def generate_virtual_version(argcount, const=False, returns=False):
160161
if argcount > 0:
161162
callargtext += ", "
162163
callargtext += "m_ret &r_ret"
163-
s = s.replace("$CALLSIBEGIN", "Variant ret;\\\n\t\t\t")
164-
s = s.replace("$CALLSIRETPASS", "&ret")
165164
s = s.replace("$CALLSIRET", "r_ret = VariantCaster<m_ret>::cast(ret);")
166165
else:
167-
s = s.replace("$CALLSIBEGIN", "")
168-
s = s.replace("$CALLSIRETPASS", "nullptr")
169166
s = s.replace("\t\t\t\t$CALLSIRET\\\n", "")
170167

171168
s = s.replace(" $ARG", argtext)

0 commit comments

Comments
 (0)