Diff for /rpl/src/instructions_s9.c between versions 1.11 and 1.20

version 1.11, 2010/05/24 10:58:35 version 1.20, 2010/08/26 19:07:40
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.16    RPL/2 (R) version 4.0.19
   Copyright (C) 1989-2010 Dr. BERTRAND Joël    Copyright (C) 1989-2010 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 57  instruction_sort(struct_processus *s_eta Line 57  instruction_sort(struct_processus *s_eta
     struct_objet                *s_objet_copie;      struct_objet                *s_objet_copie;
     struct_objet                *s_objet_critere;      struct_objet                *s_objet_critere;
     struct_objet                *s_objet_liste;      struct_objet                *s_objet_liste;
       struct_objet                *s_objet_registre;
     struct_objet                *s_objet_test;      struct_objet                *s_objet_test;
   
     signed long                 indice_i;      signed long                 indice_i;
Line 463  instruction_sort(struct_processus *s_eta Line 464  instruction_sort(struct_processus *s_eta
                 indice_j = 0;                  indice_j = 0;
                 indice_k = (*((struct_tableau *) (*s_objet_liste).objet))                  indice_k = (*((struct_tableau *) (*s_objet_liste).objet))
                         .nombre_elements - ecartement;                          .nombre_elements - ecartement;
   
                 terminaison_boucle_2 = d_faux;                  terminaison_boucle_2 = d_faux;
   
                 do                  do
Line 557  instruction_sort(struct_processus *s_eta Line 557  instruction_sort(struct_processus *s_eta
   
                             if (condition == d_faux)                              if (condition == d_faux)
                             {                              {
                                 swap((void *) (*((struct_tableau *)                                  s_objet_registre =
                                     (*s_objet_liste).objet)).elements                                          (*((struct_tableau *)
                                     [indice_i - 1], (void *)                                          (*s_objet_liste).objet)).elements
                                     (*((struct_tableau *) (*s_objet_liste)                                          [indice_i - 1];
                                     .objet)).elements[indice_l - 1],                                  (*((struct_tableau *) (*s_objet_liste).objet))
                                     sizeof(struct_objet));                                          .elements[indice_i - 1] =
                                           (*((struct_tableau *) (*s_objet_liste)
                                           .objet)).elements[indice_l - 1];
                                   (*((struct_tableau *) (*s_objet_liste)
                                           .objet)).elements[indice_l - 1] =
                                           s_objet_registre;
   
                                 indice_i -= ecartement;                                  indice_i -= ecartement;
   
Line 793  instruction_save(struct_processus *s_eta Line 798  instruction_save(struct_processus *s_eta
                 i--;                  i--;
             }              }
   
             (*s_etat_processus).position_variable_courante = i;              if (presence_variable == d_vrai)
               {
                   (*s_etat_processus).position_variable_courante = i;
               }
               else
               {
                   (*s_etat_processus).position_variable_courante = 0;
               }
   
             if ((*s_etat_processus).s_liste_variables[(*s_etat_processus)              if (((*s_etat_processus).s_liste_variables[(*s_etat_processus)
                     .position_variable_courante].niveau == 1)                      .position_variable_courante].niveau == 1) &&
                       (presence_variable == d_vrai))
             {              {
                 // On a trouvé une variable globale correspondant au nom et                  // On a trouvé une variable globale correspondant au nom et
                 // que l'on modifie.                  // que l'on modifie.
Line 1779  instruction_swi(struct_processus *s_etat Line 1792  instruction_swi(struct_processus *s_etat
                     return;                      return;
                 }                  }
             }              }
   
               kill((*s_etat_processus).pid_processus_pere, SIGCONT);
         }          }
         else          else
         {          {
Line 1924  instruction_swi(struct_processus *s_etat Line 1939  instruction_swi(struct_processus *s_etat
                     return;                      return;
                 }                  }
             }              }
   
               pthread_kill((*s_etat_processus).tid_processus_pere, SIGCONT);
         }          }
   
         attente.tv_sec = 0;          attente.tv_sec = 0;

Removed from v.1.11  
changed lines
  Added in v.1.20


CVSweb interface <joel.bertrand@systella.fr>