diff options
Diffstat (limited to 'lbuiltin.c')
-rw-r--r-- | lbuiltin.c | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lbuiltin.c,v 1.3 1997/10/18 16:33:36 roberto Exp roberto $ | 2 | ** $Id: lbuiltin.c,v 1.4 1997/10/23 16:28:48 roberto Exp roberto $ |
3 | ** Built-in functions | 3 | ** Built-in functions |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -12,6 +12,7 @@ | |||
12 | #include "lauxlib.h" | 12 | #include "lauxlib.h" |
13 | #include "lbuiltin.h" | 13 | #include "lbuiltin.h" |
14 | #include "ldo.h" | 14 | #include "ldo.h" |
15 | #include "lfunc.h" | ||
15 | #include "lmem.h" | 16 | #include "lmem.h" |
16 | #include "lobject.h" | 17 | #include "lobject.h" |
17 | #include "lstring.h" | 18 | #include "lstring.h" |
@@ -164,10 +165,6 @@ static char *to_string (lua_Object obj) | |||
164 | sprintf(buff, "function: %p", o->value.cl); | 165 | sprintf(buff, "function: %p", o->value.cl); |
165 | return buff; | 166 | return buff; |
166 | } | 167 | } |
167 | case LUA_T_CFUNCTION: { | ||
168 | sprintf(buff, "cfunction: %p", o->value.f); | ||
169 | return buff; | ||
170 | } | ||
171 | case LUA_T_USERDATA: { | 168 | case LUA_T_USERDATA: { |
172 | sprintf(buff, "userdata: %p", o->value.ts->u.d.v); | 169 | sprintf(buff, "userdata: %p", o->value.ts->u.d.v); |
173 | return buff; | 170 | return buff; |
@@ -382,6 +379,7 @@ static void testC (void) | |||
382 | break; | 379 | break; |
383 | 380 | ||
384 | case 'c': reg[getnum(s)] = lua_createtable(); break; | 381 | case 'c': reg[getnum(s)] = lua_createtable(); break; |
382 | case 'C': lua_pushCclosure(testC, getnum(s)); break; | ||
385 | case 'P': reg[getnum(s)] = lua_pop(); break; | 383 | case 'P': reg[getnum(s)] = lua_pop(); break; |
386 | case 'g': { int n=getnum(s); reg[n]=lua_getglobal(getname(s)); break; } | 384 | case 'g': { int n=getnum(s); reg[n]=lua_getglobal(getname(s)); break; } |
387 | case 'G': { int n = getnum(s); | 385 | case 'G': { int n = getnum(s); |
@@ -401,6 +399,7 @@ static void testC (void) | |||
401 | case 'I': reg[getnum(s)] = lua_rawgettable(); break; | 399 | case 'I': reg[getnum(s)] = lua_rawgettable(); break; |
402 | case 't': lua_settable(); break; | 400 | case 't': lua_settable(); break; |
403 | case 'T': lua_rawsettable(); break; | 401 | case 'T': lua_rawsettable(); break; |
402 | case 'U': { int n=getnum(s); reg[n]=lua_upvalue(getnum(s)); break; } | ||
404 | default: luaL_verror("unknown command in `testC': %c", *(s-1)); | 403 | default: luaL_verror("unknown command in `testC': %c", *(s-1)); |
405 | } | 404 | } |
406 | if (*s == 0) return; | 405 | if (*s == 0) return; |
@@ -462,10 +461,11 @@ void luaB_predefine (void) | |||
462 | /* pre-register mem error messages, to avoid loop when error arises */ | 461 | /* pre-register mem error messages, to avoid loop when error arises */ |
463 | luaS_newfixedstring(tableEM); | 462 | luaS_newfixedstring(tableEM); |
464 | luaS_newfixedstring(memEM); | 463 | luaS_newfixedstring(memEM); |
465 | o.ttype = LUA_T_CFUNCTION; | ||
466 | for (i=0; i<INTFUNCSIZE; i++) { | 464 | for (i=0; i<INTFUNCSIZE; i++) { |
467 | ts = luaS_new(int_funcs[i].name); | 465 | ts = luaS_new(int_funcs[i].name); |
468 | fvalue(&o) = int_funcs[i].func; | 466 | fvalue(&o) = int_funcs[i].func; |
467 | ttype(&o) = LUA_T_CPROTO; | ||
468 | luaF_simpleclosure(&o); | ||
469 | luaS_rawsetglobal(ts, &o); | 469 | luaS_rawsetglobal(ts, &o); |
470 | } | 470 | } |
471 | ts = luaS_new("_VERSION"); | 471 | ts = luaS_new("_VERSION"); |