Diff for /rpl/src/instructions_c1.c between versions 1.9 and 1.72

version 1.9, 2010/06/24 10:10:42 version 1.72, 2024/01/09 07:33:49
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.17    RPL/2 (R) version 4.1.35
   Copyright (C) 1989-2010 Dr. BERTRAND Joël    Copyright (C) 1989-2024 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 425  instruction_ceil(struct_processus *s_eta Line 425  instruction_ceil(struct_processus *s_eta
             return;              return;
         }          }
   
         (*((integer8 *) (*s_objet_resultat).objet)) =          (*((integer8 *) (*s_objet_resultat).objet)) = (integer8)
                 ceil((*((real8 *) (*s_objet_argument).objet)));                  ceil((*((real8 *) (*s_objet_argument).objet)));
   
         if (!(((((*((integer8 *) (*s_objet_resultat).objet)) - 1) <          if (!(((((*((integer8 *) (*s_objet_resultat).objet)) - 1) <
Line 670  instruction_ceil(struct_processus *s_eta Line 670  instruction_ceil(struct_processus *s_eta
 void  void
 instruction_case(struct_processus *s_etat_processus)  instruction_case(struct_processus *s_etat_processus)
 {  {
       struct_liste_pile_systeme   *l_element_courant;
   
     struct_objet                *s_objet;      struct_objet                *s_objet;
   
     (*s_etat_processus).erreur_execution = d_ex;      (*s_etat_processus).erreur_execution = d_ex;
Line 712  instruction_case(struct_processus *s_eta Line 714  instruction_case(struct_processus *s_eta
         return;          return;
     }      }
   
     if ((*(*s_etat_processus).l_base_pile_systeme).clause == 'S')      l_element_courant = (*s_etat_processus).l_base_pile_systeme;
   
       while(l_element_courant != NULL)
     {      {
           if (((*l_element_courant).clause == 'S') ||
               ((*l_element_courant).clause == 'C') ||
               ((*l_element_courant).clause == 'K'))
           {
               break;
           }
   
           l_element_courant = (*l_element_courant).suivant;
       }
   
       if (l_element_courant == NULL)
       {
           (*s_etat_processus).erreur_systeme = d_es_pile_vide;
           return;
       }
   
       if ((*l_element_courant).clause == 'S')
       {
         /*          /*
          * Première apparition de l'instruction CASE dans la structure de test.           * Première apparition de l'instruction CASE dans la structure de test.
          */           */
Line 726  instruction_case(struct_processus *s_eta Line 747  instruction_case(struct_processus *s_eta
             return;              return;
         }          }
   
         (*(*s_etat_processus).l_base_pile_systeme).objet_de_test = s_objet;          (*l_element_courant).objet_de_test = s_objet;
         (*(*s_etat_processus).l_base_pile_systeme).clause = 'K';          (*l_element_courant).clause = 'K';
     }      }
   
     if ((s_objet = copie_objet(s_etat_processus,      if ((s_objet = copie_objet(s_etat_processus,
             (*(*s_etat_processus).l_base_pile_systeme)              (*l_element_courant).objet_de_test, 'P')) == NULL)
             .objet_de_test, 'P')) == NULL)  
     {      {
         (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;          (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
         return;          return;
Line 744  instruction_case(struct_processus *s_eta Line 764  instruction_case(struct_processus *s_eta
         return;          return;
     }      }
   
       /*
        * Empilement sur la pile système ne servant qu'à la bonne exécution
        * des reprises sur erreur
        */
   
       empilement_pile_systeme(s_etat_processus);
   
       if ((*s_etat_processus).erreur_systeme != d_es)
       {
           return;
       }
   
       (*(*s_etat_processus).l_base_pile_systeme).clause =
               (*l_element_courant).clause;
       (*(*s_etat_processus).l_base_pile_systeme).type_cloture = 'K';
     return;      return;
 }  }
   
Line 767  instruction_c_vers_r(struct_processus *s Line 802  instruction_c_vers_r(struct_processus *s
     struct_objet                    *s_objet_resultat_1;      struct_objet                    *s_objet_resultat_1;
     struct_objet                    *s_objet_resultat_2;      struct_objet                    *s_objet_resultat_2;
   
     unsigned long                   i;      integer8                        i;
     unsigned long                   j;      integer8                        j;
   
     (*s_etat_processus).erreur_execution = d_ex;      (*s_etat_processus).erreur_execution = d_ex;
   
Line 874  instruction_c_vers_r(struct_processus *s Line 909  instruction_c_vers_r(struct_processus *s
         }          }
   
         if (((*((struct_vecteur *) (*s_objet_resultat_1).objet)).tableau =          if (((*((struct_vecteur *) (*s_objet_resultat_1).objet)).tableau =
                 malloc((*(((struct_vecteur *) (*s_objet_argument)                  malloc(((size_t) (*(((struct_vecteur *) (*s_objet_argument)
                 .objet))).taille * sizeof(real8))) == NULL)                  .objet))).taille) * sizeof(real8))) == NULL)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return;              return;
         }          }
   
         if (((*((struct_vecteur *) (*s_objet_resultat_2).objet)).tableau =          if (((*((struct_vecteur *) (*s_objet_resultat_2).objet)).tableau =
                 malloc((*(((struct_vecteur *) (*s_objet_argument)                  malloc(((size_t) (*(((struct_vecteur *) (*s_objet_argument)
                 .objet))).taille * sizeof(real8))) == NULL)                  .objet))).taille) * sizeof(real8))) == NULL)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return;              return;
Line 930  instruction_c_vers_r(struct_processus *s Line 965  instruction_c_vers_r(struct_processus *s
         }          }
   
         if (((*((struct_matrice *) (*s_objet_resultat_1).objet)).tableau =          if (((*((struct_matrice *) (*s_objet_resultat_1).objet)).tableau =
                 malloc((*(((struct_matrice *) (*s_objet_argument)                  malloc(((size_t) (*(((struct_matrice *) (*s_objet_argument)
                 .objet))).nombre_lignes * sizeof(real8 *))) == NULL)                  .objet))).nombre_lignes) * sizeof(real8 *))) == NULL)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return;              return;
         }          }
   
         if (((*((struct_matrice *) (*s_objet_resultat_2).objet)).tableau =          if (((*((struct_matrice *) (*s_objet_resultat_2).objet)).tableau =
                 malloc((*(((struct_matrice *) (*s_objet_argument)                  malloc(((size_t) (*(((struct_matrice *) (*s_objet_argument)
                 .objet))).nombre_lignes * sizeof(real8 *))) == NULL)                  .objet))).nombre_lignes) * sizeof(real8 *))) == NULL)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return;              return;
Line 960  instruction_c_vers_r(struct_processus *s Line 995  instruction_c_vers_r(struct_processus *s
                 .nombre_lignes; i++)                  .nombre_lignes; i++)
         {          {
             if ((((real8 **) (*((struct_matrice *) (*s_objet_resultat_1)              if ((((real8 **) (*((struct_matrice *) (*s_objet_resultat_1)
                     .objet)).tableau)[i] = malloc(                      .objet)).tableau)[i] = malloc(((size_t)
                     (*(((struct_matrice *) (*s_objet_argument).objet)))                      (*(((struct_matrice *) (*s_objet_argument).objet)))
                     .nombre_colonnes * sizeof(real8))) == NULL)                      .nombre_colonnes) * sizeof(real8))) == NULL)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;                  (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                 return;                  return;
             }              }
   
             if ((((real8 **) (*((struct_matrice *) (*s_objet_resultat_2)              if ((((real8 **) (*((struct_matrice *) (*s_objet_resultat_2)
                     .objet)).tableau)[i] = malloc(                      .objet)).tableau)[i] = malloc(((size_t)
                     (*(((struct_matrice *) (*s_objet_argument).objet)))                      (*(((struct_matrice *) (*s_objet_argument).objet)))
                     .nombre_colonnes * sizeof(real8))) == NULL)                      .nombre_colonnes) * sizeof(real8))) == NULL)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;                  (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                 return;                  return;
Line 1047  instruction_conj(struct_processus *s_eta Line 1082  instruction_conj(struct_processus *s_eta
     struct_objet                *s_objet_argument;      struct_objet                *s_objet_argument;
     struct_objet                *s_objet_resultat;      struct_objet                *s_objet_resultat;
   
     unsigned long               i;      integer8                    i;
     unsigned long               j;      integer8                    j;
   
     (*s_etat_processus).erreur_execution = d_ex;      (*s_etat_processus).erreur_execution = d_ex;
   

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


CVSweb interface <joel.bertrand@systella.fr>