Skip to content

Commit 11d3768

Browse files
committed
Merge pull request #91153 from dsnopek/fix-gdextension-static-ptrcall
Fix ptrcalls to static GDExtension methods
2 parents e399f86 + 45463f7 commit 11d3768

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

core/extension/gdextension.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ class GDExtensionMethodBind : public MethodBind {
275275
ret_opaque = r_ret->get_type() == Variant::NIL ? r_ret : VariantInternal::get_opaque_pointer(r_ret);
276276
}
277277

278-
ptrcall(p_object, argptrs, ret_opaque);
278+
ptrcall_func(method_userdata, extension_instance, reinterpret_cast<GDExtensionConstTypePtr *>(argptrs), (GDExtensionTypePtr)ret_opaque);
279279

280280
if (r_ret && r_ret->get_type() == Variant::OBJECT) {
281281
VariantInternal::update_object_id(r_ret);
@@ -289,7 +289,7 @@ class GDExtensionMethodBind : public MethodBind {
289289
ERR_FAIL_COND_MSG(p_object && p_object->is_extension_placeholder(), vformat("Cannot call GDExtension method bind '%s' on placeholder instance.", name));
290290
#endif
291291
ERR_FAIL_COND_MSG(vararg, "Vararg methods don't have ptrcall support. This is most likely an engine bug.");
292-
GDExtensionClassInstancePtr extension_instance = p_object->_get_extension_instance();
292+
GDExtensionClassInstancePtr extension_instance = is_static() ? nullptr : p_object->_get_extension_instance();
293293
ptrcall_func(method_userdata, extension_instance, reinterpret_cast<GDExtensionConstTypePtr *>(p_args), (GDExtensionTypePtr)r_ret);
294294
}
295295

0 commit comments

Comments
 (0)