]> granicus.if.org Git - python/commitdiff
fixed a memory leak in pattern cleanup (patch #103248 by cgw)
authorFredrik Lundh <fredrik@pythonware.com>
Tue, 16 Jan 2001 07:05:29 +0000 (07:05 +0000)
committerFredrik Lundh <fredrik@pythonware.com>
Tue, 16 Jan 2001 07:05:29 +0000 (07:05 +0000)
Modules/_sre.c

index efb704bdf573b817da0cf0e77b037dc85c612116..f308dacdc0467b378cd99be240add3304b840b44 100644 (file)
@@ -24,7 +24,8 @@
  * 2000-10-24 fl  really fixed assert_not; reset groups in findall
  * 2000-12-21 fl  fixed memory leak in groupdict
  * 2001-01-02 fl  properly reset pointer after failed assertion in MIN_UNTIL
- * 2001-01-15 fl  don't use recursion for unbounded MIN_UTIL
+ * 2001-01-15 fl  don't use recursion for unbounded MIN_UTIL; fixed
+ * 2001-01-16 fl  fixed memory leak in pattern destructor
  *
  * Copyright (c) 1997-2001 by Secret Labs AB.  All rights reserved.
  *
@@ -1234,8 +1235,10 @@ _compile(PyObject* self_, PyObject* args)
 
     Py_DECREF(code);
 
-    if (PyErr_Occurred())
+    if (PyErr_Occurred()) {
+        PyObject_DEL(self);
         return NULL;
+    }
 
     Py_INCREF(pattern);
     self->pattern = pattern;
@@ -1532,6 +1535,7 @@ pattern_dealloc(PatternObject* self)
 {
     Py_XDECREF(self->pattern);
     Py_XDECREF(self->groupindex);
+    Py_XDECREF(self->indexgroup);
     PyObject_DEL(self);
 }