diff options
Diffstat (limited to 'platform/ios/os_ios.mm')
-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) { |