summaryrefslogtreecommitdiff
path: root/Python/ast.c
diff options
context:
space:
mode:
Diffstat (limited to 'Python/ast.c')
-rw-r--r--Python/ast.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/Python/ast.c b/Python/ast.c
index 9e8d911a87..ca832aa5e1 100644
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -622,10 +622,10 @@ ast_for_arguments(struct compiling *c, const node *n)
}
args = (n_args ? asdl_seq_new(n_args, c->c_arena) : NULL);
if (!args && n_args)
- return NULL; /* Don't need to go to NULL; nothing allocated */
+ return NULL; /* Don't need to goto error; no objects allocated */
defaults = (n_defaults ? asdl_seq_new(n_defaults, c->c_arena) : NULL);
if (!defaults && n_defaults)
- goto error;
+ return NULL; /* Don't need to goto error; no objects allocated */
/* fpdef: NAME | '(' fplist ')'
fplist: fpdef (',' fpdef)* [',']
@@ -644,6 +644,7 @@ ast_for_arguments(struct compiling *c, const node *n)
expr_ty expression = ast_for_expr(c, CHILD(n, i + 2));
if (!expression)
goto error;
+ assert(defaults != NULL);
asdl_seq_SET(defaults, j++, expression);
i += 2;
found_default = 1;