lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


> On Tue, Jul 13, 2010 at 09:04:35AM -0300, Roberto Ierusalimschy wrote:
> > > My guess is that they would only be pooled if they share the same prototype,
> > > and do not use any upvalues, such as:
> > > 
> > > t = {}
> > > for i = 1, 10 do
> > >   t[i] = function() end
> > > end
> > 
> > They may be reused even with upvalues, as long as they have the same
> > upvalues; each prototype caches the last closure created with it.
> 
> Presumably this cache is weak?  Otherwise you could create a really nasty GC
> leak.

Sure it is weak, or "weak weak". (In some cases it may clear the cache
even when the closure is not collected.)

-- Roberto