aboutsummaryrefslogtreecommitdiff
path: root/lapi.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2010-11-26 12:32:31 -0200
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2010-11-26 12:32:31 -0200
commit9b7a12c46d85666e0e60efd79b39495589e497e8 (patch)
treec69acde3d3e300fa0db87004045e7599cbbca7a2 /lapi.c
parent5b33e398557d7afad4a916bb483e9894e4b9b3d4 (diff)
downloadlua-9b7a12c46d85666e0e60efd79b39495589e497e8.tar.gz
lua-9b7a12c46d85666e0e60efd79b39495589e497e8.tar.bz2
lua-9b7a12c46d85666e0e60efd79b39495589e497e8.zip
finalizers (__gc) for tables
Diffstat (limited to 'lapi.c')
-rw-r--r--lapi.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/lapi.c b/lapi.c
index 1e97cc46..a1796db3 100644
--- a/lapi.c
+++ b/lapi.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lapi.c,v 2.139 2010/10/25 20:31:11 roberto Exp roberto $ 2** $Id: lapi.c,v 2.141 2010/11/18 19:15:00 roberto Exp roberto $
3** Lua API 3** Lua API
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -760,13 +760,14 @@ LUA_API int lua_setmetatable (lua_State *L, int objindex) {
760 hvalue(obj)->metatable = mt; 760 hvalue(obj)->metatable = mt;
761 if (mt) 761 if (mt)
762 luaC_objbarrierback(L, gcvalue(obj), mt); 762 luaC_objbarrierback(L, gcvalue(obj), mt);
763 luaC_checkfinalizer(L, gcvalue(obj), mt);
763 break; 764 break;
764 } 765 }
765 case LUA_TUSERDATA: { 766 case LUA_TUSERDATA: {
766 uvalue(obj)->metatable = mt; 767 uvalue(obj)->metatable = mt;
767 if (mt) { 768 if (mt) {
768 luaC_objbarrier(L, rawuvalue(obj), mt); 769 luaC_objbarrier(L, rawuvalue(obj), mt);
769 luaC_checkfinalizer(L, rawuvalue(obj)); 770 luaC_checkfinalizer(L, gcvalue(obj), mt);
770 } 771 }
771 break; 772 break;
772 } 773 }