mirror of
https://github.com/lua/lua
synced 2026-09-27 00:28:25 +03:00
'objsize' returns 'l_mem'
Sums of size_t may not fit in a size_t.
This commit is contained in:
parent
d4247befa1
commit
a4762b6ffe
7 changed files with 40 additions and 25 deletions
10
lfunc.c
10
lfunc.c
|
|
@ -264,16 +264,16 @@ Proto *luaF_newproto (lua_State *L) {
|
|||
}
|
||||
|
||||
|
||||
size_t luaF_protosize (Proto *p) {
|
||||
size_t sz = sizeof(Proto)
|
||||
lu_mem luaF_protosize (Proto *p) {
|
||||
lu_mem sz = cast(lu_mem, sizeof(Proto))
|
||||
+ cast_uint(p->sizep) * sizeof(Proto*)
|
||||
+ cast_uint(p->sizek) * sizeof(TValue)
|
||||
+ cast_uint(p->sizelocvars) * sizeof(LocVar)
|
||||
+ cast_uint(p->sizeupvalues) * sizeof(Upvaldesc);
|
||||
if (!(p->flag & PF_FIXED)) {
|
||||
sz += cast_uint(p->sizecode) * sizeof(Instruction)
|
||||
+ cast_uint(p->sizelineinfo) * sizeof(lu_byte)
|
||||
+ cast_uint(p->sizeabslineinfo) * sizeof(AbsLineInfo);
|
||||
sz += cast_uint(p->sizecode) * sizeof(Instruction);
|
||||
sz += cast_uint(p->sizelineinfo) * sizeof(lu_byte);
|
||||
sz += cast_uint(p->sizeabslineinfo) * sizeof(AbsLineInfo);
|
||||
}
|
||||
return sz;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue