[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: when do programs set metatable?
- From: Roberto Ierusalimschy <roberto@...>
- Date: Fri, 8 Feb 2008 18:46:48 -0200
> So, it would presumably remain cheap to go from having a __gc metamethod to
> having a different __gc metamethod. It could even be cheap to going from
> having a __gc metamethod to not having a __gc metamethod provided the
> finalization code dealt with the missing method case. What would be
> expensive would be gaining a __gc metamethod well after creation? That seems
> fairly reasonable.
Yes. More specificaly, what would be expensive would be going from a
metatable without a __gc metamethod to a new metatable with a __gc
metamethod well after creation. Note that, if you change the metatable
itself, creating a __gc metamethod, Lua could not detect the change (and
so would not run the finalizer). (This would be an incompatibility...)