Diff for /rpl/src/gestion_pile_systeme.c between versions 1.53 and 1.70

version 1.53, 2013/03/06 10:05:09 version 1.70, 2015/01/05 15:32:14
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.13    RPL/2 (R) version 4.1.20
   Copyright (C) 1989-2013 Dr. BERTRAND Joël    Copyright (C) 1989-2015 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 348  trace(struct_processus *s_etat_processus Line 348  trace(struct_processus *s_etat_processus
   
     while(l_element_courant != NULL)      while(l_element_courant != NULL)
     {      {
         fprintf(flux, "%d : address # %016Xh\n", i--, l_element_courant);          fprintf(flux, "%lld : address # %016Xh\n", i--, l_element_courant);
   
         if ((*l_element_courant).creation_variables_statiques == d_vrai)          if ((*l_element_courant).creation_variables_statiques == d_vrai)
         {          {
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);
Line 666  trace(struct_processus *s_etat_processus Line 670  trace(struct_processus *s_etat_processus
         l_element_courant = (*l_element_courant).suivant;          l_element_courant = (*l_element_courant).suivant;
     }      }
   
     fprintf(flux, "\n");  
     funlockfile(flux);      funlockfile(flux);
   
     free(tableau);      free(tableau);

Removed from v.1.53  
changed lines
  Added in v.1.70


CVSweb interface <joel.bertrand@systella.fr>