[Python-checkins] cpython: PyObject_Repr() ensures that the result is a ready Unicode string
victor.stinner
python-checkins at python.org
Thu Dec 1 02:52:11 CET 2011
http://hg.python.org/cpython/rev/c5d2ce38b0d3
changeset: 73799:c5d2ce38b0d3
user: Victor Stinner <victor.stinner at haypocalc.com>
date: Thu Dec 01 02:15:00 2011 +0100
summary:
PyObject_Repr() ensures that the result is a ready Unicode string
And PyObject_Str() and PyObject_Repr() don't make strings ready in debug
mode to ensure that the caller makes the string ready before using it.
files:
Objects/object.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/Objects/object.c b/Objects/object.c
--- a/Objects/object.c
+++ b/Objects/object.c
@@ -385,6 +385,10 @@
Py_DECREF(res);
return NULL;
}
+#ifndef Py_DEBUG
+ if (PyUnicode_READY(res) < 0)
+ return NULL;
+#endif
return res;
}
@@ -403,8 +407,10 @@
if (v == NULL)
return PyUnicode_FromString("<NULL>");
if (PyUnicode_CheckExact(v)) {
+#ifndef Py_DEBUG
if (PyUnicode_READY(v) < 0)
return NULL;
+#endif
Py_INCREF(v);
return v;
}
@@ -426,8 +432,10 @@
Py_DECREF(res);
return NULL;
}
+#ifndef Py_DEBUG
if (PyUnicode_READY(res) < 0)
return NULL;
+#endif
assert(_PyUnicode_CheckConsistency(res, 1));
return res;
}
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list