diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2000-12-28 10:55:41 -0200 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2000-12-28 10:55:41 -0200 |
commit | 0183b8030c80f57b87874ff7867ccdb172d9d3dc (patch) | |
tree | 1033b5a84489a2f1f1bd210b1b120155cd7aeed7 /lundump.c | |
parent | 8c49e198654567f770a7d5081b886a7c35201d81 (diff) | |
download | lua-0183b8030c80f57b87874ff7867ccdb172d9d3dc.tar.gz lua-0183b8030c80f57b87874ff7867ccdb172d9d3dc.tar.bz2 lua-0183b8030c80f57b87874ff7867ccdb172d9d3dc.zip |
`free' gets size of the block: complete control over memory use
Diffstat (limited to 'lundump.c')
-rw-r--r-- | lundump.c | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lundump.c,v 1.34 2000/11/07 12:44:44 roberto Exp roberto $ | 2 | ** $Id: lundump.c,v 1.35 2000/12/04 18:33:40 roberto Exp roberto $ |
3 | ** load bytecodes from files | 3 | ** load bytecodes from files |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -104,17 +104,17 @@ static TString* LoadString (lua_State* L, ZIO* Z, int swap) | |||
104 | 104 | ||
105 | static void LoadCode (lua_State* L, Proto* tf, ZIO* Z, int swap) | 105 | static void LoadCode (lua_State* L, Proto* tf, ZIO* Z, int swap) |
106 | { | 106 | { |
107 | int size=LoadInt(L,Z,swap); | 107 | int size; |
108 | tf->sizecode=size=LoadInt(L,Z,swap); | ||
108 | tf->code=luaM_newvector(L,size,Instruction); | 109 | tf->code=luaM_newvector(L,size,Instruction); |
109 | LoadVector(L,tf->code,size,sizeof(*tf->code),Z,swap); | 110 | LoadVector(L,tf->code,size,sizeof(*tf->code),Z,swap); |
110 | if (tf->code[size-1]!=OP_END) luaO_verror(L,"bad code in `%.99s'",ZNAME(Z)); | 111 | if (tf->code[size-1]!=OP_END) luaO_verror(L,"bad code in `%.99s'",ZNAME(Z)); |
111 | luaF_protook(L,tf,size); | ||
112 | } | 112 | } |
113 | 113 | ||
114 | static void LoadLocals (lua_State* L, Proto* tf, ZIO* Z, int swap) | 114 | static void LoadLocals (lua_State* L, Proto* tf, ZIO* Z, int swap) |
115 | { | 115 | { |
116 | int i,n; | 116 | int i,n; |
117 | tf->nlocvars=n=LoadInt(L,Z,swap); | 117 | tf->sizelocvars=n=LoadInt(L,Z,swap); |
118 | tf->locvars=luaM_newvector(L,n,LocVar); | 118 | tf->locvars=luaM_newvector(L,n,LocVar); |
119 | for (i=0; i<n; i++) | 119 | for (i=0; i<n; i++) |
120 | { | 120 | { |
@@ -127,7 +127,7 @@ static void LoadLocals (lua_State* L, Proto* tf, ZIO* Z, int swap) | |||
127 | static void LoadLines (lua_State* L, Proto* tf, ZIO* Z, int swap) | 127 | static void LoadLines (lua_State* L, Proto* tf, ZIO* Z, int swap) |
128 | { | 128 | { |
129 | int n; | 129 | int n; |
130 | tf->nlineinfo=n=LoadInt(L,Z,swap); | 130 | tf->sizelineinfo=n=LoadInt(L,Z,swap); |
131 | tf->lineinfo=luaM_newvector(L,n,int); | 131 | tf->lineinfo=luaM_newvector(L,n,int); |
132 | LoadVector(L,tf->lineinfo,n,sizeof(*tf->lineinfo),Z,swap); | 132 | LoadVector(L,tf->lineinfo,n,sizeof(*tf->lineinfo),Z,swap); |
133 | } | 133 | } |
@@ -137,14 +137,14 @@ static Proto* LoadFunction (lua_State* L, ZIO* Z, int swap); | |||
137 | static void LoadConstants (lua_State* L, Proto* tf, ZIO* Z, int swap) | 137 | static void LoadConstants (lua_State* L, Proto* tf, ZIO* Z, int swap) |
138 | { | 138 | { |
139 | int i,n; | 139 | int i,n; |
140 | tf->nkstr=n=LoadInt(L,Z,swap); | 140 | tf->sizekstr=n=LoadInt(L,Z,swap); |
141 | tf->kstr=luaM_newvector(L,n,TString*); | 141 | tf->kstr=luaM_newvector(L,n,TString*); |
142 | for (i=0; i<n; i++) | 142 | for (i=0; i<n; i++) |
143 | tf->kstr[i]=LoadString(L,Z,swap); | 143 | tf->kstr[i]=LoadString(L,Z,swap); |
144 | tf->nknum=n=LoadInt(L,Z,swap); | 144 | tf->sizeknum=n=LoadInt(L,Z,swap); |
145 | tf->knum=luaM_newvector(L,n,lua_Number); | 145 | tf->knum=luaM_newvector(L,n,lua_Number); |
146 | LoadVector(L,tf->knum,n,sizeof(*tf->knum),Z,swap); | 146 | LoadVector(L,tf->knum,n,sizeof(*tf->knum),Z,swap); |
147 | tf->nkproto=n=LoadInt(L,Z,swap); | 147 | tf->sizekproto=n=LoadInt(L,Z,swap); |
148 | tf->kproto=luaM_newvector(L,n,Proto*); | 148 | tf->kproto=luaM_newvector(L,n,Proto*); |
149 | for (i=0; i<n; i++) | 149 | for (i=0; i<n; i++) |
150 | tf->kproto[i]=LoadFunction(L,Z,swap); | 150 | tf->kproto[i]=LoadFunction(L,Z,swap); |