mirror of https://github.com/lua/lua
"light C function" is a better name than "C-function pointer"
This commit is contained in:
parent
575befc394
commit
53f9499f7f
10
lapi.c
10
lapi.c
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
** $Id: lapi.c,v 2.120 2010/04/05 14:21:38 roberto Exp roberto $
|
** $Id: lapi.c,v 2.121 2010/04/13 20:48:12 roberto Exp roberto $
|
||||||
** Lua API
|
** Lua API
|
||||||
** See Copyright Notice in lua.h
|
** See Copyright Notice in lua.h
|
||||||
*/
|
*/
|
||||||
|
@ -56,7 +56,7 @@ static TValue *index2addr (lua_State *L, int idx) {
|
||||||
else { /* upvalues */
|
else { /* upvalues */
|
||||||
idx = LUA_REGISTRYINDEX - idx;
|
idx = LUA_REGISTRYINDEX - idx;
|
||||||
api_check(L, idx <= UCHAR_MAX + 1, "upvalue index too large");
|
api_check(L, idx <= UCHAR_MAX + 1, "upvalue index too large");
|
||||||
if (ttiscfp(ci->func)) /* C-function pointer? */
|
if (ttislcf(ci->func)) /* light C function? */
|
||||||
return cast(TValue *, luaO_nilobject); /* it has no upvalues */
|
return cast(TValue *, luaO_nilobject); /* it has no upvalues */
|
||||||
else {
|
else {
|
||||||
Closure *func = clvalue(ci->func);
|
Closure *func = clvalue(ci->func);
|
||||||
|
@ -241,7 +241,7 @@ LUA_API const char *lua_typename (lua_State *L, int t) {
|
||||||
|
|
||||||
LUA_API int lua_iscfunction (lua_State *L, int idx) {
|
LUA_API int lua_iscfunction (lua_State *L, int idx) {
|
||||||
StkId o = index2addr(L, idx);
|
StkId o = index2addr(L, idx);
|
||||||
return (ttiscfp(o) || (ttisclosure(o) && clvalue(o)->c.isC));
|
return (ttislcf(o) || (ttisclosure(o) && clvalue(o)->c.isC));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -367,7 +367,7 @@ LUA_API size_t lua_rawlen (lua_State *L, int idx) {
|
||||||
|
|
||||||
LUA_API lua_CFunction lua_tocfunction (lua_State *L, int idx) {
|
LUA_API lua_CFunction lua_tocfunction (lua_State *L, int idx) {
|
||||||
StkId o = index2addr(L, idx);
|
StkId o = index2addr(L, idx);
|
||||||
if (ttiscfp(o)) return fvalue(o);
|
if (ttislcf(o)) return fvalue(o);
|
||||||
else if (ttisclosure(o) && clvalue(o)->c.isC)
|
else if (ttisclosure(o) && clvalue(o)->c.isC)
|
||||||
return clvalue(o)->c.f;
|
return clvalue(o)->c.f;
|
||||||
else return NULL; /* not a C function */
|
else return NULL; /* not a C function */
|
||||||
|
@ -395,7 +395,7 @@ LUA_API const void *lua_topointer (lua_State *L, int idx) {
|
||||||
switch (ttype(o)) {
|
switch (ttype(o)) {
|
||||||
case LUA_TTABLE: return hvalue(o);
|
case LUA_TTABLE: return hvalue(o);
|
||||||
case LUA_TFUNCTION: return clvalue(o);
|
case LUA_TFUNCTION: return clvalue(o);
|
||||||
case LUA_TCFP: return cast(void *, cast(size_t, fvalue(o)));
|
case LUA_TLCF: return cast(void *, cast(size_t, fvalue(o)));
|
||||||
case LUA_TTHREAD: return thvalue(o);
|
case LUA_TTHREAD: return thvalue(o);
|
||||||
case LUA_TUSERDATA:
|
case LUA_TUSERDATA:
|
||||||
case LUA_TLIGHTUSERDATA:
|
case LUA_TLIGHTUSERDATA:
|
||||||
|
|
4
ldo.c
4
ldo.c
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
** $Id: ldo.c,v 2.84 2010/04/13 20:48:12 roberto Exp roberto $
|
** $Id: ldo.c,v 2.85 2010/04/18 12:41:35 roberto Exp roberto $
|
||||||
** Stack and Call structure of Lua
|
** Stack and Call structure of Lua
|
||||||
** See Copyright Notice in lua.h
|
** See Copyright Notice in lua.h
|
||||||
*/
|
*/
|
||||||
|
@ -300,7 +300,7 @@ int luaD_precall (lua_State *L, StkId func, int nresults) {
|
||||||
func = tryfuncTM(L, func); /* check the `function' tag method */
|
func = tryfuncTM(L, func); /* check the `function' tag method */
|
||||||
funcr = savestack(L, func);
|
funcr = savestack(L, func);
|
||||||
L->ci->nresults = nresults;
|
L->ci->nresults = nresults;
|
||||||
if (ttiscfp(func)) { /* C function pointer? */
|
if (ttislcf(func)) { /* light C function? */
|
||||||
f = fvalue(func); /* get it */
|
f = fvalue(func); /* get it */
|
||||||
goto isCfunc; /* go to call it */
|
goto isCfunc; /* go to call it */
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
** $Id: lobject.c,v 2.38 2010/04/13 20:48:12 roberto Exp roberto $
|
** $Id: lobject.c,v 2.39 2010/04/15 19:44:43 roberto Exp roberto $
|
||||||
** Some generic functions over Lua objects
|
** Some generic functions over Lua objects
|
||||||
** See Copyright Notice in lua.h
|
** See Copyright Notice in lua.h
|
||||||
*/
|
*/
|
||||||
|
@ -83,7 +83,7 @@ int luaO_rawequalObj (const TValue *t1, const TValue *t2) {
|
||||||
return pvalue(t1) == pvalue(t2);
|
return pvalue(t1) == pvalue(t2);
|
||||||
case LUA_TSTRING:
|
case LUA_TSTRING:
|
||||||
return rawtsvalue(t1) == rawtsvalue(t2);
|
return rawtsvalue(t1) == rawtsvalue(t2);
|
||||||
case LUA_TCFP:
|
case LUA_TLCF:
|
||||||
return fvalue(t1) == fvalue(t2);
|
return fvalue(t1) == fvalue(t2);
|
||||||
default:
|
default:
|
||||||
lua_assert(iscollectable(t1));
|
lua_assert(iscollectable(t1));
|
||||||
|
|
12
lobject.h
12
lobject.h
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
** $Id: lobject.h,v 2.37 2010/04/12 16:07:06 roberto Exp roberto $
|
** $Id: lobject.h,v 2.38 2010/04/14 15:13:48 roberto Exp roberto $
|
||||||
** Type definitions for Lua objects
|
** Type definitions for Lua objects
|
||||||
** See Copyright Notice in lua.h
|
** See Copyright Notice in lua.h
|
||||||
*/
|
*/
|
||||||
|
@ -25,10 +25,10 @@
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Variant tag for C-function pointers (negative to be considered
|
** Variant tag for light C functions (negative to be considered
|
||||||
** non collectable by 'iscollectable')
|
** non collectable by 'iscollectable')
|
||||||
*/
|
*/
|
||||||
#define LUA_TCFP (~0x0F | LUA_TFUNCTION)
|
#define LUA_TLCF (~0x0F | LUA_TFUNCTION)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Union of all collectable objects
|
** Union of all collectable objects
|
||||||
|
@ -99,7 +99,7 @@ typedef struct lua_TValue {
|
||||||
#define ttistable(o) (ttype(o) == LUA_TTABLE)
|
#define ttistable(o) (ttype(o) == LUA_TTABLE)
|
||||||
#define ttisfunction(o) (ttypenv(o) == LUA_TFUNCTION)
|
#define ttisfunction(o) (ttypenv(o) == LUA_TFUNCTION)
|
||||||
#define ttisclosure(o) (ttype(o) == LUA_TFUNCTION)
|
#define ttisclosure(o) (ttype(o) == LUA_TFUNCTION)
|
||||||
#define ttiscfp(o) (ttype(o) == LUA_TCFP)
|
#define ttislcf(o) (ttype(o) == LUA_TLCF)
|
||||||
#define ttisboolean(o) (ttype(o) == LUA_TBOOLEAN)
|
#define ttisboolean(o) (ttype(o) == LUA_TBOOLEAN)
|
||||||
#define ttisuserdata(o) (ttype(o) == LUA_TUSERDATA)
|
#define ttisuserdata(o) (ttype(o) == LUA_TUSERDATA)
|
||||||
#define ttisthread(o) (ttype(o) == LUA_TTHREAD)
|
#define ttisthread(o) (ttype(o) == LUA_TTHREAD)
|
||||||
|
@ -115,7 +115,7 @@ typedef struct lua_TValue {
|
||||||
#define rawuvalue(o) check_exp(ttisuserdata(o), &(o)->value_.gc->u)
|
#define rawuvalue(o) check_exp(ttisuserdata(o), &(o)->value_.gc->u)
|
||||||
#define uvalue(o) (&rawuvalue(o)->uv)
|
#define uvalue(o) (&rawuvalue(o)->uv)
|
||||||
#define clvalue(o) check_exp(ttisclosure(o), &(o)->value_.gc->cl)
|
#define clvalue(o) check_exp(ttisclosure(o), &(o)->value_.gc->cl)
|
||||||
#define fvalue(o) check_exp(ttiscfp(o), (o)->value_.f)
|
#define fvalue(o) check_exp(ttislcf(o), (o)->value_.f)
|
||||||
#define hvalue(o) check_exp(ttistable(o), &(o)->value_.gc->h)
|
#define hvalue(o) check_exp(ttistable(o), &(o)->value_.gc->h)
|
||||||
#define bvalue(o) check_exp(ttisboolean(o), (o)->value_.b)
|
#define bvalue(o) check_exp(ttisboolean(o), (o)->value_.b)
|
||||||
#define thvalue(o) check_exp(ttisthread(o), &(o)->value_.gc->th)
|
#define thvalue(o) check_exp(ttisthread(o), &(o)->value_.gc->th)
|
||||||
|
@ -140,7 +140,7 @@ typedef struct lua_TValue {
|
||||||
{ TValue *i_o=(obj); i_o->value_.n=(x); i_o->tt_=LUA_TNUMBER; }
|
{ TValue *i_o=(obj); i_o->value_.n=(x); i_o->tt_=LUA_TNUMBER; }
|
||||||
|
|
||||||
#define setfvalue(obj,x) \
|
#define setfvalue(obj,x) \
|
||||||
{ TValue *i_o=(obj); i_o->value_.f=(x); i_o->tt_=LUA_TCFP; }
|
{ TValue *i_o=(obj); i_o->value_.f=(x); i_o->tt_=LUA_TLCF; }
|
||||||
|
|
||||||
#define changenvalue(obj,x) \
|
#define changenvalue(obj,x) \
|
||||||
( lua_assert((obj)->tt_==LUA_TNUMBER), (obj)->value_.n=(x) )
|
( lua_assert((obj)->tt_==LUA_TNUMBER), (obj)->value_.n=(x) )
|
||||||
|
|
4
ltable.c
4
ltable.c
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
** $Id: ltable.c,v 2.48 2010/04/05 16:26:37 roberto Exp roberto $
|
** $Id: ltable.c,v 2.49 2010/04/13 20:48:12 roberto Exp roberto $
|
||||||
** Lua tables (hash)
|
** Lua tables (hash)
|
||||||
** See Copyright Notice in lua.h
|
** See Copyright Notice in lua.h
|
||||||
*/
|
*/
|
||||||
|
@ -109,7 +109,7 @@ static Node *mainposition (const Table *t, const TValue *key) {
|
||||||
return hashboolean(t, bvalue(key));
|
return hashboolean(t, bvalue(key));
|
||||||
case LUA_TLIGHTUSERDATA:
|
case LUA_TLIGHTUSERDATA:
|
||||||
return hashpointer(t, pvalue(key));
|
return hashpointer(t, pvalue(key));
|
||||||
case LUA_TCFP:
|
case LUA_TLCF:
|
||||||
return hashpointer(t, fvalue(key));
|
return hashpointer(t, fvalue(key));
|
||||||
default:
|
default:
|
||||||
return hashpointer(t, gcvalue(key));
|
return hashpointer(t, gcvalue(key));
|
||||||
|
|
4
lvm.c
4
lvm.c
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
** $Id: lvm.c,v 2.112 2010/04/15 19:43:43 roberto Exp roberto $
|
** $Id: lvm.c,v 2.113 2010/04/18 13:15:11 roberto Exp roberto $
|
||||||
** Lua virtual machine
|
** Lua virtual machine
|
||||||
** See Copyright Notice in lua.h
|
** See Copyright Notice in lua.h
|
||||||
*/
|
*/
|
||||||
|
@ -246,7 +246,7 @@ int luaV_equalval_ (lua_State *L, const TValue *t1, const TValue *t2) {
|
||||||
case LUA_TNUMBER: return luai_numeq(nvalue(t1), nvalue(t2));
|
case LUA_TNUMBER: return luai_numeq(nvalue(t1), nvalue(t2));
|
||||||
case LUA_TBOOLEAN: return bvalue(t1) == bvalue(t2); /* true must be 1 !! */
|
case LUA_TBOOLEAN: return bvalue(t1) == bvalue(t2); /* true must be 1 !! */
|
||||||
case LUA_TLIGHTUSERDATA: return pvalue(t1) == pvalue(t2);
|
case LUA_TLIGHTUSERDATA: return pvalue(t1) == pvalue(t2);
|
||||||
case LUA_TCFP: return fvalue(t1) == fvalue(t2);
|
case LUA_TLCF: return fvalue(t1) == fvalue(t2);
|
||||||
case LUA_TSTRING: return eqstr(rawtsvalue(t1), rawtsvalue(t2));
|
case LUA_TSTRING: return eqstr(rawtsvalue(t1), rawtsvalue(t2));
|
||||||
case LUA_TUSERDATA: {
|
case LUA_TUSERDATA: {
|
||||||
if (uvalue(t1) == uvalue(t2)) return 1;
|
if (uvalue(t1) == uvalue(t2)) return 1;
|
||||||
|
|
Loading…
Reference in New Issue