Diff for /rpl/src/evaluation.c between versions 1.94 and 1.95

version 1.94, 2015/09/18 13:41:09 version 1.95, 2015/09/24 09:44:07
Line 3082  evaluation(struct_processus *s_etat_proc Line 3082  evaluation(struct_processus *s_etat_proc
                                     instruction_courante;                                      instruction_courante;
                             return(d_erreur);                              return(d_erreur);
                         }                          }
   
                           // Si l'objet élémentaire est un nom et que ce nom n'est
                           // pas un nom symbolique, il convient de l'évaluer.
   
                           if ((*s_objet_elementaire).type == NOM)
                           {
                               if (((*((struct_nom *) (*s_objet_elementaire)
                                       .objet)).symbole == d_faux) ||
                                       (type_evaluation == 'N'))
                               {
                                   if (evaluation(s_etat_processus,
                                           s_objet_elementaire, 'E') == d_erreur)
                                   {
                                       if (presence_variable_partagee == d_vrai)
                                       {
                                           (*(*s_etat_processus)
                                                   .pointeur_variable_courante)
                                                   .objet = NULL;
   
                                           if (pthread_mutex_unlock(
                                               &((*(*s_etat_processus)
                                               .pointeur_variable_partagee_courante
                                               ).mutex)) != 0)
                                           {
                                               (*s_etat_processus).erreur_systeme =
                                                       d_es_processus;
                                           }
                                       }
   
                                       if (presence_egalite == d_vrai)
                                       {
                                           liberation(s_etat_processus,
                                                   s_objet_evalue);
                                       }
   
                                       (*s_etat_processus).erreur_systeme =
                                               d_es_allocation_memoire;
                                       (*s_etat_processus).instruction_courante =
                                               instruction_courante;
                                       return(d_erreur);
                                   }
   
                                   liberation(s_etat_processus,
                                           s_objet_elementaire);
   
   
                                   if (depilement(s_etat_processus,
                                           &((*s_etat_processus).l_base_pile),
                                           &s_objet_elementaire) == d_erreur)
                                   {
                                       if (presence_variable_partagee == d_vrai)
                                       {
                                           (*(*s_etat_processus)
                                                   .pointeur_variable_courante)
                                                   .objet = NULL;
   
                                           if (pthread_mutex_unlock(
                                               &((*(*s_etat_processus)
                                               .pointeur_variable_partagee_courante
                                               ).mutex)) != 0)
                                           {
                                               (*s_etat_processus).erreur_systeme =
                                                       d_es_processus;
                                           }
                                       }
   
                                       if (presence_egalite == d_vrai)
                                       {
                                           liberation(s_etat_processus,
                                                   s_objet_evalue);
                                       }
   
                                       (*s_etat_processus).erreur_systeme =
                                               d_es_allocation_memoire;
                                       (*s_etat_processus).instruction_courante =
                                               instruction_courante;
                                       return(d_erreur);
                                   }
                               }
                           }
                     }                      }
   
                     /*                      /*
Line 3239  evaluation(struct_processus *s_etat_proc Line 3319  evaluation(struct_processus *s_etat_proc
                                     instruction_courante;                                      instruction_courante;
                             return(d_erreur);                              return(d_erreur);
                         }                          }
   
                           // Si l'objet élémentaire est un nom et que ce nom n'est
                           // pas un nom symbolique, il convient de l'évaluer.
   
                           if ((*s_objet_elementaire).type == NOM)
                           {
                               if (((*((struct_nom *) (*s_objet_elementaire)
                                       .objet)).symbole == d_faux) ||
                                       (type_evaluation == 'N'))
                               {
                                   if (evaluation(s_etat_processus,
                                           s_objet_elementaire, 'E') == d_erreur)
                                   {
                                       if (presence_variable_partagee == d_vrai)
                                       {
                                           (*(*s_etat_processus)
                                                   .pointeur_variable_courante)
                                                   .objet = NULL;
   
                                           if (pthread_mutex_unlock(
                                               &((*(*s_etat_processus)
                                               .pointeur_variable_partagee_courante
                                               ).mutex)) != 0)
                                           {
                                               (*s_etat_processus).erreur_systeme =
                                                       d_es_processus;
                                           }
                                       }
   
                                       if (presence_egalite == d_vrai)
                                       {
                                           liberation(s_etat_processus,
                                                   s_objet_evalue);
                                       }
   
                                       (*s_etat_processus).erreur_systeme =
                                               d_es_allocation_memoire;
                                       (*s_etat_processus).instruction_courante =
                                               instruction_courante;
                                       return(d_erreur);
                                   }
   
                                   liberation(s_etat_processus,
                                           s_objet_elementaire);
   
   
                                   if (depilement(s_etat_processus,
                                           &((*s_etat_processus).l_base_pile),
                                           &s_objet_elementaire) == d_erreur)
                                   {
                                       if (presence_variable_partagee == d_vrai)
                                       {
                                           (*(*s_etat_processus)
                                                   .pointeur_variable_courante)
                                                   .objet = NULL;
   
                                           if (pthread_mutex_unlock(
                                               &((*(*s_etat_processus)
                                               .pointeur_variable_partagee_courante
                                               ).mutex)) != 0)
                                           {
                                               (*s_etat_processus).erreur_systeme =
                                                       d_es_processus;
                                           }
                                       }
   
                                       if (presence_egalite == d_vrai)
                                       {
                                           liberation(s_etat_processus,
                                                   s_objet_evalue);
                                       }
   
                                       (*s_etat_processus).erreur_systeme =
                                               d_es_allocation_memoire;
                                       (*s_etat_processus).instruction_courante =
                                               instruction_courante;
                                       return(d_erreur);
                                   }
                               }
                           }
                     }                      }
                     else if (((*((*(*s_etat_processus)                      else if (((*((*(*s_etat_processus)
                             .pointeur_variable_courante).objet)).type == ALG) ||                              .pointeur_variable_courante).objet)).type == ALG) ||

Removed from v.1.94  
changed lines
  Added in v.1.95


CVSweb interface <joel.bertrand@systella.fr>