| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
treats as a fatal error).
|
|
|
|
|
|
|
|
|
|
| |
619475; also closing SF bug 618704). I tweaked his code a bit for
style.
This raises TypeError for MRO order disagreements, which is an
improvement (previously these went undetected) but also a degradation:
what if the order disagreement doesn't affect any method lookups?
I don't think I care.
|
|
|
|
|
|
|
|
|
| |
When mwh added extended slicing, strings and unicode became mappings.
Thus, dict was set which prevented an error when doing:
newstr = 'format without a percent' % string_value
This fix raises an exception again when there are no formats
and % with a string value.
|
|
|
|
|
|
|
|
|
|
|
| |
Armin Rigo's Draconian but effective fix for
SF bug 453523: list.sort crasher
slightly fiddled to catch more cases of list mutation. The dreaded
internal "immutable list type" is gone! OTOH, if you look at a list
*while* it's being sorted now, it will appear to be empty. Better
than a core dump.
|
|
|
|
|
| |
dir(xrange(10))
xrange(10).__getitem__(4)
|
|
|
|
|
|
| |
Also remove the 512 character limitation for int(u"...") and long(u"...").
This closes SF bug #629989.
|
|
|
|
| |
Fixes a test failure on 64 bit platforms (I hope).
|
| |
|
|
|
|
| |
PySequence_Fast needs to do anything siginificant.
|
|
|
|
|
|
| |
[ 633870 ] allow any seq assignment to a list slice
plus a very silly little test case of my own.
|
|
|
|
|
|
|
|
|
|
|
|
| |
/* this is harder to get right than you might think */
angered some God somewhere. After noticing
>>> range(5000000)[slice(96360, None, 439)]
[]
I found that my cute test for the slice being empty failed due to
overflow. Fixed, and added simple test (not the above!).
|
|
|
|
|
|
|
| |
instance_getattr2() raises an exception. Fix all code that made this
assumption.
Backport candidate.
|
|
|
|
| |
larger than the system page size.
|
|
|
|
| |
Python 2.2.3 candidate.
|
| |
|
|
|
|
| |
Don't crash when getting value of a property raises an exception
|
| |
|
|
|
|
| |
Perhaps found by NealN and valgrind. Will forward port.
|
|
|
|
| |
running tests. Withdraw 2.183 and its backport.
|
|
|
|
| |
Will backport.
|
| |
|
|
|
|
| |
Use integers in stat tuple, optionally floats in named fields.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
classes was called with three arguments. This makes no sense, there's
no way to pass in the "modulo" 3rd argument as for __pow__, and
classic classes don't do this. [SF bug 620179]
I don't want to backport this to 2.2.2, because it could break
existing code that has developed a work-around. Code in 2.2.2 that
wants to use __ipow__ and wants to be forward compatible with 2.3
should be written like this:
def __ipow__(self, exponent, modulo=None):
...
|
| |
|
| |
|
| |
|
|
|
|
| |
Will backport.
|
|
|
|
|
|
|
|
|
|
| |
macros. The 'op' argument is then the result from PyObject_MALLOC,
and that can of course be NULL. In that case, PyObject_Init[Var]
would raise a SystemError with "NULL object passed to
PyObject_Init[Var]". But there's nothing the caller of the macro can
do about this. So PyObject_Init[Var] should call just PyErr_NoMemory.
Will backport.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
'%2147483647d' % -123 segfaults. This was because an integer overflow
in a comparison caused the string resize to be skipped. After fixing
the overflow, this could call _PyString_Resize() with a negative size,
so I (1) test for that and raise MemoryError instead; (2) also added a
test for negative newsize to _PyString_Resize(), raising SystemError
as for all bad arguments.
An identical bug existed in unicodeobject.c, of course.
Will backport to 2.2.2.
|
|
|
|
|
|
|
|
|
| |
Also fixed an error message -- %s argument has non-string str()
doesn't make sense for %r, so the error message now differentiates
between %s and %r.
because PyObject_Repr() and PyObject_Str() ensure that this can never
happen. Added a helpful comment instead.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
sees a Unicode argument. Unfortunately this test was also executed
for %r, because %s and %r share almost all of their code. This meant
that, if u is a unicode object while repr(u) is an 8-bit string
containing ASCII characters, '%r' % u is a *unicode* string containing
only ASCII characters!
Fixed by executing the test only for %s.
Also fixed an error message -- %s argument has non-string str()
doesn't make sense for %r, so the error message now differentiates
between %s and %r.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
When --enable-unicode=ucs4, need to cast Py_UNICODE to a char
|
|
|
|
| |
Two of these were real bugs.
|
| |
|
|
|
|
|
|
|
| |
the range of ints. The old code would pass random truncated bits to
sq_repeat() on a 64-bit machine.
Backport candidate.
|
|
|
|
|
|
|
|
|
|
| |
but returns r->len which is a long. This doesn't even cause a warning
on 32-bit platforms, but can return bogus values on 64-bit platforms
(and should cause a compiler warning). Fix this by inserting a range
check when LONG_MAX != INT_MAX, and adding an explicit cast to (int)
when the test passes. When r->len is out of range, PySequence_Size()
and hence len() will report an error (but an iterator will still
work).
|
|
|
|
|
| |
This makes things a touch more like 2.2. Read the comments in
Python/ceval.c for more details.
|
| |
|
| |
|
|
|
|
| |
out of the loop.
|
|
|
|
| |
out of the loop.
|
|
|
|
|
|
|
|
|
|
| |
Unicode strings (with arbitrary length) are allowed
as entries in the unicode.translate mapping.
Add a test case for multicharacter replacements.
(Multicharacter replacements were enabled by the
PEP 293 patch)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
globals, _Py_Ticker and _Py_CheckInterval. This also implements Jeremy's
shortcut in Py_AddPendingCall that zeroes out _Py_Ticker. This allows the
test in the main loop to only test a single value.
The gory details are at
http://python.org/sf/602191
|
|
|
|
|
|
|
|
|
| |
of PyString_DecodeEscape(). This prevents a call to
_PyString_Resize() for the empty string, which would
result in a PyErr_BadInternalCall(), because the
empty string has more than one reference.
This closes SF bug http://www.python.org/sf/603937
|