summaryrefslogtreecommitdiffstats
path: root/Python/ast.c
diff options
context:
space:
mode:
Diffstat (limited to 'Python/ast.c')
-rw-r--r--Python/ast.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/Python/ast.c b/Python/ast.c
index 273cf33..428b0cd 100644
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -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 {