This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author amaury.forgeotdarc
Recipients amaury.forgeotdarc, loewis
Date 2007-12-11.21:40:47
SpamBayes Score 0.0011674649
Marked as misclassified No
Message-id <1197409249.11.0.710274454226.issue1595@psf.upfronthosting.co.za>
In-reply-to
Content
In file ceval.h, the macro Py_LeaveRecursiveCall is defined like this:

#define Py_LeaveRecursiveCall()				\
    do{ if((--PyThreadState_GET()->recursion_depth) <   \
	   _Py_CheckRecursionLimit - 50);               \
	  PyThreadState_GET()->overflowed = 0;          \
    } while(0)


The semicolon on the third line seems very suspicious to me: the if()
statement has no side effect, and "overflowed" is always reset to zero.

I don't really understand the consequences, though. The variable seems
to be used as an additional protection against C code that does not
correctly unwind when the recursion limit is hit.
History
Date User Action Args
2007-12-11 21:40:49amaury.forgeotdarcsetspambayes_score: 0.00116746 -> 0.0011674649
recipients: + amaury.forgeotdarc, loewis
2007-12-11 21:40:49amaury.forgeotdarcsetspambayes_score: 0.00116746 -> 0.00116746
messageid: <1197409249.11.0.710274454226.issue1595@psf.upfronthosting.co.za>
2007-12-11 21:40:48amaury.forgeotdarclinkissue1595 messages
2007-12-11 21:40:47amaury.forgeotdarccreate