Diff for /rpl/src/instructions_t3.c between versions 1.47 and 1.72

version 1.47, 2013/04/01 15:29:38 version 1.72, 2020/01/10 11:15:49
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.14    RPL/2 (R) version 4.1.32
   Copyright (C) 1989-2013 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 275  instruction_trnc(struct_processus *s_eta Line 275  instruction_trnc(struct_processus *s_eta
                 cf(s_etat_processus, 56);                  cf(s_etat_processus, 56);
             }              }
   
               (*s_etat_processus).type_en_cours = NON;
             recherche_type(s_etat_processus);              recherche_type(s_etat_processus);
   
             free((*s_etat_processus).instruction_courante);              free((*s_etat_processus).instruction_courante);
Line 342  instruction_table_fleche(struct_processu Line 343  instruction_table_fleche(struct_processu
     struct_objet                    *s_objet;      struct_objet                    *s_objet;
     struct_objet                    *s_objet_resultat;      struct_objet                    *s_objet_resultat;
   
       unsigned char                   *registre_instruction_courante;
       unsigned char                   registre_instruction_valide;
       unsigned char                   registre_test;
   
     integer8                        i;      integer8                        i;
   
     (*s_etat_processus).erreur_execution = d_ex;      (*s_etat_processus).erreur_execution = d_ex;
Line 416  instruction_table_fleche(struct_processu Line 421  instruction_table_fleche(struct_processu
             return;              return;
         }          }
   
         if (empilement(s_etat_processus, &((*s_etat_processus).l_base_pile),          if ((*((*((struct_tableau *) (*s_objet).objet)).elements[i])).type
                 (*((struct_tableau *) (*s_objet).objet)).elements[i])                  != FCT)
                 == d_erreur)  
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              if (empilement(s_etat_processus, &((*s_etat_processus).l_base_pile),
             return;                      (*((struct_tableau *) (*s_objet).objet)).elements[i])
                       == d_erreur)
               {
                   return;
               }
           }
           else
           {
               registre_test = (*s_etat_processus).test_instruction;
               registre_instruction_courante = (*s_etat_processus)
                       .instruction_courante;
               registre_instruction_valide = (*s_etat_processus)
                       .instruction_valide;
   
               (*s_etat_processus).test_instruction = 'Y';
               (*s_etat_processus).instruction_courante =
                       (*((struct_fonction *) (*((struct_tableau *)
                       (*s_objet).objet)).elements[i])).nom_fonction;
   
               analyse(s_etat_processus, NULL);
   
               (*s_etat_processus).test_instruction = registre_test;
               (*s_etat_processus).instruction_courante =
                       registre_instruction_courante;
   
               if (((*s_etat_processus).instruction_valide == 'Y') &&
                       (*s_etat_processus).constante_symbolique == 'Y')
               {
                   if (evaluation(s_etat_processus, (*((struct_tableau *)
                           (*s_objet).objet)).elements[i], 'E') == d_erreur)
                   {
                       (*s_etat_processus).instruction_valide =
                               registre_instruction_valide;
                       return;
                   }
               }
               else
               {
                   if (empilement(s_etat_processus, &((*s_etat_processus)
                           .l_base_pile), (*((struct_tableau *) (*s_objet).objet))
                           .elements[i]) == d_erreur)
                   {
                       (*s_etat_processus).instruction_valide =
                               registre_instruction_valide;
                       return;
                   }
               }
   
               (*s_etat_processus).instruction_valide =
                       registre_instruction_valide;
         }          }
     }      }
   

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


CVSweb interface <joel.bertrand@systella.fr>