Fix bug of unref resources in Lua binding; fd method delete -> cancel.

Signed-off-by: Xiongfei(Alex) Guo <xfguo@credosemi.com>
This commit is contained in:
Xiongfei Guo 2014-06-20 10:31:20 +00:00 committed by John Crispin
parent 02ca593347
commit 3c92274bee

View file

@ -80,7 +80,7 @@ static int ul_timer_free(lua_State *L)
uloop_timeout_cancel(&tout->t); uloop_timeout_cancel(&tout->t);
lua_getglobal(state, "__uloop_cb"); lua_getglobal(state, "__uloop_cb");
luaL_unref(L, -1, tout->r); luaL_unref(state, -1, tout->r);
return 1; return 1;
} }
@ -177,10 +177,14 @@ static int ul_ufd_delete(lua_State *L)
struct lua_uloop_fd *ufd = lua_touserdata(L, 1); struct lua_uloop_fd *ufd = lua_touserdata(L, 1);
uloop_fd_delete(&ufd->fd); uloop_fd_delete(&ufd->fd);
lua_getglobal(state, "__uloop_cb"); lua_getglobal(state, "__uloop_cb");
luaL_unref(L, -1, ufd->r); luaL_unref(state, -1, ufd->r);
lua_remove(state, -1);
lua_getglobal(state, "__uloop_fds"); lua_getglobal(state, "__uloop_fds");
luaL_unref(L, -1, ufd->fd_r); luaL_unref(state, -1, ufd->fd_r);
lua_remove(state, -1);
return 1; return 1;
} }