Christian Heimes
82e6b94b95
Fix resource leak in pickle module
...
CID 983309 (#1 of 1): Resource leak (RESOURCE_LEAK)
leaked_storage: Variable unicode_str going out of scope leaks the storage it points to.
2013-06-29 21:37:34 +02:00
Alexandre Vassalotti
4fe2184a0f
Merge 3.3
2013-04-20 21:28:49 -07:00
Alexandre Vassalotti
637c7c475a
Fix reference leak in _pickle.
2013-04-20 21:28:21 -07:00
Alexandre Vassalotti
7c5e094cbf
Make C and Python implementations of pickle load STRING opcodes the same way.
...
The C version tried to remove trailing whitespace between the last quote and
the newline character. I am not sure why it had this because pickle never
generated such pickles---for this to happen repr(some_string) would need to
return trailing whitespace. It was maybe there to make it easier for people
to write pickles in text editors. Anyhow, the Python version doesn't do this
so there is no point keeping this around anymore.
Also, I've changed the exception raised when a bad pickle is encountered.
Again this unlikely to make much difference to anyone though it does make
testing slightly nicer for us.
2013-04-15 23:14:55 -07:00
Antoine Pitrou
af94051a93
Issue #17710 : Fix pickle raising a SystemError on bogus input.
2013-04-15 21:55:14 +02:00
Antoine Pitrou
3034efdd29
Issue #17710 : Fix pickle raising a SystemError on bogus input.
2013-04-15 21:51:09 +02:00
Alexandre Vassalotti
cc7571727f
Style cleanups for pickle.py and _pickle.
2013-04-14 02:25:10 -07:00
Alexandre Vassalotti
6d9e14593e
Merge 3.3
2013-04-14 02:11:16 -07:00
Alexandre Vassalotti
00d83f2d05
Clean up error messages raised by save_reduce in _pickle.
2013-04-14 01:28:01 -07:00
Antoine Pitrou
4b7b0f06b4
gibibytes (Arfrever)
2013-04-07 23:46:52 +02:00
Antoine Pitrou
299978dfe3
Issue #15596 : Faster pickling of unicode strings.
2013-04-07 17:38:11 +02:00
Serhiy Storchaka
f8def28ff0
Issue #17193 : Use binary prefixes (KiB, MiB, GiB) for memory units.
2013-02-16 17:29:56 +02:00
Antoine Pitrou
9982c53c2f
Issue #12848 : The pure Python pickle implementation now treats object lengths as unsigned 32-bit integers, like the C implementation does.
...
Patch by Serhiy Storchaka.
2012-11-24 20:41:34 +01:00
Antoine Pitrou
bf6ecf92fa
Issue #12848 : The pure Python pickle implementation now treats object lengths as unsigned 32-bit integers, like the C implementation does.
...
Patch by Serhiy Storchaka.
2012-11-24 20:40:21 +01:00
Benjamin Peterson
e80b29b5b6
cleanup Ellipsis and NotImplemented strings after we're done
2012-03-16 18:45:31 -05:00
Łukasz Langa
cad1a07bec
minor PEP7-related fix
2012-03-12 23:41:07 +01:00
Łukasz Langa
dbd7825d56
#13842 : check whether PyUnicode_FromString succeeded
2012-03-12 22:59:11 +01:00
Łukasz Langa
f3078fbee2
Fixes #13842 : cannot pickle Ellipsis or NotImplemented.
...
Thanks for James Sanders for the bug report and the patch.
2012-03-12 19:46:12 +01:00
Antoine Pitrou
8d3c290de4
Issue #14166 : Pickler objects now have an optional `dispatch_table` attribute which allows to set custom per-pickler reduction functions.
...
Patch by sbt.
2012-03-04 18:31:48 +01:00
Alexandre Vassalotti
a23d65ccfe
Merge 3.2
2011-12-13 13:22:42 -05:00
Alexandre Vassalotti
3bfc65a25b
Issue #13505 : Make pickling of bytes object compatible with Python 2.
...
Initial patch by sbt.
2011-12-13 13:08:09 -05:00
Victor Stinner
13f0c6166f
_pickle: Fix load_counted_tuple(), use Py_ssize_t for size
...
Fix a warning on Windows 64-bit.
2016-03-14 18:09:39 +01:00
Martin v. Löwis
1c67dd9b15
Port SetAttrString/HasAttrString to SetAttrId/GetAttrId.
2011-10-14 15:16:45 +02:00
Martin v. Löwis
bd928fef42
Rename _Py_identifier to _Py_IDENTIFIER.
2011-10-14 10:20:37 +02:00
Victor Stinner
f5cff56a1b
Issue #13088 : Add shared Py_hexdigits constant to format a number into base 16
2011-10-14 02:13:11 +02:00
Martin v. Löwis
1ee1b6fe0d
Use identifier API for PyObject_GetAttrString.
2011-10-10 18:11:30 +02:00
Martin v. Löwis
afe55bba33
Add API for static strings, primarily good for identifiers.
...
Thanks to Konrad Schöbel and Jasper Schulz for helping with the mass-editing.
2011-10-09 10:38:36 +02:00
Antoine Pitrou
5a688dbf97
Issue #7689 : Allow pickling of dynamically created classes when their
...
metaclass is registered with copyreg. Patch by Nicolas M. Thiéry and
Craig Citro.
2011-10-04 09:25:28 +02:00
Antoine Pitrou
ffd41d9f10
Issue #7689 : Allow pickling of dynamically created classes when their
...
metaclass is registered with copyreg. Patch by Nicolas M. Thiéry and
Craig Citro.
2011-10-04 09:23:04 +02:00
Victor Stinner
c806fdcd8b
raw_unicode_escape() uses the new Unicode API
2011-09-29 23:50:23 +02:00
Victor Stinner
121aab4ba1
Strip trailing spaces of _pickle.c
2011-09-29 23:40:53 +02:00
Martin v. Löwis
d63a3b8beb
Implement PEP 393.
2011-09-28 07:41:54 +02:00
Benjamin Peterson
3454d52434
merge 3.2
2011-09-23 13:53:06 -04:00
Benjamin Peterson
adde86d0e3
fix compiler compliant about \0 not being an opcode
2011-09-23 13:41:41 -04:00
Antoine Pitrou
a514eb95f3
Issue #12847 : Fix a crash with negative PUT and LONG_BINPUT arguments in
...
the C pickle implementation.
2011-08-30 00:28:40 +02:00
Antoine Pitrou
55549ec476
Issue #12847 : Fix a crash with negative PUT and LONG_BINPUT arguments in
...
the C pickle implementation.
2011-08-30 00:27:10 +02:00
Antoine Pitrou
ee763e2acc
Issue #11564 : Avoid crashes when trying to pickle huge objects or containers
...
(more than 2**31 items). Instead, in most cases, an OverflowError is raised.
2011-08-29 23:14:53 +02:00
Antoine Pitrou
82be19f889
Issue #11564 : Avoid crashes when trying to pickle huge objects or containers
...
(more than 2**31 items). Instead, in most cases, an OverflowError is raised.
2011-08-29 23:09:33 +02:00
Antoine Pitrou
e58bffb8ae
Followup to 8e824e09924a: fix regression on 32-bit builds
2011-08-13 20:40:32 +02:00
Antoine Pitrou
3c7e928098
Issue #12744 : Fix inefficient representation of integers
...
between 2**31 and 2**63 on systems with a 64-bit C "long".
2011-08-13 20:15:19 +02:00
Antoine Pitrou
fdf4a27422
Issue #12687 : Fix a possible buffering bug when unpickling text mode (protocol 0, mostly) pickles.
2011-08-11 21:15:53 +02:00
Antoine Pitrou
f6c7a8595e
Issue #12687 : Fix a possible buffering bug when unpickling text mode (protocol 0, mostly) pickles.
2011-08-11 21:04:02 +02:00
Antoine Pitrou
874d65afae
Issue #11321 : Fix a crash with multiple imports of the _pickle module when
...
embedding Python. Patch by Andreas Stührk.
2011-07-15 21:02:09 +02:00
Antoine Pitrou
8391cf4e1d
Issue #11321 : Fix a crash with multiple imports of the _pickle module when
...
embedding Python. Patch by Andreas Stührk.
2011-07-15 21:01:21 +02:00
Ezio Melotti
3b3499ba69
#11565 : Merge with 3.1.
2011-03-16 11:35:38 +02:00
Ezio Melotti
13925008dc
#11565 : Fix several typos. Patch by Piotr Kasprzyk.
2011-03-16 11:05:33 +02:00
Ezio Melotti
b88ed1549e
#11565 : Merge with 3.2.
2011-03-16 11:38:59 +02:00
Antoine Pitrou
16c4ce1903
Issue #9935 : Speed up pickling of instances of user-defined classes.
2011-03-11 21:30:43 +01:00
Alexander Belopolsky
ec8f0df229
Merged revisions 88546 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r88546 | alexander.belopolsky | 2011-02-24 14:40:09 -0500 (Thu, 24 Feb 2011) | 3 lines
Issue #11286 : Fixed unpickling of empty 2.x strings.
........
2011-02-24 20:34:38 +00:00
Alexander Belopolsky
1ce92dc20d
Issue #11286 : Fixed unpickling of empty 2.x strings.
2011-02-24 19:40:09 +00:00
Antoine Pitrou
0f2a61a11e
Merged revisions 88147 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r88147 | antoine.pitrou | 2011-01-23 18:12:25 +0100 (dim., 23 janv. 2011) | 3 lines
Issue #10987 : Fix the recursion limit handling in the _pickle module.
........
2011-01-23 17:21:28 +00:00
Antoine Pitrou
e6d4c5bab8
Issue #10987 : Fix the recursion limit handling in the _pickle module.
2011-01-23 17:12:25 +00:00
Victor Stinner
132ef6cca3
Issue #10359 : Remove useless comma, invalid in ISO C
2010-11-09 09:39:41 +00:00
Antoine Pitrou
ff150f2921
Revert r85797 (and r85798): it broke the Windows buildbots because of
...
test_multiprocessing's misbehaviour.
2010-10-22 21:41:05 +00:00
Antoine Pitrou
7eecffd05d
Issue #9935 : Speed up pickling of instances of user-defined classes.
2010-10-22 19:43:59 +00:00
Georg Brandl
f038b32d0b
Remove more unneeded casts to hashfunc.
2010-10-18 07:35:09 +00:00
Benjamin Peterson
8f67d0893f
make hashes always the size of pointers; introduce Py_hash_t #9778
2010-10-17 20:54:53 +00:00
Antoine Pitrou
04248a8d99
Issue #3873 : Speed up unpickling from file objects which have a peek()
...
method.
2010-10-12 20:51:21 +00:00
Antoine Pitrou
ea99c5c949
Issue #9410 : Various optimizations to the pickle module, leading to
...
speedups up to 4x (depending on the benchmark). Mostly ported from
Unladen Swallow; initial patch by Alexandre Vassalotti.
2010-09-09 18:33:21 +00:00
Antoine Pitrou
ec80478967
Merged revisions 84502 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r84502 | antoine.pitrou | 2010-09-04 20:45:37 +0200 (sam., 04 sept. 2010) | 3 lines
Fix typos in error messages (thanks Arfrever).
........
2010-09-04 18:46:56 +00:00
Antoine Pitrou
1afb39a437
Fix typos in error messages (thanks Arfrever).
2010-09-04 18:45:37 +00:00
Alexander Belopolsky
82a6bf049e
Merged revisions 82937 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r82937 | alexander.belopolsky | 2010-07-17 18:50:45 -0400 (Sat, 17 Jul 2010) | 3 lines
Issue #5180 : Fixed a bug that prevented loading 2.x pickles in 3.x
python when they contain instances of old-style classes.
........
2010-07-17 23:01:39 +00:00
Alexander Belopolsky
d92f04062a
Issue #5180 : Fixed a bug that prevented loading 2.x pickles in 3.x
...
python when they contain instances of old-style classes.
2010-07-17 22:50:45 +00:00
Victor Stinner
f7351b40b5
Merged revisions 80031 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r80031 | victor.stinner | 2010-04-13 13:07:24 +0200 (mar., 13 avril 2010) | 4 lines
Issue #8383 : pickle and pickletools use surrogatepass error handler when
encoding unicode as utf8 to support lone surrogates and stay compatible with
Python 2.x and 3.0
........
2010-04-13 11:09:22 +00:00
Victor Stinner
485fb56eb8
Issue #8383 : pickle and pickletools use surrogatepass error handler when
...
encoding unicode as utf8 to support lone surrogates and stay compatible with
Python 2.x and 3.0
2010-04-13 11:07:24 +00:00
Antoine Pitrou
901d81e672
Merged revisions 77355 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/branches/py3k
................
r77355 | antoine.pitrou | 2010-01-07 18:57:31 +0100 (jeu., 07 janv. 2010) | 18 lines
Merged revisions 77352-77354 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r77352 | antoine.pitrou | 2010-01-07 18:46:49 +0100 (jeu., 07 janv. 2010) | 5 lines
Issue #7455 : Fix possible crash in cPickle on invalid input. Patch by
Florent Xicluna.
........
r77353 | antoine.pitrou | 2010-01-07 18:49:37 +0100 (jeu., 07 janv. 2010) | 3 lines
Fix attribution. Florent actually repackaged and reviewed Victor's patch (sorry!).
........
r77354 | antoine.pitrou | 2010-01-07 18:54:10 +0100 (jeu., 07 janv. 2010) | 3 lines
Fix reattribution mistake when fixing attribution mistake!
........
................
2010-01-07 18:02:53 +00:00
Antoine Pitrou
01a15ea2b6
Merged revisions 77352-77354 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r77352 | antoine.pitrou | 2010-01-07 18:46:49 +0100 (jeu., 07 janv. 2010) | 5 lines
Issue #7455 : Fix possible crash in cPickle on invalid input. Patch by
Florent Xicluna.
........
r77353 | antoine.pitrou | 2010-01-07 18:49:37 +0100 (jeu., 07 janv. 2010) | 3 lines
Fix attribution. Florent actually repackaged and reviewed Victor's patch (sorry!).
........
r77354 | antoine.pitrou | 2010-01-07 18:54:10 +0100 (jeu., 07 janv. 2010) | 3 lines
Fix reattribution mistake when fixing attribution mistake!
........
2010-01-07 17:57:31 +00:00
Antoine Pitrou
d9dfaa9487
Issue #6137 : The pickle module now translates module names when loading
...
or dumping pickles with a 2.x-compatible protocol, in order to make data
sharing and migration easier. This behaviour can be disabled using the
new `fix_imports` optional argument.
2009-06-04 20:32:06 +00:00
Collin Winter
8ca69de237
Merged revisions 72930 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r72930 | collin.winter | 2009-05-25 21:12:39 -0700 (Mon, 25 May 2009) | 1 line
Issue 5794: fix cPickle's unpickling of recursive tuples.
........
2009-05-26 16:53:41 +00:00
Alexandre Vassalotti
f70b129d7c
Make variable declarations for opcodes in batch_dict_exact consistent
...
with the rest of the module.
2009-05-25 18:00:52 +00:00
Collin Winter
5c9b02dffe
Merged revisions 72909 via svnmerge from
...
http://svn.python.org/projects/python/trunk
Note that the performance improvement for the py3k branch is not as high as for trunk.
........
r72909 | collin.winter | 2009-05-24 21:34:39 -0700 (Sun, 24 May 2009) | 2 lines
Issue 5670: special-case pickling of dicts. This nearly doubles the performance of dict pickling in cPickle.
........
2009-05-25 05:43:30 +00:00
Mark Dickinson
725bfd8489
Issue #5914 : Add new C-API function PyOS_string_to_double, to complement
...
PyOS_double_to_string, and deprecate PyOS_ascii_strtod and PyOS_ascii_atof.
2009-05-03 20:33:40 +00:00
Antoine Pitrou
a9f48a0d4f
Merged revisions 72223 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r72223 | antoine.pitrou | 2009-05-02 23:13:23 +0200 (sam., 02 mai 2009) | 5 lines
Isue #5084 : unpickling now interns the attribute names of pickled objects,
saving memory and avoiding growth in size of subsequent pickles. Proposal
and original patch by Jake McGuire.
........
2009-05-02 21:41:14 +00:00
Mark Dickinson
3e09f43e06
Make sure that marshal and pickle continue to output 17
...
digits of precision for floats.
2009-04-17 08:41:23 +00:00
Eric Smith
0923d1d8d7
The other half of Issue #1580 : use short float repr where possible.
...
Addresses the float -> string conversion, using David Gay's code which
was added in Mark Dickinson's checkin r71663.
Also addresses these, which are intertwined with the short repr
changes:
- Issue #5772 : format(1e100, '<') produces '1e+100', not '1.0e+100'
- Issue #5515 : 'n' formatting with commas no longer works poorly
with leading zeros.
- PEP 378 Format Specifier for Thousands Separator: implemented
for floats.
2009-04-16 20:16:10 +00:00
Alexandre Vassalotti
0e7aa8c13c
Update a comment about why the __module__ can sometime be NULL.
...
Initialize last_string and arg member of Unpickler.
2009-04-03 04:17:41 +00:00
Mark Dickinson
e94c679df0
Issue #1717 : rename tp_compare to tp_reserved. I'll change the
...
type of tp_compare in a separate commit, for ease of reversion
should things go wrong.
2009-02-02 20:36:42 +00:00
Mark Dickinson
211c625829
Issue #1717 , stage 2: remove uses of tp_compare in Modules and most
...
Objects.
2009-02-01 10:28:51 +00:00
Mark Dickinson
cddcf444b2
Merged revisions 68903,68906 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r68903 | mark.dickinson | 2009-01-24 16:40:29 +0000 (Sat, 24 Jan 2009) | 5 lines
Issue #1672332 : Fix unpickling of subnormal floats, which was raising
ValueError on some platforms as a result of the platform strtod setting
errno on underflow.
........
r68906 | mark.dickinson | 2009-01-24 21:08:38 +0000 (Sat, 24 Jan 2009) | 2 lines
Issue #3657 : fix occasional test_pickletools failures.
........
2009-01-24 21:46:33 +00:00
Alexandre Vassalotti
e4bccb7146
Factor common branch in load_long().
...
Suggested by Neal Norwitz.
2009-01-24 01:47:57 +00:00
Alexandre Vassalotti
446f7ffa0f
Remove unnecessary copying in load_long().
2009-01-23 04:43:46 +00:00
Mark Dickinson
8dd05147d6
Issue #4842 , patch 1/2: fix pickle in Python 3.x so that pickling with the
...
'L' opcode always appends an 'L' on output, just as 2.x does. When
unpickling, remove the trailing 'L' (if present) before passing the
result to PyLong_FromString.
2009-01-20 20:43:58 +00:00
Alexandre Vassalotti
554d878b1c
Update copy of PyUnicode_EncodeRawUnicodeEscape in _pickle.
...
Add astral character test case.
2008-12-27 07:32:41 +00:00
Amaury Forgeot d'Arc
5f95257ef9
#4373 : Reference leak in the pickle module.
...
Reviewed by Brett Cannon.
2008-11-25 21:11:54 +00:00
Amaury Forgeot d'Arc
3e4e72f66f
#4298 : pickle.load() can segfault on invalid or truncated input.
...
Patch and test by Hirokazu Yamamoto.
2008-11-11 20:05:06 +00:00
Hirokazu Yamamoto
b46a633eaf
Sorry, r67092 is commit miss....
2008-11-04 00:35:10 +00:00
Hirokazu Yamamoto
1543a22d86
Blocked revisions 67002 via svnmerge
...
........
r67002 | hirokazu.yamamoto | 2008-10-23 09:37:33 +0900 | 1 line
Issue #4183 : Some tests didn't run with pickle.HIGHEST_PROTOCOL.
........
2008-11-04 00:31:31 +00:00
Amaury Forgeot d'Arc
424b4819be
Merged revisions 67049 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r67049 | amaury.forgeotdarc | 2008-10-30 22:18:34 +0100 (jeu., 30 oct. 2008) | 8 lines
Issue #4176 : Pickle would crash the interpreter when a __reduce__ function
does not return an iterator for the 4th and 5th items.
(sequence-like and mapping-like state)
A list is not an iterator...
Will backport to 2.6 and 2.5.
........
2008-10-30 22:25:31 +00:00
Amaury Forgeot d'Arc
87eee631fb
#3664 : The pickle module could segfault if a Pickler instance is not correctly initialized:
...
when a subclass forgets to call the base __init__ method,
or when __init__ is called a second time with invalid parameters
Patch by Alexandre Vassalotti.
2008-10-17 20:15:53 +00:00
Amaury Forgeot d'Arc
fb1a5eb101
#3640 : Correct a crash in cPickle on 64bit platforms, in the case of deeply nested lists or dicts.
...
Reviewed by Martin von Loewis.
2008-09-11 21:03:37 +00:00
Antoine Pitrou
d79dc6216c
Issue #3660 (part of): fix a memory leak in _pickle.
...
Patch by Amaury Forgeot d'Arc, review by me.
2008-09-05 00:03:33 +00:00
Neal Norwitz
6ae2eb268d
Issue #3657 : Fix uninitialized memory read when pickling longs.
...
The conversion to the unicode API was incorrect, it should use bytes.
repr is a bad variable name. The use is overloaded, but I'll leave
that to fix later.
R=Brett
TESTED=./python -E -tt ./Lib/test/regrtest.py -uall
valgrind -q --leak-check=yes --suppressions=Misc/valgrind-python.supp \
./python -E -tt ./Lib/test/regrtest.py test_pickletools
2008-08-24 23:50:08 +00:00
Alexandre Vassalotti
1f9d907c90
Issue 3514: Fixed segfault dues to infinite loop in __getattr__.
2008-08-15 03:07:47 +00:00
Marc-André Lemburg
4cc0f24857
Rename PyUnicode_AsString -> _PyUnicode_AsString and
...
PyUnicode_AsStringAndSize -> _PyUnicode_AsStringAndSize to mark
them for interpreter internal use only.
We'll have to rework these APIs or create new ones for the
purpose of accessing the UTF-8 representation of Unicode objects
for 3.1.
2008-08-07 18:54:33 +00:00
Alexandre Vassalotti
dff1834f45
Fixed _pickle to use Py_EnterRecursiveCall().
2008-07-13 18:48:30 +00:00
Alexandre Vassalotti
7634ff5ad6
Fixed compiler warnings on MSVC9.0
2008-06-13 02:16:06 +00:00
Alexandre Vassalotti
ca2d610dba
Restore _pickle module accelerator module.
...
Removed Windows support temporarily.
64bit bug with integer unpickling is now fixed.
2008-06-12 18:26:05 +00:00
Benjamin Peterson
75f25f2c9a
revert the addition of _pickle because it was causing havok with 64-bit
2008-06-12 03:10:02 +00:00
Alexandre Vassalotti
cc313061a5
Issue 2917: Merge the pickle and cPickle module.
2008-06-11 22:43:06 +00:00