From 4b76485a4e44b56f5c985f8907b15f981c9a5419 Mon Sep 17 00:00:00 2001 From: David Snopek Date: Sun, 22 Oct 2023 18:35:59 -0500 Subject: [PATCH] Switch to using `ObjectID` in custom callables --- gdextension/gdextension_interface.h | 4 ++-- src/variant/callable_method_pointer.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gdextension/gdextension_interface.h b/gdextension/gdextension_interface.h index 240da6e0..d58f0226 100644 --- a/gdextension/gdextension_interface.h +++ b/gdextension/gdextension_interface.h @@ -392,7 +392,7 @@ typedef GDExtensionBool (*GDExtensionCallableCustomLessThan)(void *callable_user typedef void (*GDExtensionCallableCustomToString)(void *callable_userdata, GDExtensionBool *r_is_valid, GDExtensionStringPtr r_out); typedef struct { - /* Only `call_func` and `token` are strictly required, however, `object` should be passed if its not a static method. + /* Only `call_func` and `token` are strictly required, however, `object_id` should be passed if its not a static method. * * `token` should point to an address that uniquely identifies the GDExtension (for example, the * `GDExtensionClassLibraryPtr` passed to the entry symbol function. @@ -409,7 +409,7 @@ typedef struct { void *callable_userdata; void *token; - GDExtensionObjectPtr object; + GDObjectInstanceID object_id; GDExtensionCallableCustomCall call_func; GDExtensionCallableCustomIsValid is_valid_func; diff --git a/src/variant/callable_method_pointer.cpp b/src/variant/callable_method_pointer.cpp index 7934c730..ea43632b 100644 --- a/src/variant/callable_method_pointer.cpp +++ b/src/variant/callable_method_pointer.cpp @@ -52,7 +52,7 @@ Callable create_custom_callable(CallableCustomMethodPointerBase *p_callable_meth GDExtensionCallableCustomInfo info = {}; info.callable_userdata = p_callable_method_pointer; info.token = internal::token; - info.object = object != nullptr ? object->_owner : nullptr; + info.object_id = object ? object->get_instance_id() : 0; info.call_func = &call_custom_callable; info.free_func = &free_custom_callable;