aboutsummaryrefslogtreecommitdiff
path: root/lfunc.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2024-09-30 14:01:42 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2024-09-30 14:01:42 -0300
commit3d54b42d59bcc1b31a369f3497ac22745d63cae6 (patch)
tree283f8d935865e1cb6d01e25f3d745f91229d22c8 /lfunc.c
parente4f418f07c7349f5ff844fbdc9a3b37b488113a5 (diff)
downloadlua-3d54b42d59bcc1b31a369f3497ac22745d63cae6.tar.gz
lua-3d54b42d59bcc1b31a369f3497ac22745d63cae6.tar.bz2
lua-3d54b42d59bcc1b31a369f3497ac22745d63cae6.zip
'objsize' broke in smaller pieces
Diffstat (limited to 'lfunc.c')
-rw-r--r--lfunc.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/lfunc.c b/lfunc.c
index d650c000..2b041281 100644
--- a/lfunc.c
+++ b/lfunc.c
@@ -264,6 +264,21 @@ Proto *luaF_newproto (lua_State *L) {
264} 264}
265 265
266 266
267size_t luaF_protosize (Proto *p) {
268 size_t sz = sizeof(Proto)
269 + cast_uint(p->sizep) * sizeof(Proto*)
270 + cast_uint(p->sizek) * sizeof(TValue)
271 + cast_uint(p->sizelocvars) * sizeof(LocVar)
272 + cast_uint(p->sizeupvalues) * sizeof(Upvaldesc);
273 if (!(p->flag & PF_FIXED)) {
274 sz += cast_uint(p->sizecode) * sizeof(Instruction)
275 + cast_uint(p->sizelineinfo) * sizeof(lu_byte)
276 + cast_uint(p->sizeabslineinfo) * sizeof(AbsLineInfo);
277 }
278 return sz;
279}
280
281
267void luaF_freeproto (lua_State *L, Proto *f) { 282void luaF_freeproto (lua_State *L, Proto *f) {
268 if (!(f->flag & PF_FIXED)) { 283 if (!(f->flag & PF_FIXED)) {
269 luaM_freearray(L, f->code, cast_sizet(f->sizecode)); 284 luaM_freearray(L, f->code, cast_sizet(f->sizecode));