Commit Graph

2533 Commits

Author SHA1 Message Date
Amaury Forgeot d'Arc
ceda6a67ce #3242: fix a crash in "print", if sys.stdout is set to a custom object,
whose write() method installs another sys.stdout.

Backport of r64633
2008-07-01 20:52:56 +00:00
Raymond Hettinger
75ee9eb9c6 Issue #3116 and #1792: Fix quadratic behavior in marshal.dumps(). 2008-06-16 01:49:18 +00:00
Georg Brandl
d297f1ad78 #3117: backport r55087, fixes segfault with lambda (None,): None. 2008-06-15 19:53:12 +00:00
Gregory P. Smith
9aa040d4ab - Issue #2588, #2589: Fix potential integer underflow and overflow
conditions in the PyOS_vsnprintf C API function.

This is a backport of r63728 and r63734 from trunk.
2008-06-02 00:07:25 +00:00
Amaury Forgeot d'Arc
8432d86b9f Fix a reference leak found by Georg, when compiling a class nested in another class.
Test is run with "regrtest.py -R:: test_compile"

Backport of r62015
2008-03-28 20:45:42 +00:00
Sean Reifscheider
4af861cb4e Back-port of rev 61240 for issue #2238, fixing: Some syntax errors in *args
and **kwargs expressions could give bogus error messages.
2008-03-20 17:39:31 +00:00
Martin v. Löwis
10eac2c613 Update copyright years to 2008. Update README to 2.5.2. 2008-02-21 11:53:40 +00:00
Martin v. Löwis
73c01d4101 Added checks for integer overflows, contributed by Google. Some are
only available if asserts are left in the code, in cases where they
can't be triggered from Python code.
2008-02-14 11:26:18 +00:00
Amaury Forgeot d'Arc
bc212104e4 No need to emit co_lnotab item when both offsets are zeros.
r60579 broke a test test_compile, which seems to test an "implementation detail" IMO.

Also test that this correction does not impact the debugger.
2008-02-04 23:51:55 +00:00
Amaury Forgeot d'Arc
316f8a8d3c backport of r60575 (issue #1750076): Debugger did not step on every iteration of a while statement.
The mapping between bytecode offsets and source lines (lnotab) did not contain
an entry for the beginning of the loop.

Now it does, and the lnotab can be a bit larger:
in particular, several statements on the same line generate several entries.
However, this does not bother the settrace function, which will trigger only
one 'line' event.

The lnotab seems to be exactly the same as with python2.4.
2008-02-04 22:34:57 +00:00
Amaury Forgeot d'Arc
f1a7178cd5 #1920: when considering a block starting by "while 0", the compiler optimized the
whole construct away, even when an 'else' clause is present::

    while 0:
        print("no")
    else:
        print("yes")

did not generate any code at all.

Now the compiler emits the 'else' block, like it already does for 'if' statements.

Backport of r60265.
2008-01-24 23:42:08 +00:00
Guido van Rossum
e105f98046 Fix two crashers (borrowed_ref_[34].py from the trunk). 2008-01-23 20:09:39 +00:00
Mark Dickinson
2bebadfe51 Issue 1678380: fix a bug identifying -0.0 and 0.0 2008-01-21 21:54:47 +00:00
Amaury Forgeot d'Arc
8334a4fc31 Backport of r59241: str.decode fails on very long strings on 64bit platforms.
PyArgs_ParseTuple t# and w# formats truncated the lengths to 32bit.
2007-11-30 21:53:17 +00:00
Amaury Forgeot d'Arc
c572dc3752 Backport for issue1265 (pdb bug with "with" statement).
When an unfinished generator-iterator is garbage collected, PyEval_EvalFrameEx
is called with a GeneratorExit exception set.  This leads to funny results
if the sys.settrace function itself makes use of generators.
A visible effect is that the settrace function is reset to None.
Another is that the eventual "finally" block of the generator is not called.

It is necessary to save/restore the exception around the call to the trace
function.

This happens a lot with py3k: isinstance() of an ABCMeta instance runs
    def __instancecheck__(cls, instance):
        """Override for isinstance(instance, cls)."""
        return any(cls.__subclasscheck__(c)
                   for c in {instance.__class__, type(instance)})
which lets an opened generator expression each time it returns True.

And the problem can be reproduced in 2.5 with pure python code.
2007-11-13 22:43:05 +00:00
Neal Norwitz
163048ed12 Backport 58424:
Fix Coverity 185-186:  If the passed in FILE is NULL, uninitialized memory
would be accessed.
2007-10-12 03:59:09 +00:00
Neal Norwitz
14f848bb22 Backport 58330:
Fix Coverity #158: Check the correct variable.
2007-10-05 03:45:42 +00:00
Georg Brandl
dfecfdb23e Fix #1169: remove docstrings in functions for -OO.
(backport from rev. 58204)
2007-09-19 06:37:26 +00:00
Georg Brandl
eec47f3556 Backport fix of #1752175. 2007-08-23 18:08:33 +00:00
Martin v. Löwis
2276885acd Patch #1733960: Allow T_LONGLONG to accept ints. 2007-06-09 08:01:33 +00:00
Georg Brandl
73c958aced Disallow function calls like foo(None=1).
Backport from py3k rev. 55708 by Guido.
 (backport from rev. 55802)
2007-06-07 13:23:28 +00:00
Georg Brandl
ba871a06fb Bug #1722484: remove docstrings again when running with -OO.
(backport from rev. 55732)
2007-06-01 11:33:45 +00:00
Neal Norwitz
ce15dce421 Drop the max stack depth to something that works in 2.6 2007-05-18 05:12:22 +00:00
Neal Norwitz
dc78cc6f7c Fix bug in marshal where bad data would cause a segfault due to
lack of an infinite recursion check.

Contributed by Damien Miller at Google.
2007-05-16 20:09:36 +00:00
Kristján Valur Jónsson
b4c285a25b Fix NonRecursiveMutex on x64. The signature of the faux-InterlockedCompareExchange function was wrong: It works with LONG and not PVOID objects, and it needs to have the target marked as volatile. Further, it is not needed at all for x64 targets, since that platform always has the real McCoy. 2007-05-07 18:28:12 +00:00