]> granicus.if.org Git - python/commit
Fix an issue that was reported in but unrelated to the main problem of
authorGuido van Rossum <guido@python.org>
Thu, 28 Mar 2002 20:17:52 +0000 (20:17 +0000)
committerGuido van Rossum <guido@python.org>
Thu, 28 Mar 2002 20:17:52 +0000 (20:17 +0000)
commitcfbf1a33c17f5ea499a0419d94162d80c52ec782
tree4e127ab1cec9efff500184cd4a533f38cf7d4af1
parent47cdf6fb6fbc501176329c560584441b2becc234
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!
Python/ceval.c