Diff for /rpl/src/gestion_pile_last.c between versions 1.43 and 1.58

version 1.43, 2013/06/21 14:15:52 version 1.58, 2017/01/18 15:44:18
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.15    RPL/2 (R) version 4.1.26
   Copyright (C) 1989-2013 Dr. BERTRAND Joël    Copyright (C) 1989-2017 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 49  empilement_pile_last(struct_processus *s Line 49  empilement_pile_last(struct_processus *s
     integer8                        i;      integer8                        i;
   
     erreur = d_absence_erreur;      erreur = d_absence_erreur;
   
     l_element_courant = (*s_etat_processus).l_base_pile_last;      l_element_courant = (*s_etat_processus).l_base_pile_last;
   
     while(l_element_courant != NULL)      while(l_element_courant != NULL)
     {      {
         liberation(s_etat_processus, (*l_element_courant).donnee);          liberation(s_etat_processus, (*l_element_courant).donnee);
Line 100  empilement_pile_last(struct_processus *s Line 100  empilement_pile_last(struct_processus *s
          */           */
   
         (*s_etat_processus).erreur_execution = d_ex_manque_argument;          (*s_etat_processus).erreur_execution = d_ex_manque_argument;
   
           /*
            * En cas de nombre d'arguments insuffisant, cette routine
            * déclenche une erreur. Si la pile LAST est active, la récupération
            * de l'erreur force la copie de la pile LAST dans la pile
            * opérationnelle courante. Dans notre cas, les arguments n'ont pas
            * encore été consommés pas la routine appelante et il convient
            * d'éliminer les arguments de la pile opérationnelle avant de retourner
            * à la routine appelante.
            */
   
           l_element_courant = (*s_etat_processus).l_base_pile;
   
           for(; i > 0; i--)
           {
               if (depilement(s_etat_processus, &((*s_etat_processus).l_base_pile),
                       &s_objet) == d_erreur)
               {
                   (*s_etat_processus).erreur_execution = d_ex_manque_argument;
                   return(erreur);
               }
   
               liberation(s_etat_processus, s_objet);
           }
     }      }
   
     return(erreur);      return(erreur);

Removed from v.1.43  
changed lines
  Added in v.1.58


CVSweb interface <joel.bertrand@systella.fr>