--- capa/capa51/pProj/capaGrammarDef.y 2000/08/07 20:47:29 1.13 +++ capa/capa51/pProj/capaGrammarDef.y 2000/08/23 16:55:12 1.14 @@ -704,6 +704,7 @@ map_expr : startM '(' basic_constr ' a_sp=build_array_list($5,$7->s_argc); result=do_map(key, a_sp->s_argp, $7->s_argp, a_sp->s_argc, FORWARD_MAP); free_arglist(a_sp->s_argp); + a_sp->s_argp=NULL; } else { sprintf(warn_msg,"/MAP arg. counts are not matched.\n"); capa_msg(MESSAGE_ERROR,warn_msg); @@ -715,7 +716,9 @@ map_expr : startM '(' basic_constr ' capa_msg(MESSAGE_ERROR,warn_msg); } free_arglist($5->s_argp); - free_arglist($7->s_argp); + $5->s_argp=NULL; + free_arglist($7->s_argp); + $7->s_argp=NULL; } | startR '(' basic_constr ';' var_list ';' arg_list ')' { char key[SMALL_LINE_BUFFER]; @@ -733,6 +736,7 @@ map_expr : startM '(' basic_constr ' a_sp=build_array_list($5,$7->s_argc); result=do_map(key, a_sp->s_argp, $7->s_argp, a_sp->s_argc, FORWARD_MAP); free_arglist(a_sp->s_argp); + a_sp->s_argp=NULL; } else { sprintf(warn_msg,"/RMAP arg. counts are not matched.\n"); capa_msg(MESSAGE_ERROR,warn_msg); @@ -744,7 +748,9 @@ map_expr : startM '(' basic_constr ' capa_msg(MESSAGE_ERROR,warn_msg); } free_arglist($5->s_argp); + $5->s_argp=NULL; free_arglist($7->s_argp); + $7->s_argp=NULL; } ; @@ -796,6 +802,7 @@ basic_constr : FUNCTION_ID '(' ')' { $$ = do_function(tmp, $3->s_argc, $3->s_argp); capa_mfree(FuncStack[Func_idx].s_name); free_arglist($3->s_argp); + $3->s_argp=NULL; } YYDBUG_PR1(" basic_constr <= RETURN FUNCT "); YYDBUG_SYM($$);