Nailed a couple of memory leaks, caught by Purify.
diff --git a/Modules/regexmodule.c b/Modules/regexmodule.c
index 981a6e9..695c2d2 100644
--- a/Modules/regexmodule.c
+++ b/Modules/regexmodule.c
@@ -518,6 +518,8 @@
Py_XDECREF(npattern);
return NULL;
}
+ Py_DECREF(group_name);
+ Py_DECREF(group_index);
++o; /* eat the '>' */
break;
}
@@ -573,6 +575,7 @@
PyObject *tran = NULL;
PyObject *gdict = NULL;
PyObject *npattern;
+ PyObject *retval = NULL;
if (!PyArg_ParseTuple(args, "S|S", &pattern, &tran))
return NULL;
@@ -583,7 +586,9 @@
Py_DECREF(pattern);
return NULL;
}
- return newregexobject(npattern, tran, pattern, gdict);
+ retval = newregexobject(npattern, tran, pattern, gdict);
+ Py_DECREF(npattern);
+ return retval;
}