Fix a few more memory leaks
Document more info about the benefits of configuring without
pymalloc when running valgrind
diff --git a/Python/ast.c b/Python/ast.c
index 87a9a4b..731bf9a 100644
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -1054,8 +1054,12 @@
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 @@
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);