Diff for /rpl/src/bibliotheques_externes.c between versions 1.72 and 1.84

version 1.72, 2017/07/03 11:47:05 version 1.84, 2020/01/16 08:57:42
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.27    RPL/2 (R) version 4.1.32
   Copyright (C) 1989-2017 Dr. BERTRAND Joël    Copyright (C) 1989-2020 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 53  chargement_bibliotheque(struct_processus Line 53  chargement_bibliotheque(struct_processus
     struct_liste_chainee    *l_element_courant;      struct_liste_chainee    *l_element_courant;
     struct_liste_chainee    *l_nouvel_element;      struct_liste_chainee    *l_nouvel_element;
   
       unsigned char           *fleche;
     unsigned char           **tableau;      unsigned char           **tableau;
     unsigned char           *tampon;      unsigned char           *tampon;
   
Line 373  chargement_bibliotheque(struct_processus Line 374  chargement_bibliotheque(struct_processus
   
     for(i = 0; i < nombre_symboles; i++)      for(i = 0; i < nombre_symboles; i++)
     {      {
           if ((fleche = strstr(tableau[i], "->")) != NULL)
           {
               memcpy(fleche, "to", 2);
               (*s_etat_processus).s_instructions_externes[(*s_etat_processus)
                       .nombre_instructions_externes].position_fleche =
                       fleche - tableau[i];
           }
           else
           {
               (*s_etat_processus).s_instructions_externes[(*s_etat_processus)
                       .nombre_instructions_externes].position_fleche = -1;
           }
   
         (*s_etat_processus).s_instructions_externes[(*s_etat_processus)          (*s_etat_processus).s_instructions_externes[(*s_etat_processus)
                 .nombre_instructions_externes].descripteur_bibliotheque =                  .nombre_instructions_externes].descripteur_bibliotheque =
                 descripteur_bibliotheque;                  descripteur_bibliotheque;
Line 446  chargement_bibliotheque(struct_processus Line 460  chargement_bibliotheque(struct_processus
             [(*s_etat_processus).nombre_instructions_externes - 1]              [(*s_etat_processus).nombre_instructions_externes - 1]
             .nom_bibliotheque);              .nom_bibliotheque);
   
       // La nouvelle bibliothèque est mise en tête de la liste pour que
       // les bibliothèques soient implicitement déchargées dans l'ordre
       // inverse de leur chargement.
   
     (*l_nouvel_element).suivant = (*s_etat_processus).s_bibliotheques;      (*l_nouvel_element).suivant = (*s_etat_processus).s_bibliotheques;
     (*s_etat_processus).s_bibliotheques = l_nouvel_element;      (*s_etat_processus).s_bibliotheques = l_nouvel_element;
   
Line 861  execution_fonction_de_bibliotheque(struc Line 879  execution_fonction_de_bibliotheque(struc
   
     struct_rpl_arguments            rpl_arguments;      struct_rpl_arguments            rpl_arguments;
   
       unsigned char                   *fleche;
     unsigned char                   *nom_fonction_externe;      unsigned char                   *nom_fonction_externe;
     unsigned char                   *tampon;      unsigned char                   *tampon;
   
Line 905  execution_fonction_de_bibliotheque(struc Line 924  execution_fonction_de_bibliotheque(struc
         }          }
     }      }
   
       if ((fleche = strstr(nom_fonction, "->")) != NULL)
       {
           memcpy(fleche, "to", 2);
       }
   
     ordre_iteration = 0;      ordre_iteration = 0;
     nombre_iterations_maximal = ((integer8)      nombre_iterations_maximal = ((integer8)
             (log((real8) (*s_etat_processus).nombre_instructions_externes) /              (log((real8) (*s_etat_processus).nombre_instructions_externes) /
Line 1403  struct_liste_chainee * Line 1427  struct_liste_chainee *
 empilement_pile_operationnelle(struct_rpl_arguments *s_rpl_arguments,  empilement_pile_operationnelle(struct_rpl_arguments *s_rpl_arguments,
         struct_objet *s_objet)          struct_objet *s_objet)
 {  {
   #   pragma GCC diagnostic push
   #   pragma GCC diagnostic ignored "-Wunused-but-set-variable"
     struct_liste_chainee        *l_ancienne_base_liste;      struct_liste_chainee        *l_ancienne_base_liste;
     struct_liste_chainee        *l_nouvelle_base_liste;      struct_liste_chainee        *l_nouvelle_base_liste;
   
Line 1423  empilement_pile_operationnelle(struct_rp Line 1449  empilement_pile_operationnelle(struct_rp
     (*s_rpl_arguments).l_base_pile = l_nouvelle_base_liste;      (*s_rpl_arguments).l_base_pile = l_nouvelle_base_liste;
   
     return l_nouvelle_base_liste;      return l_nouvelle_base_liste;
   #   pragma GCC diagnostic pop
 }  }
   
   
Line 1442  struct_liste_chainee * Line 1469  struct_liste_chainee *
 depilement_pile_operationnelle(struct_rpl_arguments *s_rpl_arguments,  depilement_pile_operationnelle(struct_rpl_arguments *s_rpl_arguments,
         struct_objet **s_objet)          struct_objet **s_objet)
 {  {
   #   pragma GCC diagnostic push
   #   pragma GCC diagnostic ignored "-Wunused-but-set-variable"
     struct_liste_chainee        *l_ancienne_base_liste;      struct_liste_chainee        *l_ancienne_base_liste;
     struct_liste_chainee        *l_nouvelle_base_liste;      struct_liste_chainee        *l_nouvelle_base_liste;
   
Line 1450  depilement_pile_operationnelle(struct_rp Line 1479  depilement_pile_operationnelle(struct_rp
     if ((*s_rpl_arguments).l_base_pile == NULL)      if ((*s_rpl_arguments).l_base_pile == NULL)
     {      {
         *s_objet = NULL;          *s_objet = NULL;
         return(NULL);          return NULL ;
     }      }
     else      else
     {      {
Line 1463  depilement_pile_operationnelle(struct_rp Line 1492  depilement_pile_operationnelle(struct_rp
   
         (*s_rpl_arguments).l_base_pile = l_nouvelle_base_liste;          (*s_rpl_arguments).l_base_pile = l_nouvelle_base_liste;
   
         return(l_nouvelle_base_liste);          return l_nouvelle_base_liste ;
     }      }
   #   pragma GCC diagnostic pop
 }  }
   
   

Removed from v.1.72  
changed lines
  Added in v.1.84


CVSweb interface <joel.bertrand@systella.fr>