Correct previous checkin, probably a svn merge issue.
Now the code is similar to the one in trunk/.
The behavior was funny:
>>> print (), repr(())
(), ()
>>> print (), repr(())
(), (...)
diff --git a/Objects/tupleobject.c b/Objects/tupleobject.c
index 56a1024..b68c80e 100644
--- a/Objects/tupleobject.c
+++ b/Objects/tupleobject.c
@@ -208,6 +208,10 @@
PyObject *s, *temp;
PyObject *pieces, *result = NULL;
+ n = v->ob_size;
+ if (n == 0)
+ return PyString_FromString("()");
+
/* While not mutable, it is still possible to end up with a cycle in a
tuple through an object that stores itself within a tuple (and thus
infinitely asks for the repr of itself). This should only be
@@ -217,10 +221,6 @@
return i > 0 ? PyString_FromString("(...)") : NULL;
}
- n = v->ob_size;
- if (n == 0)
- return PyString_FromString("()");
-
pieces = PyTuple_New(n);
if (pieces == NULL)
return NULL;