Mercurial > cpython-lru_cache-weakref
diff Python/ast.c @ 35874:44d63eedfaca legacy-trunk
Add a note about how to do the memory deallocation a bit.
This needs a lot of work.
| author | Neal Norwitz <nnorwitz@gmail.com> |
|---|---|
| date | Tue, 15 Nov 2005 05:09:44 +0000 |
| parents | 76ed7fdc9d85 |
| children | 086caccfff0e |
line wrap: on
line diff
--- a/Python/ast.c Tue Nov 15 05:04:31 2005 +0000 +++ b/Python/ast.c Tue Nov 15 05:09:44 2005 +0000 @@ -20,6 +20,26 @@ - syntax errors */ +/* + Note: + + You should rarely need to use the asdl_seq_free() in this file. + If you use asdl_seq_free(), you will leak any objects held in the seq. + If there is an appropriate asdl_*_seq_free() function, use it. + If there isn't an asdl_*_seq_free() function for you, you will + need to loop over the data in the sequence and free it. + + asdl_seq* seq; + int i; + + for (i = 0; i < asdl_seq_LEN(seq); i++) + free_***(asdl_seq_GET(seq, i)); + asdl_seq_free(seq); + + Almost all of the ast functions return a seq of expr, so you should + use asdl_expr_seq_free(). The exception is ast_for_suite() which + returns a seq of stmt's, so use asdl_stmt_seq_free() to free it. +*/ /* Data structure used internally */ struct compiling {
