summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2023-05-05 00:27:12 +0800
committerruki <[email protected]>2023-05-05 00:27:12 +0800
commit67bb0489eb61223f33d3e80fb525bec19395de75 (patch)
treeecbf8abba3c340288097b34fe3a832c22ea94c77
parent23b27938f797d55ba2aebe34a7e7dbd09b685b69 (diff)
improve lua alloc
-rw-r--r--core/src/xmake/engine.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/core/src/xmake/engine.c b/core/src/xmake/engine.c
index 70e423b1b..d2f75fec1 100644
--- a/core/src/xmake/engine.c
+++ b/core/src/xmake/engine.c
@@ -1042,10 +1042,12 @@ static tb_void_t xm_engine_init_signal(xm_engine_t* engine)
#if XM_HOOK_LUA_MEMALLOC
static tb_pointer_t xm_engine_lua_realloc(tb_pointer_t udata, tb_pointer_t data, size_t osize, size_t nsize)
{
+ tb_pointer_t ptr = tb_null;
if (nsize == 0 && data) tb_free(data);
- else if (!data) return tb_malloc((tb_size_t)nsize);
- else return tb_ralloc(data, (tb_size_t)nsize);
- return tb_null;
+ else if (!data) ptr = tb_malloc((tb_size_t)nsize);
+ else if (nsize > osize) ptr = tb_ralloc(data, (tb_size_t)nsize);
+ else ptr = data;
+ return ptr;
}
#endif