diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2021-09-16 15:15:02 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-16 15:15:02 +0200 |
commit | 104a6191fd32ca7bd28b28df6de091652c3d92cd (patch) | |
tree | 34827ec9273d6813e196d25654e6759651f87299 /core/extension/gdnative_interface.cpp | |
parent | 46e37545b86deeddc35085a874222aacfcb53294 (diff) | |
parent | 25d0e4bb5bab7c84355c7fd2554896d611c73d38 (diff) | |
download | redot-engine-104a6191fd32ca7bd28b28df6de091652c3d92cd.tar.gz |
Merge pull request #52739 from BastiaanOlij/gdextension_array_index
Diffstat (limited to 'core/extension/gdnative_interface.cpp')
-rw-r--r-- | core/extension/gdnative_interface.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/core/extension/gdnative_interface.cpp b/core/extension/gdnative_interface.cpp index 77229a784d..b41f74a4bc 100644 --- a/core/extension/gdnative_interface.cpp +++ b/core/extension/gdnative_interface.cpp @@ -771,6 +771,18 @@ static GDNativeTypePtr gdnative_packed_vector3_array_operator_index_const(const return (GDNativeTypePtr)&self->ptr()[p_index]; } +static GDNativeVariantPtr gdnative_array_operator_index(GDNativeTypePtr p_self, GDNativeInt p_index) { + Array *self = (Array *)p_self; + ERR_FAIL_INDEX_V(p_index, self->size(), nullptr); + return (GDNativeTypePtr)&self[p_index]; +} + +static GDNativeVariantPtr gdnative_array_operator_index_const(const GDNativeTypePtr p_self, GDNativeInt p_index) { + const Array *self = (const Array *)p_self; + ERR_FAIL_INDEX_V(p_index, self->size(), nullptr); + return (GDNativeTypePtr)&self[p_index]; +} + /* OBJECT API */ static void gdnative_object_method_bind_call(const GDNativeMethodBindPtr p_method_bind, GDNativeObjectPtr p_instance, const GDNativeVariantPtr *p_args, GDNativeInt p_arg_count, GDNativeVariantPtr r_return, GDNativeCallError *r_error) { @@ -979,6 +991,9 @@ void gdnative_setup_interface(GDNativeInterface *p_interface) { gdni.packed_vector3_array_operator_index = gdnative_packed_vector3_array_operator_index; gdni.packed_vector3_array_operator_index_const = gdnative_packed_vector3_array_operator_index_const; + gdni.array_operator_index = gdnative_array_operator_index; + gdni.array_operator_index_const = gdnative_array_operator_index_const; + /* OBJECT */ gdni.object_method_bind_call = gdnative_object_method_bind_call; |