diff options
author | Neal Norwitz <nnorwitz@gmail.com> | 2005-11-20 23:58:38 (GMT) |
---|---|---|
committer | Neal Norwitz <nnorwitz@gmail.com> | 2005-11-20 23:58:38 (GMT) |
commit | 7bcabc60a36eb5910bd162d54ece449f5249bbcd (patch) | |
tree | cef5c71fedb71b1e9d24df5f58bded565ba1691d /Python/ast.c | |
parent | 4aef41ffe7bee84f3b6440f4d76099cd030d058b (diff) | |
download | cpython-7bcabc60a36eb5910bd162d54ece449f5249bbcd.zip cpython-7bcabc60a36eb5910bd162d54ece449f5249bbcd.tar.gz cpython-7bcabc60a36eb5910bd162d54ece449f5249bbcd.tar.bz2 |
Fix a few more memory leaks
Document more info about the benefits of configuring without
pymalloc when running valgrind
Diffstat (limited to 'Python/ast.c')
-rw-r--r-- | Python/ast.c | 12 |
1 files changed, 10 insertions, 2 deletions
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 @@ 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); |