diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2004-11-19 13:52:40 -0200 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2004-11-19 13:52:40 -0200 |
commit | 6f1ea817f5827523f8c7e429ab023e5984a84343 (patch) | |
tree | 778c20b8816afb4ee5cfc3b988ec1c31efbb7b75 /lgc.c | |
parent | cdcb236747a728e3ef0855aa16a42b73e7a9a6c6 (diff) | |
download | lua-6f1ea817f5827523f8c7e429ab023e5984a84343.tar.gz lua-6f1ea817f5827523f8c7e429ab023e5984a84343.tar.bz2 lua-6f1ea817f5827523f8c7e429ab023e5984a84343.zip |
better control over memory-size overflows
Diffstat (limited to 'lgc.c')
-rw-r--r-- | lgc.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lgc.c,v 2.13 2004/10/06 18:34:16 roberto Exp roberto $ | 2 | ** $Id: lgc.c,v 2.14 2004/10/08 16:00:34 roberto Exp roberto $ |
3 | ** Garbage Collector | 3 | ** Garbage Collector |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -139,7 +139,7 @@ size_t luaC_separateudata (lua_State *L, int all) { | |||
139 | p = &curr->gch.next; | 139 | p = &curr->gch.next; |
140 | } | 140 | } |
141 | else { /* must call its gc method */ | 141 | else { /* must call its gc method */ |
142 | deadmem += sizeudata(gco2u(curr)->len); | 142 | deadmem += sizeudata(gco2u(curr)); |
143 | markfinalized(gco2u(curr)); | 143 | markfinalized(gco2u(curr)); |
144 | *p = curr->gch.next; | 144 | *p = curr->gch.next; |
145 | curr->gch.next = NULL; /* link `curr' at the end of `collected' list */ | 145 | curr->gch.next = NULL; /* link `curr' at the end of `collected' list */ |
@@ -388,11 +388,11 @@ static void freeobj (lua_State *L, GCObject *o) { | |||
388 | } | 388 | } |
389 | case LUA_TSTRING: { | 389 | case LUA_TSTRING: { |
390 | G(L)->strt.nuse--; | 390 | G(L)->strt.nuse--; |
391 | luaM_free(L, o, sizestring(gco2ts(o)->len)); | 391 | luaM_free(L, o, sizestring(gco2ts(o))); |
392 | break; | 392 | break; |
393 | } | 393 | } |
394 | case LUA_TUSERDATA: { | 394 | case LUA_TUSERDATA: { |
395 | luaM_free(L, o, sizeudata(gco2u(o)->len)); | 395 | luaM_free(L, o, sizeudata(gco2u(o))); |
396 | break; | 396 | break; |
397 | } | 397 | } |
398 | default: lua_assert(0); | 398 | default: lua_assert(0); |