Mercurial > cpython-lru_cache-weakref
diff Modules/_json.c @ 49531:a53bb8330a64
Merged revisions 66938,66942 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r66938 | benjamin.peterson | 2008-10-16 16:27:54 -0500 (Thu, 16 Oct 2008) | 1 line
fix possible ref leak
........
r66942 | benjamin.peterson | 2008-10-16 16:48:06 -0500 (Thu, 16 Oct 2008) | 1 line
fix more possible ref leaks in _json and use Py_CLEAR
........
| author | Benjamin Peterson <benjamin@python.org> |
|---|---|
| date | Thu, 16 Oct 2008 21:56:24 +0000 |
| parents | 00e467db6182 |
| children | f686aced02a3 |
line wrap: on
line diff
--- a/Modules/_json.c Thu Oct 16 21:17:24 2008 +0000 +++ b/Modules/_json.c Thu Oct 16 21:56:24 2008 +0000 @@ -276,6 +276,7 @@ goto bail; } if (PyList_Append(chunks, chunk)) { + Py_DECREF(chunk); goto bail; } Py_DECREF(chunk); @@ -377,6 +378,7 @@ goto bail; } if (PyList_Append(chunks, chunk)) { + Py_DECREF(chunk); goto bail; } Py_DECREF(chunk); @@ -386,8 +388,7 @@ if (rval == NULL) { goto bail; } - Py_DECREF(chunks); - chunks = NULL; + Py_CLEAR(chunks); return Py_BuildValue("(Nn)", rval, end); bail: Py_XDECREF(chunks); @@ -436,6 +437,7 @@ goto bail; } if (PyList_Append(chunks, chunk)) { + Py_DECREF(chunk); goto bail; } Py_DECREF(chunk); @@ -537,6 +539,7 @@ goto bail; } if (PyList_Append(chunks, chunk)) { + Py_DECREF(chunk); goto bail; } Py_DECREF(chunk); @@ -546,8 +549,7 @@ if (rval == NULL) { goto bail; } - Py_DECREF(chunks); - chunks = NULL; + Py_CLEAR(chunks); return Py_BuildValue("(Nn)", rval, end); bail: Py_XDECREF(chunks);
