aboutsummaryrefslogtreecommitdiff
path: root/lbuiltin.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>1997-11-27 16:25:14 -0200
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>1997-11-27 16:25:14 -0200
commit5482992dec286ca800ffab539b0f81eddaa2665b (patch)
tree77759747324cf65d22c9a10f81df3468ff724f36 /lbuiltin.c
parent024528e0c2ce75ac28ebbbc1220d4ae4045d3adf (diff)
downloadlua-5482992dec286ca800ffab539b0f81eddaa2665b.tar.gz
lua-5482992dec286ca800ffab539b0f81eddaa2665b.tar.bz2
lua-5482992dec286ca800ffab539b0f81eddaa2665b.zip
other access method for C upvalues (as arguments)
Diffstat (limited to 'lbuiltin.c')
-rw-r--r--lbuiltin.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/lbuiltin.c b/lbuiltin.c
index 53dd4032..48acfa42 100644
--- a/lbuiltin.c
+++ b/lbuiltin.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lbuiltin.c,v 1.10 1997/11/26 19:40:27 roberto Exp roberto $ 2** $Id: lbuiltin.c,v 1.11 1997/11/27 15:59:44 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*/
@@ -399,7 +399,10 @@ static void testC (void)
399 break; 399 break;
400 400
401 case 'c': reg[getnum(s)] = lua_createtable(); break; 401 case 'c': reg[getnum(s)] = lua_createtable(); break;
402 case 'C': lua_pushCclosure(testC, getnum(s)); break; 402 case 'C': { lua_CFunction f = lua_getcfunction(lua_getglobal(getname(s)));
403 lua_pushCclosure(f, getnum(s));
404 break;
405 }
403 case 'P': reg[getnum(s)] = lua_pop(); break; 406 case 'P': reg[getnum(s)] = lua_pop(); break;
404 case 'g': { int n=getnum(s); reg[n]=lua_getglobal(getname(s)); break; } 407 case 'g': { int n=getnum(s); reg[n]=lua_getglobal(getname(s)); break; }
405 case 'G': { int n = getnum(s); 408 case 'G': { int n = getnum(s);
@@ -419,7 +422,6 @@ static void testC (void)
419 case 'I': reg[getnum(s)] = lua_rawgettable(); break; 422 case 'I': reg[getnum(s)] = lua_rawgettable(); break;
420 case 't': lua_settable(); break; 423 case 't': lua_settable(); break;
421 case 'T': lua_rawsettable(); break; 424 case 'T': lua_rawsettable(); break;
422 case 'U': { int n=getnum(s); reg[n]=lua_upvalue(getnum(s)); break; }
423 default: luaL_verror("unknown command in `testC': %c", *(s-1)); 425 default: luaL_verror("unknown command in `testC': %c", *(s-1));
424 } 426 }
425 if (*s == 0) return; 427 if (*s == 0) return;