Diff for /rpl/src/gestion_pile_last.c between versions 1.6 and 1.56

version 1.6, 2010/04/07 13:45:03 version 1.56, 2016/03/01 22:12:28
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.14    RPL/2 (R) version 4.1.25
   Copyright (C) 1989-2010 Dr. BERTRAND Joël    Copyright (C) 1989-2016 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 20 Line 20
 */  */
   
   
 #include "rpl.conv.h"  #include "rpl-conv.h"
   
   
 /*  /*
Line 37 Line 37
   
 logical1  logical1
 empilement_pile_last(struct_processus *s_etat_processus,  empilement_pile_last(struct_processus *s_etat_processus,
         unsigned long nombre_arguments)          integer8 nombre_arguments)
 {  {
     struct_liste_chainee            *l_element_courant;      struct_liste_chainee            *l_element_courant;
     struct_liste_chainee            *l_element_suivant;      struct_liste_chainee            *l_element_suivant;
Line 46  empilement_pile_last(struct_processus *s Line 46  empilement_pile_last(struct_processus *s
   
     logical1                        erreur;      logical1                        erreur;
   
     unsigned long                   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.6  
changed lines
  Added in v.1.56


CVSweb interface <joel.bertrand@systella.fr>