remove VISIT_*_IN_BLOCK macros

These are pointless because on error, all blocks will be finalized by
symtable_dealloc.
This commit is contained in:
Benjamin Peterson 2011-06-29 15:27:14 -05:00
parent e15bfeb8ce
commit c2575d55cd
1 changed files with 10 additions and 41 deletions

View File

@ -1029,12 +1029,6 @@ error:
if (!symtable_visit_ ## TYPE((ST), (V))) \ if (!symtable_visit_ ## TYPE((ST), (V))) \
return 0; return 0;
#define VISIT_IN_BLOCK(ST, TYPE, V, S) \
if (!symtable_visit_ ## TYPE((ST), (V))) { \
symtable_exit_block((ST), (S)); \
return 0; \
}
#define VISIT_SEQ(ST, TYPE, SEQ) { \ #define VISIT_SEQ(ST, TYPE, SEQ) { \
int i; \ int i; \
asdl_seq *seq = (SEQ); /* avoid variable capture */ \ asdl_seq *seq = (SEQ); /* avoid variable capture */ \
@ -1045,18 +1039,6 @@ error:
} \ } \
} }
#define VISIT_SEQ_IN_BLOCK(ST, TYPE, SEQ, S) { \
int i; \
asdl_seq *seq = (SEQ); /* avoid variable capture */ \
for (i = 0; i < asdl_seq_LEN(seq); i++) { \
TYPE ## _ty elt = (TYPE ## _ty)asdl_seq_GET(seq, i); \
if (!symtable_visit_ ## TYPE((ST), elt)) { \
symtable_exit_block((ST), (S)); \
return 0; \
} \
} \
}
#define VISIT_SEQ_TAIL(ST, TYPE, SEQ, START) { \ #define VISIT_SEQ_TAIL(ST, TYPE, SEQ, START) { \
int i; \ int i; \
asdl_seq *seq = (SEQ); /* avoid variable capture */ \ asdl_seq *seq = (SEQ); /* avoid variable capture */ \
@ -1067,18 +1049,6 @@ error:
} \ } \
} }
#define VISIT_SEQ_TAIL_IN_BLOCK(ST, TYPE, SEQ, START, S) { \
int i; \
asdl_seq *seq = (SEQ); /* avoid variable capture */ \
for (i = (START); i < asdl_seq_LEN(seq); i++) { \
TYPE ## _ty elt = (TYPE ## _ty)asdl_seq_GET(seq, i); \
if (!symtable_visit_ ## TYPE((ST), elt)) { \
symtable_exit_block((ST), (S)); \
return 0; \
} \
} \
}
#define VISIT_KWONLYDEFAULTS(ST, KW_DEFAULTS) { \ #define VISIT_KWONLYDEFAULTS(ST, KW_DEFAULTS) { \
int i = 0; \ int i = 0; \
asdl_seq *seq = (KW_DEFAULTS); /* avoid variable capture */ \ asdl_seq *seq = (KW_DEFAULTS); /* avoid variable capture */ \
@ -1128,8 +1098,8 @@ symtable_visit_stmt(struct symtable *st, stmt_ty s)
FunctionBlock, (void *)s, s->lineno, FunctionBlock, (void *)s, s->lineno,
s->col_offset)) s->col_offset))
return 0; return 0;
VISIT_IN_BLOCK(st, arguments, s->v.FunctionDef.args, s); VISIT(st, arguments, s->v.FunctionDef.args);
VISIT_SEQ_IN_BLOCK(st, stmt, s->v.FunctionDef.body, s); VISIT_SEQ(st, stmt, s->v.FunctionDef.body);
if (!symtable_exit_block(st, s)) if (!symtable_exit_block(st, s))
return 0; return 0;
break; break;
@ -1156,7 +1126,7 @@ symtable_visit_stmt(struct symtable *st, stmt_ty s)
} }
tmp = st->st_private; tmp = st->st_private;
st->st_private = s->v.ClassDef.name; st->st_private = s->v.ClassDef.name;
VISIT_SEQ_IN_BLOCK(st, stmt, s->v.ClassDef.body, s); VISIT_SEQ(st, stmt, s->v.ClassDef.body);
st->st_private = tmp; st->st_private = tmp;
if (!symtable_exit_block(st, s)) if (!symtable_exit_block(st, s))
return 0; return 0;
@ -1337,8 +1307,8 @@ symtable_visit_expr(struct symtable *st, expr_ty e)
FunctionBlock, (void *)e, e->lineno, FunctionBlock, (void *)e, e->lineno,
e->col_offset)) e->col_offset))
return 0; return 0;
VISIT_IN_BLOCK(st, arguments, e->v.Lambda.args, (void*)e); VISIT(st, arguments, e->v.Lambda.args);
VISIT_IN_BLOCK(st, expr, e->v.Lambda.body, (void*)e); VISIT(st, expr, e->v.Lambda.body);
if (!symtable_exit_block(st, (void *)e)) if (!symtable_exit_block(st, (void *)e))
return 0; return 0;
break; break;
@ -1658,13 +1628,12 @@ symtable_handle_comprehension(struct symtable *st, expr_ty e,
symtable_exit_block(st, (void *)e); symtable_exit_block(st, (void *)e);
return 0; return 0;
} }
VISIT_IN_BLOCK(st, expr, outermost->target, (void*)e); VISIT(st, expr, outermost->target);
VISIT_SEQ_IN_BLOCK(st, expr, outermost->ifs, (void*)e); VISIT_SEQ(st, expr, outermost->ifs);
VISIT_SEQ_TAIL_IN_BLOCK(st, comprehension, VISIT_SEQ_TAIL(st, comprehension, generators, 1);
generators, 1, (void*)e);
if (value) if (value)
VISIT_IN_BLOCK(st, expr, value, (void*)e); VISIT(st, expr, value);
VISIT_IN_BLOCK(st, expr, elt, (void*)e); VISIT(st, expr, elt);
return symtable_exit_block(st, (void *)e); return symtable_exit_block(st, (void *)e);
} }