summaryrefslogtreecommitdiff
path: root/lfunc.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2012-05-08 10:53:33 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2012-05-08 10:53:33 -0300
commit3cadc37f470df50deb5c920b028125b8bb6c316b (patch)
treea2a448ef80bddb0ddef2581d0692ccec3de5b159 /lfunc.c
parentbb1146dc3986c6f123ed6d85a26694ca8d56f94a (diff)
downloadlua-3cadc37f470df50deb5c920b028125b8bb6c316b.tar.gz
lua-3cadc37f470df50deb5c920b028125b8bb6c316b.tar.bz2
lua-3cadc37f470df50deb5c920b028125b8bb6c316b.zip
no more 'Proto' objects on the stack. Protos are anchored on outer
Protos or on a Closure, which must be created before the Proto.
Diffstat (limited to '')
-rw-r--r--lfunc.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/lfunc.c b/lfunc.c
index 8b8f05c1..746f388c 100644
--- a/lfunc.c
+++ b/lfunc.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lfunc.c,v 2.27 2010/06/30 14:11:17 roberto Exp roberto $ 2** $Id: lfunc.c,v 2.28 2012/01/20 22:05:50 roberto Exp roberto $
3** Auxiliary functions to manipulate prototypes and closures 3** Auxiliary functions to manipulate prototypes and closures
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -27,10 +27,9 @@ Closure *luaF_newCclosure (lua_State *L, int n) {
27} 27}
28 28
29 29
30Closure *luaF_newLclosure (lua_State *L, Proto *p) { 30Closure *luaF_newLclosure (lua_State *L, int n) {
31 int n = p->sizeupvalues;
32 Closure *c = &luaC_newobj(L, LUA_TLCL, sizeLclosure(n), NULL, 0)->cl; 31 Closure *c = &luaC_newobj(L, LUA_TLCL, sizeLclosure(n), NULL, 0)->cl;
33 c->l.p = p; 32 c->l.p = NULL;
34 c->l.nupvalues = cast_byte(n); 33 c->l.nupvalues = cast_byte(n);
35 while (n--) c->l.upvals[n] = NULL; 34 while (n--) c->l.upvals[n] = NULL;
36 return c; 35 return c;