--- rpl/src/gestion_pile.c 2010/04/21 13:45:45 1.8 +++ rpl/src/gestion_pile.c 2011/11/18 10:57:00 1.33 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.0.15 - Copyright (C) 1989-2010 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.4 + Copyright (C) 1989-2011 Dr. BERTRAND Joël This file is part of RPL/2. @@ -20,7 +20,7 @@ */ -#include "rpl.conv.h" +#include "rpl-conv.h" /* @@ -45,10 +45,20 @@ estimation_taille_pile(struct_processus * est estimée au travers d'une chaîne de Markov. */ - (*s_etat_processus).estimation_taille_pile_tampon = - ((*s_etat_processus).estimation_taille_pile_tampon * - ((double) 0.9)) + ((*s_etat_processus) - .hauteur_pile_operationnelle * ((double) 0.1)); + if ((*s_etat_processus).hauteur_pile_operationnelle > + (*s_etat_processus).estimation_taille_pile_tampon) + { + (*s_etat_processus).estimation_taille_pile_tampon = + (*s_etat_processus).estimation_taille_pile_tampon; + } + else + { + (*s_etat_processus).estimation_taille_pile_tampon = + ((*s_etat_processus).estimation_taille_pile_tampon * + ((double) 0.95)) + ((*s_etat_processus) + .hauteur_pile_operationnelle * ((double) 0.05)); + } + return; } @@ -248,7 +258,9 @@ affichage_pile(struct_processus *s_etat_ registre = (*s_etat_processus).autorisation_conversion_chaine; (*s_etat_processus).autorisation_conversion_chaine = 'N'; + routine_recursive = 1; ecriture_pile(s_etat_processus, stdout, l_element_courant, niveau_courant); + routine_recursive = 0; (*s_etat_processus).autorisation_conversion_chaine = registre; return; @@ -264,7 +276,7 @@ ecriture_pile(struct_processus *s_etat_p if (l_element_courant != NULL) { - if (setjmp(contexte) == 0) + if (setjmp(contexte_ecriture) == 0) { (*s_etat_processus).var_volatile_recursivite = -1; ecriture_pile(s_etat_processus, flux, @@ -365,7 +377,7 @@ impression_pile(struct_processus *s_etat if (l_element_courant != NULL) { - if (setjmp(contexte) == 0) + if (setjmp(contexte_impression) == 0) { (*s_etat_processus).var_volatile_recursivite = -1; impression_pile(s_etat_processus, (*l_element_courant).suivant,