Skip to content

Commit 40d2e45

Browse files
committed
Correct GDNativeExtensionScriptInstanceToString
1 parent 9efc17f commit 40d2e45

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

godot-headers/godot/gdnative_interface.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ typedef GDNativeBool (*GDNativeExtensionScriptInstanceHasMethod)(GDNativeExtensi
324324

325325
typedef void (*GDNativeExtensionScriptInstanceCall)(GDNativeExtensionScriptInstanceDataPtr p_self, const GDNativeStringNamePtr p_method, const GDNativeVariantPtr *p_args, const GDNativeInt p_argument_count, GDNativeVariantPtr r_return, GDNativeCallError *r_error);
326326
typedef void (*GDNativeExtensionScriptInstanceNotification)(GDNativeExtensionScriptInstanceDataPtr p_instance, int32_t p_what);
327-
typedef const char *(*GDNativeExtensionScriptInstanceToString)(GDNativeExtensionScriptInstanceDataPtr p_instance, GDNativeBool *r_is_valid);
327+
typedef void (*GDNativeExtensionScriptInstanceToString)(GDNativeExtensionScriptInstanceDataPtr p_instance, GDNativeBool *r_is_valid, GDNativeStringPtr r_out);
328328

329329
typedef void (*GDNativeExtensionScriptInstanceRefCountIncremented)(GDNativeExtensionScriptInstanceDataPtr p_instance);
330330
typedef GDNativeBool (*GDNativeExtensionScriptInstanceRefCountDecremented)(GDNativeExtensionScriptInstanceDataPtr p_instance);

include/godot_cpp/classes/wrapped.hpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ class Wrapped {
6767
static void free_property_list_bind(GDExtensionClassInstancePtr p_instance, const GDNativePropertyInfo *p_list) {}
6868
static GDNativeBool property_can_revert_bind(GDExtensionClassInstancePtr p_instance, const GDNativeStringNamePtr p_name) { return false; }
6969
static GDNativeBool property_get_revert_bind(GDExtensionClassInstancePtr p_instance, const GDNativeStringNamePtr p_name, GDNativeVariantPtr r_ret) { return false; }
70-
static void to_string_bind(GDExtensionClassInstancePtr p_instance, GDNativeStringPtr r_out) {}
70+
static void to_string_bind(GDExtensionClassInstancePtr p_instance, GDNativeBool *r_is_valid, GDNativeStringPtr r_out) {}
7171

7272
GDNativePropertyInfo *plist = nullptr;
7373
uint32_t plist_size = 0;
@@ -264,14 +264,15 @@ public:
264264
return false; \
265265
} \
266266
\
267-
static void to_string_bind(GDExtensionClassInstancePtr p_instance, GDNativeStringPtr r_out) { \
267+
static void to_string_bind(GDExtensionClassInstancePtr p_instance, GDNativeBool *r_is_valid, GDNativeStringPtr r_out) { \
268268
if (p_instance && m_class::_get_to_string()) { \
269269
if (m_class::_get_to_string() != m_inherits::_get_to_string()) { \
270270
m_class *cls = reinterpret_cast<m_class *>(p_instance); \
271271
*reinterpret_cast<::godot::String *>(r_out) = cls->_to_string(); \
272+
*r_is_valid = true; \
272273
return; \
273274
} \
274-
m_inherits::to_string_bind(p_instance, r_out); \
275+
m_inherits::to_string_bind(p_instance, r_is_valid, r_out); \
275276
} \
276277
} \
277278
\

0 commit comments

Comments
 (0)