summaryrefslogtreecommitdiff
path: root/Lib/pickle.py
diff options
context:
space:
mode:
authorAlexandre Vassalotti <alexandre@peadrop.com>2011-12-13 13:08:09 -0500
committerAlexandre Vassalotti <alexandre@peadrop.com>2011-12-13 13:08:09 -0500
commit0d0c6c95f1cd4ff72e53bed83a388d969ab605b2 (patch)
tree2fe7d646d55ce016d7e557b9ca75f6739c38e39e /Lib/pickle.py
parentc1318c6d4c618f67008ac84b24134914d23afd12 (diff)
downloadcpython-0d0c6c95f1cd4ff72e53bed83a388d969ab605b2.tar.gz
Issue #13505: Make pickling of bytes object compatible with Python 2.
Initial patch by sbt.
Diffstat (limited to 'Lib/pickle.py')
-rw-r--r--Lib/pickle.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/Lib/pickle.py b/Lib/pickle.py
index 1f45f37d46..d10ac776cf 100644
--- a/Lib/pickle.py
+++ b/Lib/pickle.py
@@ -487,7 +487,11 @@ class _Pickler:
def save_bytes(self, obj, pack=struct.pack):
if self.proto < 3:
- self.save_reduce(bytes, (list(obj),), obj=obj)
+ if len(obj) == 0:
+ self.save_reduce(bytes, (), obj=obj)
+ else:
+ self.save_reduce(codecs.encode,
+ (str(obj, 'latin1'), 'latin1'), obj=obj)
return
n = len(obj)
if n < 256: