Don't throw exception while module_malloc failed (#860)
Don't throw exception when module_malloc memory failed: - Exception will terminate the wasm app, it's not necessary since app can check the result of dynamic allocation and do some cleanup or fallback operation on failure instead of 'crash' directly. - In acquire_wait_info, call hasn_map_find only when the address isn't NULL, or there are many senseless error logs
This commit is contained in:
@ -1774,7 +1774,7 @@ aot_module_malloc(AOTModuleInstance *module_inst, uint32 size,
|
||||
aot_set_exception(module_inst, "app heap corrupted");
|
||||
}
|
||||
else {
|
||||
aot_set_exception(module_inst, "out of memory");
|
||||
LOG_WARNING("warning: allocate %u bytes memory failed", size);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -224,7 +224,8 @@ acquire_wait_info(void *address, bool create)
|
||||
AtomicWaitInfo *wait_info = NULL;
|
||||
bh_list_status ret;
|
||||
|
||||
wait_info = (AtomicWaitInfo *)bh_hash_map_find(wait_map, address);
|
||||
if (address)
|
||||
wait_info = (AtomicWaitInfo *)bh_hash_map_find(wait_map, address);
|
||||
|
||||
if (!create)
|
||||
return wait_info;
|
||||
|
||||
@ -1830,7 +1830,7 @@ wasm_module_malloc(WASMModuleInstance *module_inst, uint32 size,
|
||||
wasm_set_exception(module_inst, "app heap corrupted");
|
||||
}
|
||||
else {
|
||||
wasm_set_exception(module_inst, "out of memory");
|
||||
LOG_WARNING("warning: allocate %u bytes memory failed", size);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user