lua-users home
lua-l archive

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


Hi,

Reuben Thomas wrote:
> I have looked at this for a while, and I can't see a way to get rid of the  
> GC method without deleting it from the original metatable, which means  
> that all files have to be closed manually. Grr. Any other solutions?  

Umm, better check liolib.c. The FILE userdatas really need an
environment table with a __close element pointing to a C function
which does the close (or you'll get an exception on GC). Just
make this one a no-op.

Create the environment table once and store it in the environment
of the C function which creates the userdata (look for "popen" at
the end of liolib.c). Userdatas inherit their environment from
the currently active function in the Lua frame stack.

Bye,
     Mike