mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-15 07:54:33 +00:00
MINOR: lua: ensure the memory allocator is used all the time
luaL_setstate() uses malloc() to initialize the first objects, and only after this we replace the allocator. This creates trouble when replacing the standard memory allocators during debugging sessions since the new allocator is used to realloc() an area previously allocated using the default malloc(). Lua provides lua_newstate() in addition to luaL_newstate(), which takes an allocator for the initial malloc. This is exactly what we need, and this patch does this and fixes the problem. The now useless call to lua_setallocf() could be removed. This has no impact outside of debugging sessions and there's no need to backport this.
This commit is contained in:
parent
04bf98149b
commit
42ef75fb84
@ -7182,7 +7182,7 @@ void hlua_init(void)
|
||||
gL.Mref = LUA_REFNIL;
|
||||
gL.flags = 0;
|
||||
LIST_INIT(&gL.com);
|
||||
gL.T = luaL_newstate();
|
||||
gL.T = lua_newstate(hlua_alloc, &hlua_global_allocator);
|
||||
hlua_sethlua(&gL);
|
||||
gL.Tref = LUA_REFNIL;
|
||||
gL.task = NULL;
|
||||
@ -7192,9 +7192,6 @@ void hlua_init(void)
|
||||
* process of HAProxy, this abort() is tolerated.
|
||||
*/
|
||||
|
||||
/* change the memory allocators to track memory usage */
|
||||
lua_setallocf(gL.T, hlua_alloc, &hlua_global_allocator);
|
||||
|
||||
/* Initialise lua. */
|
||||
luaL_openlibs(gL.T);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user