Commit graph

4454 commits

Author SHA1 Message Date
Benjamin Peterson
7643c92cdd merge 3.3 (#16722) 2012-12-19 15:28:46 -06:00
Benjamin Peterson
5ff3f73d94 try to call __bytes__ before __index__ (closes #16722) 2012-12-19 15:27:41 -06:00
Andrew Svetlov
2606a6f197 Issue #16719: Get rid of WindowsError. Use OSError instead
Patch by Serhiy Storchaka.
2012-12-19 14:33:35 +02:00
Antoine Pitrou
928405303d Following issue #13390, fix compilation --without-pymalloc, and make sys.getallocatedblocks() return 0 in that situation. 2012-12-17 23:05:59 +01:00
Gregory P. Smith
27dc02e8c5 Fix the internals of our hash functions to used unsigned values during hash
computation as the overflow behavior of signed integers is undefined.

NOTE: This change is smaller compared to 3.2 as much of this cleanup had
already been done.  I added the comment that my change in 3.2 added so that the
code would match up.  Otherwise this just adds or synchronizes appropriate UL
designations on some constants to be pedantic.

In practice we require compiling everything with -fwrapv which forces overflow
to be defined as twos compliment but this keeps the code cleaner for checkers
or in the case where someone has compiled it without -fwrapv or their
compiler's equivalent.  We could work to get rid of the -fwrapv requirement
in 3.4 but that requires more planning.

Found by Clang trunk's Undefined Behavior Sanitizer (UBSan).

Cleanup only - no functionality or hash values change.
2012-12-10 19:51:29 -08:00
Gregory P. Smith
c2176e46d7 Fix the internals of our hash functions to used unsigned values during hash
computation as the overflow behavior of signed integers is undefined.

NOTE: This change is smaller compared to 3.2 as much of this cleanup had
already been done.  I added the comment that my change in 3.2 added so that the
code would match up.  Otherwise this just adds or synchronizes appropriate UL
designations on some constants to be pedantic.

In practice we require compiling everything with -fwrapv which forces overflow
to be defined as twos compliment but this keeps the code cleaner for checkers
or in the case where someone has compiled it without -fwrapv or their
compiler's equivalent.

Found by Clang trunk's Undefined Behavior Sanitizer (UBSan).

Cleanup only - no functionality or hash values change.
2012-12-10 18:32:53 -08:00
Gregory P. Smith
27cbcd6241 Fix the internals of our hash functions to used unsigned values during hash
computation as the overflow behavior of signed integers is undefined.

In practice we require compiling everything with -fwrapv which forces overflow
to be defined as twos compliment but this keeps the code cleaner for checkers
or in the case where someone has compiled it without -fwrapv or their
compiler's equivalent.

Found by Clang trunk's Undefined Behavior Sanitizer (UBSan).

Cleanup only - no functionality or hash values change.
2012-12-10 18:15:46 -08:00
Antoine Pitrou
f9d0b1256f Issue #13390: New function :func:sys.getallocatedblocks() returns the number of memory blocks currently allocated.
Also, the ``-R`` option to regrtest uses this function to guard against memory allocation leaks.
2012-12-09 14:28:26 +01:00
Antoine Pitrou
53f604c794 Issue #16602: When a weakref's target was part of a long deallocation chain, the object could remain reachable through its weakref even though its refcount had dropped to zero.
Thanks to Eugene Toder for diagnosing and reporting the issue.
2012-12-08 21:18:50 +01:00
Antoine Pitrou
f93ed3fa67 Issue #16602: When a weakref's target was part of a long deallocation chain, the object could remain reachable through its weakref even though its refcount had dropped to zero.
Thanks to Eugene Toder for diagnosing and reporting the issue.
2012-12-08 21:17:03 +01:00
Antoine Pitrou
62a0d6ea40 Issue #16602: When a weakref's target was part of a long deallocation chain, the object could remain reachable through its weakref even though its refcount had dropped to zero.
Thanks to Eugene Toder for diagnosing and reporting the issue.
2012-12-08 21:15:26 +01:00
Chris Jerdonek
e7f2186f99 Issue #16495: remove extraneous NULL encoding check from bytes_decode().
The NULL encoding check in bytes_decode() was unnecessary because this case
is already taken care of by the call to _Py_normalize_encoding() inside
PyUnicode_Decode().
2012-12-07 15:51:53 -08:00
Victor Stinner
8dbd421b4d Cleanup unicodeobject.c
* Remove micro-optization:
   (errors == "surrogateescape" || strcmp(errors, "surrogateescape") == 0).
   Only use strcmp()
 * Initialize 'arg' members in unicode_format_arg() to help the compiler to
   diagnose real bugs and also make the code simpler to read
2012-12-04 09:30:24 +01:00
Victor Stinner
d45c7f8d74 Issue #16455: On FreeBSD and Solaris, if the locale is C, the
ASCII/surrogateescape codec is now used, instead of the locale encoding, to
decode the command line arguments. This change fixes inconsistencies with
os.fsencode() and os.fsdecode() because these operating systems announces an
ASCII locale encoding, whereas the ISO-8859-1 encoding is used in practice.
2012-12-04 01:34:47 +01:00
Victor Stinner
2660e427d1 (Merge 3.2) Issue #16416: On Mac OS X, operating system data are now always
encoded/decoded to/from UTF-8/surrogateescape, instead of the locale encoding
(which may be ASCII if no locale environment variable is set), to avoid
inconsistencies with os.fsencode() and os.fsdecode() functions which are
already using UTF-8/surrogateescape.
2012-12-03 12:48:53 +01:00
Victor Stinner
27b1ca29cc Issue #16416: On Mac OS X, operating system data are now always
encoded/decoded to/from UTF-8/surrogateescape, instead of the locale encoding
(which may be ASCII if no locale environment variable is set), to avoid
inconsistencies with os.fsencode() and os.fsdecode() functions which are
already using UTF-8/surrogateescape.
2012-12-03 12:47:59 +01:00
Antoine Pitrou
0e9958b543 Issue #16562: Optimize dict equality testing.
Patch by Serhiy Storchaka (reviewed by Martin and Raymond).
2012-12-02 19:10:07 +01:00
Christian Heimes
5f7e8dab11 Issue #16592: stringlib_bytes_join doesn't raise MemoryError on allocation failure 2012-12-02 07:56:42 +01:00
Antoine Pitrou
5439458a2a Issue #16215: Fix potential double memory free in str.replace().
Patch by Serhiy Storchaka.
2012-11-17 23:29:28 +01:00
Antoine Pitrou
6d5ad227a5 Issue #16215: Fix potential double memory free in str.replace().
Patch by Serhiy Storchaka.
2012-11-17 23:28:17 +01:00
Mark Dickinson
ffdb2c21b3 Issue #16451: Refactor to remove duplication between range and slice in slice index computations. 2012-11-17 19:18:10 +00:00
Mark Dickinson
d20fb82195 Issue #16290: __complex__ must now always return an instance of complex. 2012-11-14 17:08:31 +00:00
Victor Stinner
0d92c4f667 Issue #16416: Fix error handling in _Py_wchar2char() _Py_char2wchar() functions 2012-11-12 23:32:21 +01:00
Antoine Pitrou
898347056a Issue #16453: Fix equality testing of dead weakref objects.
Also add tests for ordering and hashing.
2012-11-11 19:39:35 +01:00
Antoine Pitrou
f6a50cfa07 Issue #16453: Fix equality testing of dead weakref objects.
Also add tests for ordering and hashing.
2012-11-11 19:37:41 +01:00
Antoine Pitrou
e11fecb5a9 Issue #16453: Fix equality testing of dead weakref objects.
Also add tests for ordering and hashing.
2012-11-11 19:36:51 +01:00
Mark Dickinson
c8a6967ea8 Issue #14794: slice.indices no longer returns OverflowError for out-of-range start, stop, step or length. 2012-11-10 14:52:10 +00:00
Victor Stinner
fc009eff9e Close #16311: Use the _PyUnicodeWriter API in text decoders
* Remove unicode_widen(): replaced with _PyUnicodeWriter_Prepare()
 * Remove unicode_putchar(): replaced with
   PyUnicodeWriter_Prepare() + PyUnicode_WRITER()
 * When handling an decoding error, only overallocate the buffer by +25%
   instead of +100%
2012-11-07 00:36:38 +01:00
Victor Stinner
6caa6fb535 (Merge 3.3) Issue #8271: Fix compilation on Windows 2012-11-05 00:00:50 +01:00
Victor Stinner
ab60de478d Issue #8271: Fix compilation on Windows 2012-11-04 23:59:15 +01:00
Ezio Melotti
cfa9636404 #8271: merge with 3.3. 2012-11-04 23:23:09 +02:00
Ezio Melotti
f7ed5d111b #8271: the utf-8 decoder now outputs the correct number of U+FFFD characters when used with the "replace" error handler on invalid utf-8 sequences. Patch by Serhiy Storchaka, tests by Ezio Melotti. 2012-11-04 23:21:38 +02:00
Mark Dickinson
c992fafddc Issue #16402: Merge fix from 3.3 2012-11-04 11:47:47 +00:00
Mark Dickinson
1321edaa55 Issue #16402: Merge fix from 3.2 2012-11-04 11:47:05 +00:00
Mark Dickinson
8cd1c7681d Issue #16402: In range slicing, fix shadowing of exceptions from __index__ method. 2012-11-04 11:46:17 +00:00
Christian Heimes
e9d08cf450 Fix compilation on Windows 2012-11-03 23:08:27 +01:00
Christian Heimes
d081fbba58 Fix compilation on Windows 2012-11-03 23:08:18 +01:00
Christian Heimes
6d26ade920 Fix compilation on Windows 2012-11-03 23:07:59 +01:00
Ezio Melotti
212843b29f #8401: merge with 3.3. 2012-11-03 21:24:47 +02:00
Ezio Melotti
7376801f61 #8401: merge with 3.2. 2012-11-03 21:22:41 +02:00
Ezio Melotti
c64bcbec4b #8401: assigning an int to a bytearray slice (e.g. b[3:4] = 5) now raises an error. 2012-11-03 21:19:06 +02:00
Stefan Krah
c38c816ea1 Merge 3.3. 2012-11-02 17:55:11 +01:00
Stefan Krah
4af77a0276 Issue #15814: Use hash function that is compatible with the equality
definition from #15573.
2012-11-02 17:49:22 +01:00
Benjamin Peterson
8781d4a84c merge 3.3 2012-10-31 14:22:31 -04:00
Benjamin Peterson
591c921411 merge 3.2 2012-10-31 14:22:25 -04:00
Benjamin Peterson
9892f52145 avoid a function call with redundant checks for dict size 2012-10-31 14:22:12 -04:00
Benjamin Peterson
7503e08588 merge 3.3 (#16345) 2012-10-31 14:10:04 -04:00
Benjamin Peterson
d97eb0d338 merge 3.2 (#16345) 2012-10-31 14:09:11 -04:00
Benjamin Peterson
d1f2cb37a2 only fast-path fromkeys() when the constructor returns a empty dict (closes #16345) 2012-10-31 14:05:55 -04:00
Benjamin Peterson
3cb90241fc merge 3.3 2012-10-31 00:04:42 -04:00