Diff for /rpl/src/instructions_c5.c between versions 1.16.2.3 and 1.19

version 1.16.2.3, 2011/05/09 13:52:14 version 1.19, 2011/06/09 14:48:36
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.24    RPL/2 (R) version 4.1.0.prerelease.0
   Copyright (C) 1989-2011 Dr. BERTRAND Joël    Copyright (C) 1989-2011 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
Line 174  instruction_col_plus(struct_processus *s Line 174  instruction_col_plus(struct_processus *s
   
         liberation(s_etat_processus, s_objet_argument_3);          liberation(s_etat_processus, s_objet_argument_3);
   
         if ((*s_etat_processus).s_liste_variables[(*s_etat_processus)          if ((*(*s_etat_processus).pointeur_variable_courante)
                 .position_variable_courante].variable_verrouillee == d_vrai)                  .variable_verrouillee == d_vrai)
         {          {
             liberation(s_etat_processus, s_objet_argument_1);              liberation(s_etat_processus, s_objet_argument_1);
             liberation(s_etat_processus, s_objet_argument_2);              liberation(s_etat_processus, s_objet_argument_2);
Line 184  instruction_col_plus(struct_processus *s Line 184  instruction_col_plus(struct_processus *s
             return;              return;
         }          }
   
         if ((*s_etat_processus).s_liste_variables          if ((*(*s_etat_processus).pointeur_variable_courante).objet == NULL)
                 [(*s_etat_processus).position_variable_courante].objet == NULL)  
         {          {
             if (pthread_mutex_lock(&((*(*s_etat_processus)              if (pthread_mutex_lock(&((*(*s_etat_processus)
                     .s_liste_variables_partagees).mutex)) != 0)                      .s_liste_variables_partagees).mutex)) != 0)
Line 195  instruction_col_plus(struct_processus *s Line 194  instruction_col_plus(struct_processus *s
             }              }
   
             if (recherche_variable_partagee(s_etat_processus,              if (recherche_variable_partagee(s_etat_processus,
                     (*s_etat_processus).s_liste_variables[(*s_etat_processus)                      (*(*s_etat_processus).pointeur_variable_courante).nom,
                     .position_variable_courante].nom, (*s_etat_processus)                      (*(*s_etat_processus).pointeur_variable_courante)
                     .s_liste_variables[(*s_etat_processus)                      .variable_partagee, (*(*s_etat_processus)
                     .position_variable_courante].variable_partagee,                      .pointeur_variable_courante).origine) == d_faux)
                     (*s_etat_processus).s_liste_variables[(*s_etat_processus)  
                     .position_variable_courante].origine) == d_faux)  
             {              {
                 (*s_etat_processus).erreur_systeme = d_es;                  (*s_etat_processus).erreur_systeme = d_es;
                 (*s_etat_processus).erreur_execution =                  (*s_etat_processus).erreur_execution =
Line 225  instruction_col_plus(struct_processus *s Line 222  instruction_col_plus(struct_processus *s
         }          }
         else          else
         {          {
             s_objet_argument_3 = (*s_etat_processus).s_liste_variables              s_objet_argument_3 = (*(*s_etat_processus)
                     [(*s_etat_processus).position_variable_courante].objet;                      .pointeur_variable_courante).objet;
         }          }
     }      }
     else      else
Line 1183  instruction_col_plus(struct_processus *s Line 1180  instruction_col_plus(struct_processus *s
     {      {
         if (variable_partagee == d_faux)          if (variable_partagee == d_faux)
         {          {
             (*s_etat_processus).s_liste_variables              (*(*s_etat_processus).pointeur_variable_courante).objet =
                     [(*s_etat_processus).position_variable_courante].objet =  
                     s_copie_argument_3;                      s_copie_argument_3;
         }          }
         else          else
Line 1192  instruction_col_plus(struct_processus *s Line 1188  instruction_col_plus(struct_processus *s
             (*(*s_etat_processus).s_liste_variables_partagees).table              (*(*s_etat_processus).s_liste_variables_partagees).table
                     [(*(*s_etat_processus).s_liste_variables_partagees)                      [(*(*s_etat_processus).s_liste_variables_partagees)
                     .position_variable].objet = s_copie_argument_3;                      .position_variable].objet = s_copie_argument_3;
             (*s_etat_processus).s_liste_variables              (*(*s_etat_processus).pointeur_variable_courante).objet = NULL;
                     [(*s_etat_processus).position_variable_courante].objet =  
                     NULL;  
   
             if (pthread_mutex_unlock(&((*(*s_etat_processus)              if (pthread_mutex_unlock(&((*(*s_etat_processus)
                     .s_liste_variables_partagees).mutex)) != 0)                      .s_liste_variables_partagees).mutex)) != 0)
Line 1319  instruction_col_moins(struct_processus * Line 1313  instruction_col_moins(struct_processus *
   
         liberation(s_etat_processus, s_objet_argument_2);          liberation(s_etat_processus, s_objet_argument_2);
   
         if ((*s_etat_processus).s_liste_variables[(*s_etat_processus)          if ((*(*s_etat_processus).pointeur_variable_courante)
                 .position_variable_courante].variable_verrouillee == d_vrai)                  .variable_verrouillee == d_vrai)
         {          {
             liberation(s_etat_processus, s_objet_argument_1);              liberation(s_etat_processus, s_objet_argument_1);
   
Line 1328  instruction_col_moins(struct_processus * Line 1322  instruction_col_moins(struct_processus *
             return;              return;
         }          }
   
         if ((*s_etat_processus).s_liste_variables[(*s_etat_processus)          if ((*(*s_etat_processus).pointeur_variable_courante).objet == NULL)
                 .position_variable_courante].objet == NULL)  
         {          {
             if (pthread_mutex_lock(&((*(*s_etat_processus)              if (pthread_mutex_lock(&((*(*s_etat_processus)
                     .s_liste_variables_partagees).mutex)) != 0)                      .s_liste_variables_partagees).mutex)) != 0)
Line 1339  instruction_col_moins(struct_processus * Line 1332  instruction_col_moins(struct_processus *
             }              }
   
             if (recherche_variable_partagee(s_etat_processus,              if (recherche_variable_partagee(s_etat_processus,
                     (*s_etat_processus).s_liste_variables[(*s_etat_processus)                      (*(*s_etat_processus).pointeur_variable_courante).nom,
                     .position_variable_courante].nom, (*s_etat_processus)                      (*(*s_etat_processus).pointeur_variable_courante)
                     .s_liste_variables[(*s_etat_processus)                      .variable_partagee, (*(*s_etat_processus)
                     .position_variable_courante].variable_partagee,                      .pointeur_variable_courante).origine) == d_faux)
                     (*s_etat_processus).s_liste_variables[(*s_etat_processus)  
                     .position_variable_courante].origine) == d_faux)  
             {              {
                 (*s_etat_processus).erreur_systeme = d_es;                  (*s_etat_processus).erreur_systeme = d_es;
                 (*s_etat_processus).erreur_execution =                  (*s_etat_processus).erreur_execution =
Line 1368  instruction_col_moins(struct_processus * Line 1359  instruction_col_moins(struct_processus *
         }          }
         else          else
         {          {
             s_objet_argument_2 = (*s_etat_processus).s_liste_variables              s_objet_argument_2 = (*(*s_etat_processus)
                     [(*s_etat_processus).position_variable_courante].objet;                      .pointeur_variable_courante).objet;
         }          }
   
         presence_variable = d_vrai;          presence_variable = d_vrai;
Line 1860  instruction_col_moins(struct_processus * Line 1851  instruction_col_moins(struct_processus *
     {      {
         if (variable_partagee == d_faux)          if (variable_partagee == d_faux)
         {          {
             (*s_etat_processus).s_liste_variables              (*(*s_etat_processus).pointeur_variable_courante).objet =
                     [(*s_etat_processus).position_variable_courante].objet =  
                     s_copie_argument_2;                      s_copie_argument_2;
         }          }
         else          else
Line 1869  instruction_col_moins(struct_processus * Line 1859  instruction_col_moins(struct_processus *
             (*(*s_etat_processus).s_liste_variables_partagees).table              (*(*s_etat_processus).s_liste_variables_partagees).table
                     [(*(*s_etat_processus).s_liste_variables_partagees)                      [(*(*s_etat_processus).s_liste_variables_partagees)
                     .position_variable].objet = s_copie_argument_2;                      .position_variable].objet = s_copie_argument_2;
             (*s_etat_processus).s_liste_variables              (*(*s_etat_processus).pointeur_variable_courante).objet = NULL;
                     [(*s_etat_processus).position_variable_courante].objet =  
                     NULL;  
   
             if (pthread_mutex_unlock(&((*(*s_etat_processus)              if (pthread_mutex_unlock(&((*(*s_etat_processus)
                     .s_liste_variables_partagees).mutex)) != 0)                      .s_liste_variables_partagees).mutex)) != 0)

Removed from v.1.16.2.3  
changed lines
  Added in v.1.19


CVSweb interface <joel.bertrand@systella.fr>