summaryrefslogtreecommitdiff
path: root/src/lj_func.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lj_func.c')
-rw-r--r--src/lj_func.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/lj_func.c b/src/lj_func.c
index 27a8322f..284bd3b3 100644
--- a/src/lj_func.c
+++ b/src/lj_func.c
@@ -28,7 +28,7 @@ GCproto *lj_func_newproto(lua_State *L)
28 pt->trace = 0; 28 pt->trace = 0;
29 setmref(pt->k, NULL); 29 setmref(pt->k, NULL);
30 setmref(pt->bc, NULL); 30 setmref(pt->bc, NULL);
31 pt->uv = NULL; 31 setmref(pt->uv, NULL);
32 pt->sizebc = 0; 32 pt->sizebc = 0;
33 pt->sizekgc = 0; 33 pt->sizekgc = 0;
34 pt->sizekn = 0; 34 pt->sizekn = 0;
@@ -39,8 +39,8 @@ GCproto *lj_func_newproto(lua_State *L)
39 pt->lastlinedefined = 0; 39 pt->lastlinedefined = 0;
40 pt->lineinfo = NULL; 40 pt->lineinfo = NULL;
41 pt->varinfo = NULL; 41 pt->varinfo = NULL;
42 pt->uvname = NULL; 42 setmref(pt->uvname, NULL);
43 pt->chunkname = NULL; 43 setgcrefnull(pt->chunkname);
44 return pt; 44 return pt;
45} 45}
46 46
@@ -51,10 +51,10 @@ void LJ_FASTCALL lj_func_freeproto(global_State *g, GCproto *pt)
51 pt->sizekn*(MSize)sizeof(lua_Number); 51 pt->sizekn*(MSize)sizeof(lua_Number);
52 lj_mem_free(g, mref(pt->k, GCRef) - nkgc, sizek); 52 lj_mem_free(g, mref(pt->k, GCRef) - nkgc, sizek);
53 lj_mem_freevec(g, proto_bc(pt), pt->sizebc, BCIns); 53 lj_mem_freevec(g, proto_bc(pt), pt->sizebc, BCIns);
54 lj_mem_freevec(g, pt->uv, pt->sizeuv, uint16_t); 54 lj_mem_freevec(g, proto_uv(pt), pt->sizeuv, uint16_t);
55 lj_mem_freevec(g, pt->lineinfo, pt->sizelineinfo, int32_t); 55 lj_mem_freevec(g, pt->lineinfo, pt->sizelineinfo, int32_t);
56 lj_mem_freevec(g, pt->varinfo, pt->sizevarinfo, struct VarInfo); 56 lj_mem_freevec(g, pt->varinfo, pt->sizevarinfo, struct VarInfo);
57 lj_mem_freevec(g, pt->uvname, pt->sizeuvname, GCstr *); 57 lj_mem_freevec(g, mref(pt->uvname, GCRef), pt->sizeuvname, GCRef);
58 lj_trace_freeproto(g, pt); 58 lj_trace_freeproto(g, pt);
59 lj_mem_freet(g, pt); 59 lj_mem_freet(g, pt);
60} 60}
@@ -169,7 +169,7 @@ GCfunc *lj_func_newL_gc(lua_State *L, GCproto *pt, GCfuncL *parent)
169 nuv = fn->l.nupvalues; 169 nuv = fn->l.nupvalues;
170 base = L->base; 170 base = L->base;
171 for (i = 0; i < nuv; i++) { 171 for (i = 0; i < nuv; i++) {
172 uint32_t v = pt->uv[i]; 172 uint32_t v = proto_uv(pt)[i];
173 GCupval *uv; 173 GCupval *uv;
174 if ((v & 0x8000)) { 174 if ((v & 0x8000)) {
175 uv = func_finduv(L, base + (v & 0xff)); 175 uv = func_finduv(L, base + (v & 0xff));