# HG changeset patch # User Matthew Wild # Date 1260318879 0 # Node ID adb5fa9ea85adbc532433b9f879779f7a0cd6c79 # Parent 3e56f21e2e28270da9a22d4f13bfdcf1d673f89c base:addevent(): Accept integer as fd parameter diff -r 3e56f21e2e28 -r adb5fa9ea85a src/luaevent.c --- a/src/luaevent.c Mon Dec 07 22:48:43 2009 +0000 +++ b/src/luaevent.c Wed Dec 09 00:34:39 2009 +0000 @@ -45,14 +45,18 @@ int getSocketFd(lua_State* L, int idx) { int fd; - luaL_checktype(L, idx, LUA_TUSERDATA); - lua_getfield(L, idx, "getfd"); - if(lua_isnil(L, -1)) - return luaL_error(L, "Socket type missing 'getfd' method"); - lua_pushvalue(L, idx); - lua_call(L, 1, 1); - fd = lua_tointeger(L, -1); - lua_pop(L, 1); + if(lua_isnumber(L, idx)) { + fd = lua_tonumber(L, idx); + } else { + luaL_checktype(L, idx, LUA_TUSERDATA); + lua_getfield(L, idx, "getfd"); + if(lua_isnil(L, -1)) + return luaL_error(L, "Socket type missing 'getfd' method"); + lua_pushvalue(L, idx); + lua_call(L, 1, 1); + fd = lua_tointeger(L, -1); + lua_pop(L, 1); + } return fd; }