Merged revisions 81709-81710 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r81709 | benjamin.peterson | 2010-06-04 19:56:46 -0500 (Fri, 04 Jun 2010) | 1 line

  implement object.__format__ with PyObject_Format
........
  r81710 | benjamin.peterson | 2010-06-04 20:00:10 -0500 (Fri, 04 Jun 2010) | 1 line

  fix ref counting
........
This commit is contained in:
Benjamin Peterson 2010-06-05 01:03:24 +00:00
parent da2cf04c28
commit c03d7571c4
1 changed files with 2 additions and 10 deletions

View File

@ -3310,23 +3310,15 @@ object_format(PyObject *self, PyObject *args)
PyObject *format_spec;
PyObject *self_as_str = NULL;
PyObject *result = NULL;
PyObject *format_meth = NULL;
if (!PyArg_ParseTuple(args, "U:__format__", &format_spec))
return NULL;
self_as_str = PyObject_Str(self);
if (self_as_str != NULL) {
/* find the format function */
format_meth = PyObject_GetAttrString(self_as_str, "__format__");
if (format_meth != NULL) {
/* and call it */
result = PyObject_CallFunctionObjArgs(format_meth, format_spec, NULL);
}
}
if (self_as_str != NULL)
result = PyObject_Format(self_as_str, format_spec);
Py_XDECREF(self_as_str);
Py_XDECREF(format_meth);
return result;
}