Allow running C functions with coroutine.create(), too.

This commit is contained in:
Mike Pall 2010-11-17 20:07:55 +01:00
parent 751ff5b392
commit 3754a8fe7a
3 changed files with 3 additions and 4 deletions

View File

@ -479,8 +479,8 @@ LJLIB_CF(coroutine_running)
LJLIB_CF(coroutine_create)
{
lua_State *L1 = lua_newthread(L);
if (!(L->top > L->base && tvisfunc(L->base) && isluafunc(funcV(L->base))))
lj_err_arg(L, 1, LJ_ERR_NOLFUNC);
if (!(L->base < L->top && tvisfunc(L->base)))
lj_err_argt(L, 1, LUA_TFUNCTION);
setfuncV(L, L1->top++, funcV(L->base));
return 1;
}

View File

@ -52,7 +52,7 @@ static int setjitmode(lua_State *L, int mode)
if ((mode & LUAJIT_MODE_MASK) == LUAJIT_MODE_ENGINE)
lj_err_caller(L, LJ_ERR_NOJIT);
err:
lj_err_arg(L, 1, LJ_ERR_NOLFUNC);
lj_err_argt(L, 1, LUA_TFUNCTION);
}
return 0;
}

View File

@ -44,7 +44,6 @@ ERRDEF(BADVAL, "invalid value")
ERRDEF(NOVAL, "value expected")
ERRDEF(NOCORO, "coroutine expected")
ERRDEF(NOTABN, "nil or table expected")
ERRDEF(NOLFUNC, "Lua function expected")
ERRDEF(NOFUNCL, "function or level expected")
ERRDEF(NOSFT, "string/function/table expected")
ERRDEF(NOPROXY, "boolean or proxy expected")