python api leak
      
        was looking at the gimps python API, svn - gimp-pdb.c:311
GimpParam *
pygimp_param_from_tuple(PyObject *args, const GimpParamDef *ptype, int 
nparams)
{
     PyObject *tuple, *item, *r, *g, *b, *x, *y, *w, *h;
     GimpParam *ret;
     int i, j, len;
     gint32 *i32a; gint16 *i16a; guint8 *i8a; gdouble *fa; gchar **sa;
     if (nparams == 0)
	tuple = PyTuple_New(0);
     else if (!PyTuple_Check(args) && nparams == 1)
	tuple = Py_BuildValue("(O)", args);
     else {
	Py_INCREF(args);
	tuple = args;
     }
     if (!PyTuple_Check(tuple)) {
	PyErr_SetString(PyExc_TypeError, "wrong type of parameter");
	return NULL;
     }
     if (PyTuple_Size(tuple) != nparams) {
	PyErr_SetString(PyExc_TypeError, "wrong number of parameters");
	return NULL;
     }
--- snip
Notice that tuple is always created, but error values dont free, I think 
both "return NULL;"'s need a Py_DECREF(tuple); before them.