diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2023-11-22 15:05:18 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-11-22 15:05:18 +0100 |
commit | 923ef2b46a04e8f54c0a60bae8a0a6269fa52ed2 (patch) | |
tree | 3a4b4e726c722f7206fc1c06688a15d64786af5f | |
parent | f824a670fdc53a8a62f28a4ffbad98031be8645c (diff) | |
parent | 8e06a1084dc0a89e6393d7152ae4a20af16cd6e5 (diff) | |
download | redot-engine-923ef2b46a04e8f54c0a60bae8a0a6269fa52ed2.tar.gz |
Merge pull request #85216 from bruvzg/ios_fix_extension_init_realloc
[iOS] Fix GDExtension init callback array reallocation.
-rw-r--r-- | platform/ios/os_ios.mm | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/platform/ios/os_ios.mm b/platform/ios/os_ios.mm index 68e6d4c934..16ac3acbec 100644 --- a/platform/ios/os_ios.mm +++ b/platform/ios/os_ios.mm @@ -72,16 +72,15 @@ HashMap<String, void *> OS_IOS::dynamic_symbol_lookup_table; void add_ios_init_callback(init_callback cb) { if (ios_init_callbacks_count == ios_init_callbacks_capacity) { - void *new_ptr = realloc(ios_init_callbacks, sizeof(cb) * 32); + void *new_ptr = realloc(ios_init_callbacks, sizeof(cb) * (ios_init_callbacks_capacity + 32)); if (new_ptr) { ios_init_callbacks = (init_callback *)(new_ptr); ios_init_callbacks_capacity += 32; + } else { + ERR_FAIL_MSG("Unable to allocate memory for extension callbacks."); } } - if (ios_init_callbacks_capacity > ios_init_callbacks_count) { - ios_init_callbacks[ios_init_callbacks_count] = cb; - ++ios_init_callbacks_count; - } + ios_init_callbacks[ios_init_callbacks_count++] = cb; } void register_dynamic_symbol(char *name, void *address) { |