Mercurial > cpython-lru_cache-weakref
diff Objects/stringobject.c @ 21254:19186b17d25a legacy-trunk
Little stuff.
Add a missing DECREF in an obscure corner. If the str() or repr() of
an object passed to a string interpolation -- e.g. "%s" % obj --
returns a non-string, the returned object was leaked.
Repair an indentation glitch.
Replace a bunch of PyString_AsString() calls (and their ilk) with
macros.
| author | Jeremy Hylton <jeremy@alum.mit.edu> |
|---|---|
| date | Thu, 06 Dec 2001 15:18:48 +0000 |
| parents | 8e7245460d30 |
| children | 2f2abeeefd87 |
line wrap: on
line diff
--- a/Objects/stringobject.c Thu Dec 06 14:34:58 2001 +0000 +++ b/Objects/stringobject.c Thu Dec 06 15:18:48 2001 +0000 @@ -3146,15 +3146,15 @@ return NULL; } orig_args = args; - fmt = PyString_AsString(format); - fmtcnt = PyString_Size(format); + fmt = PyString_AS_STRING(format); + fmtcnt = PyString_GET_SIZE(format); reslen = rescnt = fmtcnt + 100; result = PyString_FromStringAndSize((char *)NULL, reslen); if (result == NULL) return NULL; res = PyString_AsString(result); if (PyTuple_Check(args)) { - arglen = PyTuple_Size(args); + arglen = PyTuple_GET_SIZE(args); argidx = 0; } else { @@ -3170,7 +3170,7 @@ reslen += rescnt; if (_PyString_Resize(&result, reslen) < 0) return NULL; - res = PyString_AsString(result) + res = PyString_AS_STRING(result) + reslen - rescnt; --rescnt; } @@ -3351,7 +3351,7 @@ } #endif if (c == 's') - temp = PyObject_Str(v); + temp = PyObject_Str(v); else temp = PyObject_Repr(v); if (temp == NULL) @@ -3359,10 +3359,11 @@ if (!PyString_Check(temp)) { PyErr_SetString(PyExc_TypeError, "%s argument has non-string str()"); + Py_DECREF(temp); goto error; } - pbuf = PyString_AsString(temp); - len = PyString_Size(temp); + pbuf = PyString_AS_STRING(temp); + len = PyString_GET_SIZE(temp); if (prec >= 0 && len > prec) len = prec; break; @@ -3441,7 +3442,7 @@ reslen += rescnt; if (_PyString_Resize(&result, reslen) < 0) return NULL; - res = PyString_AsString(result) + res = PyString_AS_STRING(result) + reslen - rescnt; } if (sign) {
