diff Objects/bytesobject.c @ 41426:4561f6da3b7d

Real pickling for bytes. Restore complex pickling. Use cPickle in io.py.
author Guido van Rossum <guido@python.org>
date Wed, 11 Apr 2007 05:40:58 +0000
parents 522b3f35d0eb
children 458c8db2e946
line wrap: on
line diff
--- a/Objects/bytesobject.c	Wed Apr 11 04:37:43 2007 +0000
+++ b/Objects/bytesobject.c	Wed Apr 11 05:40:58 2007 +0000
@@ -2598,6 +2598,17 @@
     return NULL;
 }
 
+PyDoc_STRVAR(reduce_doc, "Return state information for pickling.");
+
+static PyObject *
+bytes_reduce(PyBytesObject *self)
+{
+    return Py_BuildValue("(O(s#))",
+                         self->ob_type,
+                         self->ob_bytes == NULL ? "" : self->ob_bytes,
+                         self->ob_size);
+}
+
 static PySequenceMethods bytes_as_sequence = {
     (lenfunc)bytes_length,              /* sq_length */
     (binaryfunc)bytes_concat,           /* sq_concat */
@@ -2650,8 +2661,10 @@
     {"remove", (PyCFunction)bytes_remove, METH_O, remove__doc__},
     {"decode", (PyCFunction)bytes_decode, METH_VARARGS, decode_doc},
     {"__alloc__", (PyCFunction)bytes_alloc, METH_NOARGS, alloc_doc},
-    {"fromhex", (PyCFunction)bytes_fromhex, METH_VARARGS|METH_CLASS, fromhex_doc},
+    {"fromhex", (PyCFunction)bytes_fromhex, METH_VARARGS|METH_CLASS,
+     fromhex_doc},
     {"join", (PyCFunction)bytes_join, METH_O|METH_CLASS, join_doc},
+    {"__reduce__", (PyCFunction)bytes_reduce, METH_NOARGS, reduce_doc},
     {NULL}
 };