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;