Go to file
Roberto Ierusalimschy 41c800b352 Closing methods should not interfere with returning values
A closing method cannot be called in its own stack slot, as there may
be returning values in the stack after that slot, and the call would
corrupt those values. Instead, the closing method must be copied to the
top of the stack to be called.

Moreover, even when a function returns no value, its return istruction
still has to have its position (which will set the stack top) after
the local variables, otherwise a closing method might corrupt another
not-yet-called closing method.
2018-10-25 12:50:20 -03:00
manual Small improvements in the manual 2018-10-22 15:02:09 -03:00
testes Closing methods should not interfere with returning values 2018-10-25 12:50:20 -03:00
all Added manual and tests for version 5.4-w2 2018-07-09 12:33:01 -03:00
bugs added patch for bug 5.3.4-7 2018-06-08 13:23:18 -03:00
lapi.c Details (comments) 2018-09-11 08:39:12 -03:00
lapi.h Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
lauxlib.c Added "emergency collection" to 'io.tmpfile' and 'os.tmpname' 2018-07-27 15:50:53 -03:00
lauxlib.h Added "emergency collection" to 'io.tmpfile' and 'os.tmpname' 2018-07-27 15:50:53 -03:00
lbaselib.c Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
lcode.c Towards "to closed" local variables 2018-10-08 10:42:07 -03:00
lcode.h Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
lcorolib.c Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
lctype.c Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
lctype.h Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
ldblib.c Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
ldebug.c Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
ldebug.h Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
ldo.c Complete implementation of to-be-closed variables 2018-10-22 14:55:51 -03:00
ldo.h First "complete" implementation of to-be-closed variables 2018-10-17 10:44:42 -03:00
ldump.c Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
lfunc.c Closing methods should not interfere with returning values 2018-10-25 12:50:20 -03:00
lfunc.h Handling of memory errors when creating to-be-closed upvalues 2018-10-18 16:15:09 -03:00
lgc.c First "complete" implementation of to-be-closed variables 2018-10-17 10:44:42 -03:00
lgc.h Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
linit.c Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
liolib.c Added a '__close' metamethod to file handles 2018-10-23 13:57:25 -03:00
ljumptab.h Towards "to closed" local variables 2018-10-08 10:42:07 -03:00
llex.c Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
llex.h Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
llimits.h Details (comments) 2018-09-11 08:39:12 -03:00
lmathlib.c Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
lmem.c Detail: bad assertion in 'luaM_free_' 2018-10-23 12:58:38 -03:00
lmem.h Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
loadlib.c Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
lobject.c Corrections in the implementation of '%' for floats. 2018-08-28 12:36:58 -03:00
lobject.h Towards "to closed" local variables 2018-10-08 10:42:07 -03:00
lopcodes.c Towards "to closed" local variables 2018-10-08 10:42:07 -03:00
lopcodes.h Towards "to closed" local variables 2018-10-08 10:42:07 -03:00
lopnames.h Towards "to closed" local variables 2018-10-08 10:42:07 -03:00
loslib.c Added "emergency collection" to 'io.tmpfile' and 'os.tmpname' 2018-07-27 15:50:53 -03:00
lparser.c Closing methods should not interfere with returning values 2018-10-25 12:50:20 -03:00
lparser.h Towards "to closed" local variables 2018-10-08 10:42:07 -03:00
lprefix.h Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
lstate.c First "complete" implementation of to-be-closed variables 2018-10-17 10:44:42 -03:00
lstate.h Towards "to closed" local variables 2018-10-08 10:42:07 -03:00
lstring.c Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
lstring.h Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
lstrlib.c Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
ltable.c Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
ltable.h Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
ltablib.c Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
ltests.c First "complete" implementation of to-be-closed variables 2018-10-17 10:44:42 -03:00
ltests.h Deprecated the emulation of '__le' using '__lt' 2018-08-24 10:17:54 -03:00
ltm.c First "complete" implementation of to-be-closed variables 2018-10-17 10:44:42 -03:00
ltm.h First "complete" implementation of to-be-closed variables 2018-10-17 10:44:42 -03:00
lua.c Removed use of 'rl_inhibit_completion' in 'lua.c' 2018-08-16 14:38:05 -03:00
lua.h Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
luaconf.h Deprecated the emulation of '__le' using '__lt' 2018-08-24 10:17:54 -03:00
lualib.h Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
lundump.c Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
lundump.h Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
lutf8lib.c Avoid using 'int' for UTF-8 values 2018-07-12 15:56:44 -03:00
lvm.c Closing methods should not interfere with returning values 2018-10-25 12:50:20 -03:00
lvm.h Corrections in the implementation of '%' for floats. 2018-08-28 12:36:58 -03:00
lzio.c Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
lzio.h Removed extra information from RCS keyword strings 2018-08-23 14:26:12 -03:00
makefile several details 2018-06-18 15:25:19 -03:00