Diff for /rpl/src/gestion_pile_systeme.c between versions 1.55 and 1.68

version 1.55, 2013/03/16 20:11:29 version 1.68, 2014/07/17 08:07:18
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.13    RPL/2 (R) version 4.1.19
   Copyright (C) 1989-2013 Dr. BERTRAND Joël    Copyright (C) 1989-2014 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 39  static inline void Line 39  static inline void
 estimation_taille_pile_systeme(struct_processus *s_etat_processus)  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 =
             ((*s_etat_processus).estimation_taille_pile_systeme_tampon *              (((double) (*s_etat_processus)
             ((double) 0.9)) + ((*s_etat_processus)              .estimation_taille_pile_systeme_tampon) *
             .hauteur_pile_systeme * ((double) 0.1));              ((double) 0.9)) + (((double) (*s_etat_processus)
               .hauteur_pile_systeme) * ((double) 0.1));
     return;      return;
 }  }
   
Line 302  effacement_pile_systeme(struct_processus Line 303  effacement_pile_systeme(struct_processus
 void  void
 trace(struct_processus *s_etat_processus, FILE *flux)  trace(struct_processus *s_etat_processus, FILE *flux)
 {  {
     int                             candidat;  
     int                             j;  
     int                             nb_variables;  
   
     integer8                        i;      integer8                        i;
       integer8                        j;
       integer8                        candidat;
     integer8                        candidat8;      integer8                        candidat8;
     integer8                        delta;      integer8                        delta;
       integer8                        nb_variables;
   
     struct_liste_chainee            *l_element_expression;      struct_liste_chainee            *l_element_expression;
   
Line 332  trace(struct_processus *s_etat_processus Line 332  trace(struct_processus *s_etat_processus
   
     nb_variables = nombre_variables(s_etat_processus);      nb_variables = nombre_variables(s_etat_processus);
   
     if ((tableau = malloc(nb_variables * sizeof(struct_tableau_variables)))      if ((tableau = malloc(((size_t) nb_variables) *
             == NULL)              sizeof(struct_tableau_variables))) == NULL)
     {      {
         (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;          (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
         return;          return;
Line 492  trace(struct_processus *s_etat_processus Line 492  trace(struct_processus *s_etat_processus
             }              }
         }          }
   
         fprintf(flux, "    Level             = %d\n",          fprintf(flux, "    Level             = %lld\n",
                 (*l_element_courant).niveau_courant);                  (long long int) (*l_element_courant).niveau_courant);
   
         if (((*l_element_courant).retour_definition == 'Y') ||          if ((*l_element_courant).retour_definition == 'Y')
                 ((*l_element_courant).origine_routine_evaluation == 'Y'))  
         {          {
             fprintf(flux, "    Return            = yes\n");              fprintf(flux, "    Return            = yes\n");
   
Line 596  trace(struct_processus *s_etat_processus Line 595  trace(struct_processus *s_etat_processus
                         if ((*(tableau[j].objet)).type == ADR)                          if ((*(tableau[j].objet)).type == ADR)
                         {                          {
                             delta = (*l_element_courant).adresse_retour                              delta = (*l_element_courant).adresse_retour
                                     - (*((unsigned long *)                                      - (*((integer8 *)
                                     (*(tableau[j].objet)).objet));                                      (*(tableau[j].objet)).objet));
   
                             if ((delta >= 0) && (delta < candidat8))                              if ((delta >= 0) && (delta < candidat8))
Line 618  trace(struct_processus *s_etat_processus Line 617  trace(struct_processus *s_etat_processus
                                 "unknown definition\n");                                  "unknown definition\n");
                     }                      }
                 }                  }
                 else                  else if ((*l_element_courant).niveau_courant == 0)
                 {                  {
                     fprintf(flux, "\n");                      fprintf(flux, "\n");
                     fprintf(flux, "                      = RPL/2 "                      fprintf(flux, "                      = RPL/2 "
                             "initialization\n");                              "initialization\n");
                 }                  }
                   else
                   {
                       fprintf(flux, "\n");
                   }
             }              }
         }          }
         else          else
Line 631  trace(struct_processus *s_etat_processus Line 634  trace(struct_processus *s_etat_processus
             fprintf(flux, "    Return            = no\n");              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,              tampon = formateur(s_etat_processus, 24,
                     (*l_element_courant).indice_boucle);                      (*l_element_courant).indice_boucle);

Removed from v.1.55  
changed lines
  Added in v.1.68


CVSweb interface <joel.bertrand@systella.fr>