--- rpl/src/evaluation.c 2013/03/06 09:00:26 1.73 +++ rpl/src/evaluation.c 2013/03/06 10:05:09 1.74 @@ -324,6 +324,8 @@ evaluation(struct_processus *s_etat_proc if (sequenceur(s_etat_processus) == d_erreur) { + depilement_pile_systeme(s_etat_processus); + (*s_etat_processus).evaluation_forcee = registre_evaluation_forcee; (*s_etat_processus).mode_execution_programme = @@ -409,7 +411,8 @@ evaluation(struct_processus *s_etat_proc .niveau_courant = (*s_etat_processus) .niveau_courant; - empilement_pile_systeme(s_etat_processus); + // ICI + //empilement_pile_systeme(s_etat_processus); if (presence_variable_partagee == d_faux) { @@ -422,6 +425,8 @@ evaluation(struct_processus *s_etat_proc profilage(s_etat_processus, NULL); } + depilement_pile_systeme(s_etat_processus); + (*s_etat_processus).evaluation_expression_compilee = registre_evaluation_expression_compilee; @@ -444,6 +449,8 @@ evaluation(struct_processus *s_etat_proc profilage(s_etat_processus, NULL); } + depilement_pile_systeme(s_etat_processus); + (*s_etat_processus).evaluation_expression_compilee = registre_evaluation_expression_compilee; @@ -463,7 +470,6 @@ evaluation(struct_processus *s_etat_proc } depilement_pile_systeme(s_etat_processus); - depilement_pile_systeme(s_etat_processus); if ((*s_etat_processus).erreur_systeme != d_es) { @@ -814,7 +820,6 @@ evaluation(struct_processus *s_etat_proc { if ((*s_etat_processus).arret_si_exception == d_faux) { -uprintf("\n"); /* * Reprise sur erreur */ @@ -1250,7 +1255,6 @@ uprintf("\n"); /* * Reprise sur erreur */ -uprintf("\n"); while(l_element_courant != NULL) { @@ -3383,6 +3387,8 @@ uprintf("\n"); liberation(s_etat_processus, s_objet_evalue); } + depilement_pile_systeme(s_etat_processus); + (*s_etat_processus).instruction_courante = instruction_courante; return(d_erreur); @@ -3467,6 +3473,8 @@ uprintf("\n"); liberation(s_etat_processus, s_objet_evalue); } + depilement_pile_systeme(s_etat_processus); + (*s_etat_processus).instruction_courante = instruction_courante; (*s_etat_processus).mode_execution_programme = @@ -3798,7 +3806,6 @@ uprintf("\n"); * Reprise sur erreur */ -uprintf("\n"); if ((message = messages(s_etat_processus)) == NULL) { if (presence_egalite == d_vrai) @@ -4271,7 +4278,6 @@ uprintf("\n"); * Reprise sur erreur */ -uprintf("\n"); while(l_element_courant != NULL) { if ((*(*l_element_courant).donnee).type == FCT) @@ -5050,7 +5056,6 @@ uprintf("\n"); * Reprise sur erreur */ -uprintf("\n"); if ((message = messages(s_etat_processus)) == NULL) { if (presence_egalite == d_vrai) @@ -5523,7 +5528,6 @@ uprintf("\n"); * Reprise sur erreur */ -uprintf("\n"); while(l_element_courant != NULL) { if ((*(*l_element_courant).donnee).type == FCT) @@ -6538,6 +6542,8 @@ uprintf("\n"); s_objet_evalue); } + depilement_pile_systeme(s_etat_processus); + (*s_etat_processus).instruction_courante = instruction_courante; (*s_etat_processus).mode_execution_programme = @@ -6746,14 +6752,12 @@ uprintf("\n"); (*(*s_etat_processus).l_base_pile_systeme) .niveau_courant = (*s_etat_processus) .niveau_courant; - empilement_pile_systeme(s_etat_processus); if (evaluation(s_etat_processus, s_copie_variable_partagee, type_evaluation) == d_erreur) { depilement_pile_systeme(s_etat_processus); - depilement_pile_systeme(s_etat_processus); liberation(s_etat_processus, s_copie_variable_partagee); @@ -6781,7 +6785,6 @@ uprintf("\n"); } depilement_pile_systeme(s_etat_processus); - depilement_pile_systeme(s_etat_processus); liberation(s_etat_processus, s_copie_variable_partagee);