--- rpl/src/gestion_pile_systeme.c 2013/03/16 20:11:29 1.55 +++ rpl/src/gestion_pile_systeme.c 2013/04/18 15:34:10 1.61 @@ -1,6 +1,6 @@ /* ================================================================================ - RPL/2 (R) version 4.1.13 + RPL/2 (R) version 4.1.14 Copyright (C) 1989-2013 Dr. BERTRAND Joël This file is part of RPL/2. @@ -39,9 +39,10 @@ static inline void estimation_taille_pile_systeme(struct_processus *s_etat_processus) { (*s_etat_processus).estimation_taille_pile_systeme_tampon = - ((*s_etat_processus).estimation_taille_pile_systeme_tampon * - ((double) 0.9)) + ((*s_etat_processus) - .hauteur_pile_systeme * ((double) 0.1)); + (((double) (*s_etat_processus) + .estimation_taille_pile_systeme_tampon) * + ((double) 0.9)) + (((double) (*s_etat_processus) + .hauteur_pile_systeme) * ((double) 0.1)); return; } @@ -302,13 +303,12 @@ effacement_pile_systeme(struct_processus void trace(struct_processus *s_etat_processus, FILE *flux) { - int candidat; - int j; - int nb_variables; - integer8 i; + integer8 j; + integer8 candidat; integer8 candidat8; integer8 delta; + integer8 nb_variables; struct_liste_chainee *l_element_expression; @@ -332,8 +332,8 @@ trace(struct_processus *s_etat_processus nb_variables = nombre_variables(s_etat_processus); - if ((tableau = malloc(nb_variables * sizeof(struct_tableau_variables))) - == NULL) + if ((tableau = malloc(((size_t) nb_variables) * + sizeof(struct_tableau_variables))) == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; return; @@ -492,11 +492,10 @@ trace(struct_processus *s_etat_processus } } - fprintf(flux, " Level = %d\n", - (*l_element_courant).niveau_courant); + fprintf(flux, " Level = %lld\n", + (long long int) (*l_element_courant).niveau_courant); - if (((*l_element_courant).retour_definition == 'Y') || - ((*l_element_courant).origine_routine_evaluation == 'Y')) + if ((*l_element_courant).retour_definition == 'Y') { fprintf(flux, " Return = yes\n"); @@ -596,7 +595,7 @@ trace(struct_processus *s_etat_processus if ((*(tableau[j].objet)).type == ADR) { delta = (*l_element_courant).adresse_retour - - (*((unsigned long *) + - (*((integer8 *) (*(tableau[j].objet)).objet)); if ((delta >= 0) && (delta < candidat8)) @@ -631,7 +630,8 @@ trace(struct_processus *s_etat_processus fprintf(flux, " Return = no\n"); } - if ((*l_element_courant).indice_boucle != NULL) + if (((*l_element_courant).indice_boucle != NULL) && + ((*l_element_courant).type_cloture != 'A')) { tampon = formateur(s_etat_processus, 24, (*l_element_courant).indice_boucle);