Skip to content

Commit 01cf290

Browse files
committed
feat: add context to enlarge memory error callback
1 parent f128150 commit 01cf290

File tree

3 files changed

+11
-6
lines changed

3 files changed

+11
-6
lines changed

core/iwasm/common/wasm_memory.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ static Memory_Mode memory_mode = MEMORY_MODE_UNKNOWN;
2626
static mem_allocator_t pool_allocator = NULL;
2727

2828
static enlarge_memory_error_callback_t enlarge_memory_error_cb;
29+
static void *enlarge_memory_error_user_data;
2930

3031
#if WASM_MEM_ALLOC_WITH_USER_DATA != 0
3132
static void *allocator_user_data = NULL;
@@ -716,7 +717,8 @@ wasm_enlarge_memory_internal(WASMModuleInstance *module, uint32 inc_page_count)
716717

717718
enlarge_memory_error_cb(inc_page_count, total_size_old, 0,
718719
failure_reason,
719-
(WASMModuleInstanceCommon *)module, exec_env);
720+
(WASMModuleInstanceCommon *)module, exec_env,
721+
enlarge_memory_error_user_data);
720722
}
721723

722724
return ret;
@@ -822,7 +824,8 @@ wasm_enlarge_memory_internal(WASMModuleInstance *module, uint32 inc_page_count)
822824

823825
enlarge_memory_error_cb(inc_page_count, total_size_old, 0,
824826
failure_reason,
825-
(WASMModuleInstanceCommon *)module, exec_env);
827+
(WASMModuleInstanceCommon *)module, exec_env,
828+
enlarge_memory_error_user_data);
826829
}
827830

828831
return ret;
@@ -831,9 +834,10 @@ wasm_enlarge_memory_internal(WASMModuleInstance *module, uint32 inc_page_count)
831834

832835
void
833836
wasm_runtime_set_enlarge_mem_error_callback(
834-
const enlarge_memory_error_callback_t callback)
837+
const enlarge_memory_error_callback_t callback, void *user_data)
835838
{
836839
enlarge_memory_error_cb = callback;
840+
enlarge_memory_error_user_data = user_data;
837841
}
838842

839843
bool

core/iwasm/common/wasm_memory.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ wasm_runtime_memory_pool_size();
2626

2727
void
2828
wasm_runtime_set_enlarge_mem_error_callback(
29-
const enlarge_memory_error_callback_t callback);
29+
const enlarge_memory_error_callback_t callback, void *user_data);
3030

3131
#ifdef __cplusplus
3232
}

core/iwasm/include/wasm_export.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1447,14 +1447,15 @@ typedef enum {
14471447
typedef void (*enlarge_memory_error_callback_t)(
14481448
uint32_t inc_page_count, uint64_t current_memory_size,
14491449
uint32_t memory_index, enlarge_memory_error_reason_t failure_reason,
1450-
wasm_module_inst_t instance, wasm_exec_env_t exec_env);
1450+
wasm_module_inst_t instance, wasm_exec_env_t exec_env,
1451+
void* user_data);
14511452

14521453
/**
14531454
* Setup callback invoked when memory.grow fails
14541455
*/
14551456
WASM_RUNTIME_API_EXTERN void
14561457
wasm_runtime_set_enlarge_mem_error_callback(
1457-
const enlarge_memory_error_callback_t callback);
1458+
const enlarge_memory_error_callback_t callback, void *user_data);
14581459

14591460
/*
14601461
* module instance context APIs

0 commit comments

Comments
 (0)