Fix a few more memory leaks

Document more info about the benefits of configuring without
pymalloc when running valgrind
This commit is contained in:
Neal Norwitz 2005-11-20 23:58:38 +00:00
parent 4aef41ffe7
commit 7bcabc60a3
4 changed files with 29 additions and 3 deletions

View file

@ -1054,8 +1054,12 @@ ast_for_listcomp(struct compiling *c, const node *n)
return NULL;
}
if (asdl_seq_LEN(t) == 1)
if (asdl_seq_LEN(t) == 1) {
lc = comprehension(asdl_seq_GET(t, 0), expression, NULL);
/* only free the sequence since we grabbed element 0 above */
if (lc)
asdl_seq_free(t); /* ok */
}
else
lc = comprehension(Tuple(t, Store, LINENO(ch)), expression, NULL);
@ -1222,9 +1226,13 @@ ast_for_genexp(struct compiling *c, const node *n)
return NULL;
}
if (asdl_seq_LEN(t) == 1)
if (asdl_seq_LEN(t) == 1) {
ge = comprehension(asdl_seq_GET(t, 0), expression,
NULL);
/* only free the sequence since we grabbed element 0 above */
if (ge)
asdl_seq_free(t); /* ok */
}
else
ge = comprehension(Tuple(t, Store, LINENO(ch)),
expression, NULL);

View file

@ -2384,7 +2384,10 @@ compiler_import_as(struct compiler *c, identifier name, identifier asname)
dot = strchr(src, '.');
attr = PyString_FromStringAndSize(src,
dot ? dot - src : strlen(src));
if (!attr)
return -1;
ADDOP_O(c, LOAD_ATTR, attr, names);
Py_DECREF(attr);
src = dot + 1;
}
}

View file

@ -82,6 +82,7 @@ Py_InitModule4(char *name, PyMethodDef *methods, char *doc,
}
Py_DECREF(v);
}
Py_DECREF(n);
}
if (doc != NULL) {
v = PyString_FromString(doc);