From 5d9113d8be81596bc93f2b1a37f57e5110d39a77 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Wed, 29 Jan 2003 17:58:45 +0000 Subject: Implement appropriate __getnewargs__ for all immutable subclassable builtin types. The special handling for these can now be removed from save_newobj(). Add some testing for this. Also add support for setting the 'fast' flag on the Python Pickler class, which suppresses use of the memo. --- Objects/tupleobject.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'Objects/tupleobject.c') diff --git a/Objects/tupleobject.c b/Objects/tupleobject.c index 3a8f072a26..d6d0aaaf7f 100644 --- a/Objects/tupleobject.c +++ b/Objects/tupleobject.c @@ -587,6 +587,18 @@ tuplesubscript(PyTupleObject* self, PyObject* item) } } +static PyObject * +tuple_getnewargs(PyTupleObject *v) +{ + return Py_BuildValue("(N)", tupleslice(v, 0, v->ob_size)); + +} + +static PyMethodDef tuple_methods[] = { + {"__getnewargs__", (PyCFunction)tuple_getnewargs, METH_NOARGS}, + {NULL, NULL} /* sentinel */ +}; + static PyMappingMethods tuple_as_mapping = { (inquiry)tuplelength, (binaryfunc)tuplesubscript, @@ -625,7 +637,7 @@ PyTypeObject PyTuple_Type = { 0, /* tp_weaklistoffset */ tuple_iter, /* tp_iter */ 0, /* tp_iternext */ - 0, /* tp_methods */ + tuple_methods, /* tp_methods */ 0, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */ -- cgit v1.2.1