Diff for /rpl/src/instructions_g2.c between versions 1.66 and 1.67

version 1.66, 2018/12/22 13:11:52 version 1.67, 2018/12/22 13:19:58
Line 1262  instruction_get(struct_processus *s_etat Line 1262  instruction_get(struct_processus *s_etat
                 return;                  return;
             }              }
         }          }
           else if ((*s_objet_3).type == REC)
           {
               if ((*s_objet_1).type != CHN)
               {
                   if (variable_partagee == d_vrai)
                   {
                       if (pthread_mutex_unlock(&((*(*s_etat_processus)
                               .pointeur_variable_partagee_courante).mutex)) != 0)
                       {
                           (*s_etat_processus).erreur_systeme = d_es_processus;
                           return;
                       }
                   }
   
                   liberation(s_etat_processus, s_objet_1);
                   liberation(s_etat_processus, s_objet_2);
   
                   (*s_etat_processus).erreur_execution =
                           d_ex_erreur_type_argument;
                   return;
               }
   
               s_objet_noms = (*((struct_record *) (*s_objet_3).objet)).noms;
   
               if ((s_enregistrement = bsearch((unsigned char *)
                       (*s_objet_1).objet, (*((struct_tableau *)
                       (*s_objet_noms).objet)).elements,
                       (size_t) (*((struct_tableau *) (*s_objet_noms).objet))
                       .nombre_elements, sizeof(struct_objet *),
                       fonction_comparaison)) == NULL)
               {
                   if (variable_partagee == d_vrai)
                   {
                       if (pthread_mutex_unlock(&((*(*s_etat_processus)
                               .pointeur_variable_partagee_courante).mutex)) != 0)
                       {
                           (*s_etat_processus).erreur_systeme = d_es_processus;
                           return;
                       }
                   }
   
                   liberation(s_etat_processus, s_objet_1);
                   liberation(s_etat_processus, s_objet_2);
   
                   (*s_etat_processus).erreur_execution = d_ex_element_inexistant;
                   return;
               }
   
               indice_i = s_enregistrement - (*((struct_tableau *)
                       (*s_objet_noms).objet)).elements;
   
               // Récupération de l'objet dans le tableau données
   
               if ((s_objet_resultat = copie_objet(s_etat_processus,
                       (*((struct_tableau *) (*(*((struct_record *)
                       (*s_objet_3).objet)).donnees).objet)).elements[indice_i],
                       'P')) == NULL)
               {
                   if (variable_partagee == d_vrai)
                   {
                       if (pthread_mutex_unlock(&((*(*s_etat_processus)
                               .pointeur_variable_partagee_courante).mutex)) != 0)
                       {
                           (*s_etat_processus).erreur_systeme = d_es_processus;
                           return;
                       }
                   }
   
                   (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                   return;
               }
           }
         else          else
         {          {
             if (variable_partagee == d_vrai)              if (variable_partagee == d_vrai)

Removed from v.1.66  
changed lines
  Added in v.1.67


CVSweb interface <joel.bertrand@systella.fr>