Diff for /rpl/src/instructions_e2.c between versions 1.18.2.1 and 1.34

version 1.18.2.1, 2011/04/11 13:02:19 version 1.34, 2012/01/17 14:44:07
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.22    RPL/2 (R) version 4.1.6
   Copyright (C) 1989-2011 Dr. BERTRAND Joël    Copyright (C) 1989-2012 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 1302  instruction_exit(struct_processus *s_eta Line 1302  instruction_exit(struct_processus *s_eta
                 {                  {
                     instruction_majuscule = conversion_majuscule("");                      instruction_majuscule = conversion_majuscule("");
   
                     if ((*s_etat_processus).s_liste_variables                      if ((*(*s_etat_processus).pointeur_variable_courante)
                             [(*s_etat_processus).position_variable_courante]  
                             .objet == NULL)                              .objet == NULL)
                     {                      {
                         if (pthread_mutex_lock(&((*(*s_etat_processus)                          if (pthread_mutex_lock(&((*(*s_etat_processus)
Line 1315  instruction_exit(struct_processus *s_eta Line 1314  instruction_exit(struct_processus *s_eta
                         }                          }
   
                         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).position_variable_courante]                                  .pointeur_variable_courante).nom,
                                 .nom, (*s_etat_processus).s_liste_variables                                  (*(*s_etat_processus)
                                 [(*s_etat_processus).position_variable_courante]                                  .pointeur_variable_courante).variable_partagee,
                                 .variable_partagee,                                  (*(*s_etat_processus)
                                 (*s_etat_processus).s_liste_variables                                  .pointeur_variable_courante).origine) == d_vrai)
                                 [(*s_etat_processus).position_variable_courante]  
                                 .origine) == d_vrai)  
                         {                          {
                             if ((*((*s_etat_processus).s_liste_variables                              if ((*(*(*s_etat_processus)
                                     [(*s_etat_processus)                                      .pointeur_variable_courante).objet).type
                                     .position_variable_courante]).objet).type  
                                     == ADR)                                      == ADR)
                             {                              {
                                 empilement_pile_systeme(s_etat_processus);                                  empilement_pile_systeme(s_etat_processus);
Line 1358  instruction_exit(struct_processus *s_eta Line 1354  instruction_exit(struct_processus *s_eta
   
                                 (*s_etat_processus).position_courante =                                  (*s_etat_processus).position_courante =
                                         (*((unsigned long *)                                          (*((unsigned long *)
                                         ((*((*s_etat_processus)                                          ((*(*(*s_etat_processus)
                                         .s_liste_variables[(*s_etat_processus)                                          .pointeur_variable_courante).objet)
                                         .position_variable_courante].objet))  
                                         .objet)));                                          .objet)));
   
                                 (*s_etat_processus)                                  (*s_etat_processus)
Line 1383  instruction_exit(struct_processus *s_eta Line 1378  instruction_exit(struct_processus *s_eta
                     }                      }
                     else                      else
                     {                      {
                         if ((*((*s_etat_processus).s_liste_variables                          if ((*(*(*s_etat_processus).pointeur_variable_courante)
                                 [(*s_etat_processus)                                  .objet).type == ADR)
                                 .position_variable_courante]).objet).type  
                                 == ADR)  
                         {                          {
                             empilement_pile_systeme(s_etat_processus);                              empilement_pile_systeme(s_etat_processus);
   
Line 1406  instruction_exit(struct_processus *s_eta Line 1399  instruction_exit(struct_processus *s_eta
                                     (*s_etat_processus).niveau_courant;                                      (*s_etat_processus).niveau_courant;
   
                             (*s_etat_processus).position_courante =                              (*s_etat_processus).position_courante =
                                     (*((unsigned long *) ((*((*s_etat_processus)                                      (*((unsigned long *)
                                     .s_liste_variables[(*s_etat_processus)                                      ((*(*(*s_etat_processus)
                                     .position_variable_courante].objet))                                      .pointeur_variable_courante).objet)
                                     .objet)));                                      .objet)));
   
                             (*s_etat_processus)                              (*s_etat_processus)
Line 1530  instruction_exit(struct_processus *s_eta Line 1523  instruction_exit(struct_processus *s_eta
                 {                  {
                     instruction_majuscule = conversion_majuscule("");                      instruction_majuscule = conversion_majuscule("");
   
                     if ((*s_etat_processus).s_liste_variables                      if ((*(*s_etat_processus).pointeur_variable_courante)
                             [(*s_etat_processus).position_variable_courante]  
                             .objet == NULL)                              .objet == NULL)
                     {                      {
                         if (pthread_mutex_lock(&((*(*s_etat_processus)                          if (pthread_mutex_lock(&((*(*s_etat_processus)
Line 1543  instruction_exit(struct_processus *s_eta Line 1535  instruction_exit(struct_processus *s_eta
                         }                          }
   
                         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).position_variable_courante]                                  .pointeur_variable_courante).nom,
                                 .nom, (*s_etat_processus).s_liste_variables                                  (*(*s_etat_processus)
                                 [(*s_etat_processus).position_variable_courante]                                  .pointeur_variable_courante).variable_partagee,
                                 .variable_partagee,                                  (*(*s_etat_processus)
                                 (*s_etat_processus).s_liste_variables                                  .pointeur_variable_courante).origine) == d_vrai)
                                 [(*s_etat_processus).position_variable_courante]  
                                 .origine) == d_vrai)  
                         {                          {
                             if ((*((*s_etat_processus).s_liste_variables                              if ((*(*(*s_etat_processus)
                                     [(*s_etat_processus)                                      .pointeur_variable_courante).objet).type
                                     .position_variable_courante]).objet).type  
                                     == ADR)                                      == ADR)
                             {                              {
                                 empilement_pile_systeme(s_etat_processus);                                  empilement_pile_systeme(s_etat_processus);
Line 1586  instruction_exit(struct_processus *s_eta Line 1575  instruction_exit(struct_processus *s_eta
   
                                 (*s_etat_processus).position_courante =                                  (*s_etat_processus).position_courante =
                                         (*((unsigned long *)                                          (*((unsigned long *)
                                         ((*((*s_etat_processus)                                          ((*(*(*s_etat_processus)
                                         .s_liste_variables[(*s_etat_processus)                                          .pointeur_variable_courante).objet)
                                         .position_variable_courante].objet))  
                                         .objet)));                                          .objet)));
   
                                 (*s_etat_processus)                                  (*s_etat_processus)
Line 1611  instruction_exit(struct_processus *s_eta Line 1599  instruction_exit(struct_processus *s_eta
                     }                      }
                     else                      else
                     {                      {
                         if ((*((*s_etat_processus).s_liste_variables                          if ((*(*(*s_etat_processus).pointeur_variable_courante)
                                 [(*s_etat_processus)                                  .objet).type == ADR)
                                 .position_variable_courante]).objet).type  
                                 == ADR)  
                         {                          {
                             empilement_pile_systeme(s_etat_processus);                              empilement_pile_systeme(s_etat_processus);
   
Line 1634  instruction_exit(struct_processus *s_eta Line 1620  instruction_exit(struct_processus *s_eta
                                     (*s_etat_processus).niveau_courant;                                      (*s_etat_processus).niveau_courant;
   
                             (*s_etat_processus).position_courante =                              (*s_etat_processus).position_courante =
                                     (*((unsigned long *) ((*((*s_etat_processus)                                      (*((unsigned long *)
                                     .s_liste_variables[(*s_etat_processus)                                      ((*(*(*s_etat_processus)
                                     .position_variable_courante].objet))                                      .pointeur_variable_courante).objet)
                                     .objet)));                                      .objet)));
   
                             (*s_etat_processus)                              (*s_etat_processus)

Removed from v.1.18.2.1  
changed lines
  Added in v.1.34


CVSweb interface <joel.bertrand@systella.fr>