Mercurial > cpython-lru_cache-weakref
diff Python/codecs.c @ 25484:cac1b034b903 2.2
Backport mhammond's 2.14:
Fix bug [ 549731 ] Unicode encoders appears to leak references.
Python 2.2.1 bugfix candidate.
| author | Michael W. Hudson <mwh@python.net> |
|---|---|
| date | Mon, 30 Sep 2002 10:52:21 +0000 |
| parents | 898304f6da23 |
| children | a8d6576b95af |
line wrap: on
line diff
--- a/Python/codecs.c Mon Sep 30 10:31:13 2002 +0000 +++ b/Python/codecs.c Mon Sep 30 10:52:21 2002 +0000 @@ -271,6 +271,7 @@ if (codecs == NULL) goto onError; v = PyTuple_GET_ITEM(codecs,0); + Py_DECREF(codecs); Py_INCREF(v); return v; @@ -287,6 +288,7 @@ if (codecs == NULL) goto onError; v = PyTuple_GET_ITEM(codecs,1); + Py_DECREF(codecs); Py_INCREF(v); return v; @@ -298,12 +300,14 @@ PyObject *stream, const char *errors) { - PyObject *codecs; + PyObject *codecs, *ret; codecs = _PyCodec_Lookup(encoding); if (codecs == NULL) goto onError; - return build_stream_codec(PyTuple_GET_ITEM(codecs,2),stream,errors); + ret = build_stream_codec(PyTuple_GET_ITEM(codecs,2),stream,errors); + Py_DECREF(codecs); + return ret; onError: return NULL; @@ -313,12 +317,14 @@ PyObject *stream, const char *errors) { - PyObject *codecs; + PyObject *codecs, *ret; codecs = _PyCodec_Lookup(encoding); if (codecs == NULL) goto onError; - return build_stream_codec(PyTuple_GET_ITEM(codecs,3),stream,errors); + ret = build_stream_codec(PyTuple_GET_ITEM(codecs,3),stream,errors); + Py_DECREF(codecs); + return ret; onError: return NULL;
