Diff for /rpl/src/instructions_c6.c between versions 1.37 and 1.57

version 1.37, 2012/04/03 14:25:22 version 1.57, 2015/01/05 15:32:17
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.7    RPL/2 (R) version 4.1.20
   Copyright (C) 1989-2012 Dr. BERTRAND Joël    Copyright (C) 1989-2015 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 140  instruction_col_fleche(struct_processus Line 140  instruction_col_fleche(struct_processus
     struct_objet                *s_objet;      struct_objet                *s_objet;
     struct_objet                *s_objet_elementaire;      struct_objet                *s_objet_elementaire;
   
     unsigned long               i;      integer8                    i;
     unsigned long               j;      integer8                    j;
   
     (*s_etat_processus).erreur_execution = d_ex;      (*s_etat_processus).erreur_execution = d_ex;
   
Line 206  instruction_col_fleche(struct_processus Line 206  instruction_col_fleche(struct_processus
                     .nombre_lignes;                      .nombre_lignes;
   
             if (((*((struct_matrice *) (*s_objet_elementaire).objet)).tableau =              if (((*((struct_matrice *) (*s_objet_elementaire).objet)).tableau =
                     malloc((*((struct_matrice *) (*s_objet).objet))                      malloc(((size_t) (*((struct_matrice *) (*s_objet).objet))
                     .nombre_lignes * sizeof(integer8 *))) == NULL)                      .nombre_lignes) * sizeof(integer8 *))) == NULL)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;                  (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                 return;                  return;
Line 257  instruction_col_fleche(struct_processus Line 257  instruction_col_fleche(struct_processus
                     .nombre_lignes;                      .nombre_lignes;
   
             if (((*((struct_matrice *) (*s_objet_elementaire).objet)).tableau =              if (((*((struct_matrice *) (*s_objet_elementaire).objet)).tableau =
                     malloc((*((struct_matrice *) (*s_objet).objet))                      malloc(((size_t) (*((struct_matrice *) (*s_objet).objet))
                     .nombre_lignes * sizeof(real8 *))) == NULL)                      .nombre_lignes) * sizeof(real8 *))) == NULL)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;                  (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                 return;                  return;
Line 308  instruction_col_fleche(struct_processus Line 308  instruction_col_fleche(struct_processus
                     .nombre_lignes;                      .nombre_lignes;
   
             if (((*((struct_matrice *) (*s_objet_elementaire).objet)).tableau =              if (((*((struct_matrice *) (*s_objet_elementaire).objet)).tableau =
                     malloc((*((struct_matrice *) (*s_objet).objet))                      malloc(((size_t) (*((struct_matrice *) (*s_objet).objet))
                     .nombre_lignes * sizeof(complex16 *))) == NULL)                      .nombre_lignes) * sizeof(complex16 *))) == NULL)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;                  (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                 return;                  return;
Line 590  instruction_continue(struct_processus *s Line 590  instruction_continue(struct_processus *s
   
     if ((*s_objet).type == PRC)      if ((*s_objet).type == PRC)
     {      {
         if (pthread_mutex_lock(&((*s_etat_processus).mutex)) != 0)          if (pthread_mutex_lock(&((*s_etat_processus).mutex_pile_processus))
                   != 0)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_processus;              (*s_etat_processus).erreur_systeme = d_es_processus;
         }          }
Line 653  instruction_continue(struct_processus *s Line 654  instruction_continue(struct_processus *s
                                     &((*(*((struct_processus_fils *)                                      &((*(*((struct_processus_fils *)
                                     (*s_objet).objet)).thread).mutex)) != 0)                                      (*s_objet).objet)).thread).mutex)) != 0)
                             {                              {
                                   pthread_mutex_unlock(&((*s_etat_processus)
                                           .mutex_pile_processus));
                                 (*s_etat_processus).erreur_systeme =                                  (*s_etat_processus).erreur_systeme =
                                         d_es_processus;                                          d_es_processus;
                                 return;                                  return;
Line 665  instruction_continue(struct_processus *s Line 668  instruction_continue(struct_processus *s
                     if (pthread_mutex_unlock(&((*(*((struct_processus_fils *)                      if (pthread_mutex_unlock(&((*(*((struct_processus_fils *)
                             (*s_objet).objet)).thread).mutex)) != 0)                              (*s_objet).objet)).thread).mutex)) != 0)
                     {                      {
                           pthread_mutex_unlock(&((*s_etat_processus)
                                   .mutex_pile_processus));
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
                     }                      }
Line 673  instruction_continue(struct_processus *s Line 678  instruction_continue(struct_processus *s
                 l_element_courant = (*l_element_courant).suivant;                  l_element_courant = (*l_element_courant).suivant;
             }              }
   
             if (pthread_mutex_unlock(&((*s_etat_processus).mutex)) != 0)              if (pthread_mutex_unlock(&((*s_etat_processus)
                       .mutex_pile_processus)) != 0)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  (*s_etat_processus).erreur_systeme = d_es_processus;
             }              }
Line 836  instruction_clrfuse(struct_processus *s_ Line 842  instruction_clrfuse(struct_processus *s_
 ================================================================================  ================================================================================
 */  */
   
 static inline struct_objet *  static struct_objet *
 creation_table(struct_processus *s_etat_processus,  creation_table(struct_processus *s_etat_processus,
         struct_liste_chainee *dimensions)          struct_liste_chainee *dimensions)
 {  {
     struct_objet        *s_table;      struct_objet        *s_table;
   
     unsigned long       i;      integer8            i;
   
     if ((s_table = allocation(s_etat_processus, TBL)) == NULL)      if ((s_table = allocation(s_etat_processus, TBL)) == NULL)
     {      {
Line 850  creation_table(struct_processus *s_etat_ Line 856  creation_table(struct_processus *s_etat_
     }      }
   
     (*((struct_tableau *) (*s_table).objet)).nombre_elements =      (*((struct_tableau *) (*s_table).objet)).nombre_elements =
             (unsigned long) (*((integer8 *) (*(*dimensions).donnee).objet));              (*((integer8 *) (*(*dimensions).donnee).objet));
   
     dimensions = (*dimensions).suivant;      dimensions = (*dimensions).suivant;
   
     if (((*((struct_tableau *) (*s_table).objet)).elements =      if (((*((struct_tableau *) (*s_table).objet)).elements =
             malloc((*((struct_tableau *) (*s_table).objet))              malloc(((size_t) (*((struct_tableau *) (*s_table).objet))
             .nombre_elements * sizeof(struct_objet *))) == NULL)              .nombre_elements) * sizeof(struct_objet *))) == NULL)
     {      {
         return(NULL);          return(NULL);
     }      }

Removed from v.1.37  
changed lines
  Added in v.1.57


CVSweb interface <joel.bertrand@systella.fr>