https://github.com/python/cpython
Revision ded18d634f2e1615b746dca2698d6a98ff63045d authored by Guido van Rossum on 28 March 2002, 20:21:21 UTC, committed by Guido van Rossum on 28 March 2002, 20:21:21 UTC
this is what Zope 2 will be using in the foreseeable future).

Fix an issue that was reported in but unrelated to the main problem of
SF bug 535905 (Evil Trashcan and GC interaction).

The SETLOCAL() macro should not DECREF the local variable in-place and
then store the new value; it should copy the old value to a temporary
value, then store the new value, and then DECREF the temporary value.
This is because it is possible that during the DECREF the frame is
accessed by other code (e.g. a __del__ method or gc.collect()) and the
variable would be pointing to already-freed memory.

BUGFIX CANDIDATE!
1 parent 00be96e
History
Tip revision: ded18d634f2e1615b746dca2698d6a98ff63045d authored by Guido van Rossum on 28 March 2002, 20:21:21 UTC
Backport for 2.1.3 (if we ever release it; we may have to because
Tip revision: ded18d6
File Mode Size
.cvsignore -rw-r--r-- 17 bytes
atof.c -rw-r--r-- 813 bytes
bltinmodule.c -rw-r--r-- 52.1 KB
ceval.c -rw-r--r-- 80.3 KB
codecs.c -rw-r--r-- 10.0 KB
compile.c -rw-r--r-- 121.4 KB
dup2.c -rw-r--r-- 685 bytes
dynload_aix.c -rw-r--r-- 5.3 KB
dynload_beos.c -rw-r--r-- 6.1 KB
dynload_dl.c -rw-r--r-- 537 bytes
dynload_hpux.c -rw-r--r-- 1.3 KB
dynload_mac.c -rw-r--r-- 3.2 KB
dynload_next.c -rw-r--r-- 4.5 KB
dynload_os2.c -rw-r--r-- 958 bytes
dynload_shlib.c -rw-r--r-- 2.1 KB
dynload_stub.c -rw-r--r-- 202 bytes
dynload_win.c -rw-r--r-- 7.4 KB
errors.c -rw-r--r-- 15.9 KB
exceptions.c -rw-r--r-- 28.9 KB
fmod.c -rw-r--r-- 433 bytes
frozen.c -rw-r--r-- 965 bytes
frozenmain.c -rw-r--r-- 1.4 KB
future.c -rw-r--r-- 5.2 KB
getargs.c -rw-r--r-- 29.3 KB
getcompiler.c -rw-r--r-- 366 bytes
getcopyright.c -rw-r--r-- 503 bytes
getcwd.c -rw-r--r-- 1.3 KB
getmtime.c -rw-r--r-- 316 bytes
getopt.c -rw-r--r-- 2.3 KB
getplatform.c -rw-r--r-- 130 bytes
getversion.c -rw-r--r-- 260 bytes
graminit.c -rw-r--r-- 28.3 KB
hypot.c -rw-r--r-- 280 bytes
import.c -rw-r--r-- 57.6 KB
importdl.c -rw-r--r-- 2.0 KB
importdl.h -rw-r--r-- 931 bytes
marshal.c -rw-r--r-- 17.1 KB
memmove.c -rw-r--r-- 439 bytes
modsupport.c -rw-r--r-- 9.6 KB
mystrtoul.c -rw-r--r-- 3.1 KB
pyfpe.c -rw-r--r-- 621 bytes
pystate.c -rw-r--r-- 5.2 KB
pythonrun.c -rw-r--r-- 32.1 KB
sigcheck.c -rw-r--r-- 529 bytes
strdup.c -rw-r--r-- 256 bytes
strerror.c -rw-r--r-- 446 bytes
strtod.c -rw-r--r-- 5.1 KB
structmember.c -rw-r--r-- 5.0 KB
symtable.c -rw-r--r-- 3.4 KB
sysmodule.c -rw-r--r-- 24.3 KB
thread.c -rw-r--r-- 2.3 KB
thread_beos.h -rw-r--r-- 7.5 KB
thread_cthread.h -rw-r--r-- 3.6 KB
thread_foobar.h -rw-r--r-- 2.5 KB
thread_lwp.h -rw-r--r-- 3.8 KB
thread_nt.h -rw-r--r-- 8.9 KB
thread_os2.h -rw-r--r-- 4.1 KB
thread_pth.h -rw-r--r-- 7.1 KB
thread_pthread.h -rw-r--r-- 10.9 KB
thread_sgi.h -rw-r--r-- 11.8 KB
thread_solaris.h -rw-r--r-- 4.4 KB
thread_wince.h -rw-r--r-- 4.0 KB
traceback.c -rw-r--r-- 5.6 KB

back to top