Diff for /rpl/src/instructions_c5.c between versions 1.17 and 1.44

version 1.17, 2011/04/11 12:10:07 version 1.44, 2013/03/20 17:11:44
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.0.prerelease.0    RPL/2 (R) version 4.1.13
   Copyright (C) 1989-2011 Dr. BERTRAND Joël    Copyright (C) 1989-2013 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 48  instruction_col_plus(struct_processus *s Line 48  instruction_col_plus(struct_processus *s
     struct_objet                    *s_objet_argument_2;      struct_objet                    *s_objet_argument_2;
     struct_objet                    *s_objet_argument_3;      struct_objet                    *s_objet_argument_3;
   
     unsigned long                   i;      integer8                        i;
     unsigned long                   j;      integer8                        j;
     unsigned long                   l;      integer8                        l;
   
     void                            *tampon;      void                            *tampon;
   
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)  
                     .s_liste_variables_partagees).mutex)) != 0)  
             {  
                 (*s_etat_processus).erreur_systeme = d_es_processus;  
                 return;  
             }  
   
             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) == NULL)
                     (*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 =
                         d_ex_variable_non_definie;                          d_ex_variable_non_definie;
   
                 if (pthread_mutex_unlock(&((*(*s_etat_processus)  
                         .s_liste_variables_partagees).mutex)) != 0)  
                 {  
                     (*s_etat_processus).erreur_systeme = d_es_processus;  
                     return;  
                 }  
   
                 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);
                 return;                  return;
Line 220  instruction_col_plus(struct_processus *s Line 203  instruction_col_plus(struct_processus *s
   
             variable_partagee = d_vrai;              variable_partagee = d_vrai;
             s_objet_argument_3 = (*(*s_etat_processus)              s_objet_argument_3 = (*(*s_etat_processus)
                     .s_liste_variables_partagees).table[(*(*s_etat_processus)                      .pointeur_variable_partagee_courante).objet;
                     .s_liste_variables_partagees).position_variable].objet;  
         }          }
         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 244  instruction_col_plus(struct_processus *s Line 226  instruction_col_plus(struct_processus *s
         if (variable_partagee == d_vrai)          if (variable_partagee == d_vrai)
         {          {
             if (pthread_mutex_unlock(&((*(*s_etat_processus)              if (pthread_mutex_unlock(&((*(*s_etat_processus)
                     .s_liste_variables_partagees).mutex)) != 0)                      .pointeur_variable_partagee_courante).mutex)) != 0)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  (*s_etat_processus).erreur_systeme = d_es_processus;
                 return;                  return;
Line 266  instruction_col_plus(struct_processus *s Line 248  instruction_col_plus(struct_processus *s
         if (variable_partagee == d_vrai)          if (variable_partagee == d_vrai)
         {          {
             if (pthread_mutex_unlock(&((*(*s_etat_processus)              if (pthread_mutex_unlock(&((*(*s_etat_processus)
                     .s_liste_variables_partagees).mutex)) != 0)                      .pointeur_variable_partagee_courante).mutex)) != 0)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  (*s_etat_processus).erreur_systeme = d_es_processus;
                 return;                  return;
Line 290  instruction_col_plus(struct_processus *s Line 272  instruction_col_plus(struct_processus *s
                         .tableau[i];                          .tableau[i];
   
                 if (((*((struct_matrice *) (*s_copie_argument_3).objet))                  if (((*((struct_matrice *) (*s_copie_argument_3).objet))
                         .tableau[i] = malloc((*((struct_matrice *)                          .tableau[i] = malloc(((size_t) (*((struct_matrice *)
                         (*s_copie_argument_3).objet)).nombre_colonnes *                          (*s_copie_argument_3).objet)).nombre_colonnes) *
                         sizeof(real8))) == NULL)                          sizeof(real8))) == NULL)
                 {                  {
                     if (variable_partagee == d_vrai)                      if (variable_partagee == d_vrai)
                     {                      {
                         if (pthread_mutex_unlock(&((*(*s_etat_processus)                          if (pthread_mutex_unlock(&((*(*s_etat_processus)
                                 .s_liste_variables_partagees).mutex)) != 0)                                  .pointeur_variable_partagee_courante).mutex))
                                   != 0)
                         {                          {
                             (*s_etat_processus).erreur_systeme = d_es_processus;                              (*s_etat_processus).erreur_systeme = d_es_processus;
                             return;                              return;
Line 337  instruction_col_plus(struct_processus *s Line 320  instruction_col_plus(struct_processus *s
                         .tableau[i];                          .tableau[i];
   
                 if (((*((struct_matrice *) (*s_copie_argument_3).objet))                  if (((*((struct_matrice *) (*s_copie_argument_3).objet))
                         .tableau[i] = malloc((*((struct_matrice *)                          .tableau[i] = malloc(((size_t) (*((struct_matrice *)
                         (*s_copie_argument_3).objet)).nombre_colonnes *                          (*s_copie_argument_3).objet)).nombre_colonnes) *
                         sizeof(complex16))) == NULL)                          sizeof(complex16))) == NULL)
                 {                  {
                     if (variable_partagee == d_vrai)                      if (variable_partagee == d_vrai)
                     {                      {
                         if (pthread_mutex_unlock(&((*(*s_etat_processus)                          if (pthread_mutex_unlock(&((*(*s_etat_processus)
                                 .s_liste_variables_partagees).mutex)) != 0)                                  .pointeur_variable_partagee_courante).mutex))
                                   != 0)
                         {                          {
                             (*s_etat_processus).erreur_systeme = d_es_processus;                              (*s_etat_processus).erreur_systeme = d_es_processus;
                             return;                              return;
Line 383  instruction_col_plus(struct_processus *s Line 367  instruction_col_plus(struct_processus *s
                         .tableau[i];                          .tableau[i];
   
                 if (((*((struct_matrice *) (*s_copie_argument_3).objet))                  if (((*((struct_matrice *) (*s_copie_argument_3).objet))
                         .tableau[i] = malloc((*((struct_matrice *)                          .tableau[i] = malloc(((size_t) (*((struct_matrice *)
                         (*s_copie_argument_3).objet)).nombre_colonnes *                          (*s_copie_argument_3).objet)).nombre_colonnes) *
                         sizeof(complex16))) == NULL)                          sizeof(complex16))) == NULL)
                 {                  {
                     if (variable_partagee == d_vrai)                      if (variable_partagee == d_vrai)
                     {                      {
                         if (pthread_mutex_unlock(&((*(*s_etat_processus)                          if (pthread_mutex_unlock(&((*(*s_etat_processus)
                                 .s_liste_variables_partagees).mutex)) != 0)                                  .pointeur_variable_partagee_courante).mutex))
                                   != 0)
                         {                          {
                             (*s_etat_processus).erreur_systeme = d_es_processus;                              (*s_etat_processus).erreur_systeme = d_es_processus;
                             return;                              return;
Line 431  instruction_col_plus(struct_processus *s Line 416  instruction_col_plus(struct_processus *s
             if (variable_partagee == d_vrai)              if (variable_partagee == d_vrai)
             {              {
                 if (pthread_mutex_unlock(&((*(*s_etat_processus)                  if (pthread_mutex_unlock(&((*(*s_etat_processus)
                         .s_liste_variables_partagees).mutex)) != 0)                          .pointeur_variable_partagee_courante).mutex)) != 0)
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_processus;                      (*s_etat_processus).erreur_systeme = d_es_processus;
                     return;                      return;
Line 457  instruction_col_plus(struct_processus *s Line 442  instruction_col_plus(struct_processus *s
             if (variable_partagee == d_vrai)              if (variable_partagee == d_vrai)
             {              {
                 if (pthread_mutex_unlock(&((*(*s_etat_processus)                  if (pthread_mutex_unlock(&((*(*s_etat_processus)
                         .s_liste_variables_partagees).mutex)) != 0)                          .pointeur_variable_partagee_courante).mutex)) != 0)
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_processus;                      (*s_etat_processus).erreur_systeme = d_es_processus;
                     return;                      return;
Line 485  instruction_col_plus(struct_processus *s Line 470  instruction_col_plus(struct_processus *s
                     .tableau[i];                      .tableau[i];
   
             if (((*((struct_matrice *) (*s_copie_argument_3).objet)).tableau[i]              if (((*((struct_matrice *) (*s_copie_argument_3).objet)).tableau[i]
                     = malloc((((*((struct_matrice *) (*s_copie_argument_3)                      = malloc((((size_t) (*((struct_matrice *)
                     .objet)).nombre_colonnes) + 1) * sizeof(integer8))) == NULL)                      (*s_copie_argument_3).objet)).nombre_colonnes) + 1) *
                       sizeof(integer8))) == NULL)
             {              {
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 543  instruction_col_plus(struct_processus *s Line 529  instruction_col_plus(struct_processus *s
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 571  instruction_col_plus(struct_processus *s Line 557  instruction_col_plus(struct_processus *s
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 599  instruction_col_plus(struct_processus *s Line 585  instruction_col_plus(struct_processus *s
                         .tableau[i];                          .tableau[i];
   
                 if (((*((struct_matrice *) (*s_copie_argument_3).objet))                  if (((*((struct_matrice *) (*s_copie_argument_3).objet))
                         .tableau[i] = malloc((((*((struct_matrice *)                          .tableau[i] = malloc((((size_t) (*((struct_matrice *)
                         (*s_copie_argument_3).objet)).nombre_colonnes) + 1) *                          (*s_copie_argument_3).objet)).nombre_colonnes) + 1) *
                         sizeof(real8))) == NULL)                          sizeof(real8))) == NULL)
                 {                  {
                     if (variable_partagee == d_vrai)                      if (variable_partagee == d_vrai)
                     {                      {
                         if (pthread_mutex_unlock(&((*(*s_etat_processus)                          if (pthread_mutex_unlock(&((*(*s_etat_processus)
                                 .s_liste_variables_partagees).mutex)) != 0)                                  .pointeur_variable_partagee_courante).mutex))
                                   != 0)
                         {                          {
                             (*s_etat_processus).erreur_systeme = d_es_processus;                              (*s_etat_processus).erreur_systeme = d_es_processus;
                             return;                              return;
Line 624  instruction_col_plus(struct_processus *s Line 611  instruction_col_plus(struct_processus *s
                     if ((signed long) j == (position - 1))                      if ((signed long) j == (position - 1))
                     {                      {
                         ((real8 **) (*((struct_matrice *) (*s_copie_argument_3)                          ((real8 **) (*((struct_matrice *) (*s_copie_argument_3)
                                 .objet)).tableau)[i][j] = ((integer8 **)                                  .objet)).tableau)[i][j] = (real8) ((integer8 **)
                                 (*((struct_matrice *) (*s_objet_argument_1)                                  (*((struct_matrice *) (*s_objet_argument_1)
                                 .objet)).tableau)[i][0];                                  .objet)).tableau)[i][0];
                         l = 1;                          l = 1;
Line 639  instruction_col_plus(struct_processus *s Line 626  instruction_col_plus(struct_processus *s
                     ((real8 **) (*((struct_matrice *) (*s_copie_argument_3)                      ((real8 **) (*((struct_matrice *) (*s_copie_argument_3)
                             .objet)).tableau)[i][(*((struct_matrice *)                              .objet)).tableau)[i][(*((struct_matrice *)
                             (*s_copie_argument_3).objet)).nombre_colonnes] =                              (*s_copie_argument_3).objet)).nombre_colonnes] =
                             ((integer8 **) (*((struct_matrice *)                              (real8) ((integer8 **) (*((struct_matrice *)
                             (*s_objet_argument_1).objet)).tableau)[i][0];                              (*s_objet_argument_1).objet)).tableau)[i][0];
                 }                  }
   
Line 658  instruction_col_plus(struct_processus *s Line 645  instruction_col_plus(struct_processus *s
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 686  instruction_col_plus(struct_processus *s Line 673  instruction_col_plus(struct_processus *s
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 714  instruction_col_plus(struct_processus *s Line 701  instruction_col_plus(struct_processus *s
                         .tableau[i];                          .tableau[i];
   
                 if (((*((struct_matrice *) (*s_copie_argument_3).objet))                  if (((*((struct_matrice *) (*s_copie_argument_3).objet))
                         .tableau[i] = malloc((((*((struct_matrice *)                          .tableau[i] = malloc((((size_t) (*((struct_matrice *)
                         (*s_copie_argument_3).objet)).nombre_colonnes) + 1) *                          (*s_copie_argument_3).objet)).nombre_colonnes) + 1) *
                         sizeof(real8))) == NULL)                          sizeof(real8))) == NULL)
                 {                  {
                     if (variable_partagee == d_vrai)                      if (variable_partagee == d_vrai)
                     {                      {
                         if (pthread_mutex_unlock(&((*(*s_etat_processus)                          if (pthread_mutex_unlock(&((*(*s_etat_processus)
                                 .s_liste_variables_partagees).mutex)) != 0)                                  .pointeur_variable_partagee_courante).mutex))
                                   != 0)
                         {                          {
                             (*s_etat_processus).erreur_systeme = d_es_processus;                              (*s_etat_processus).erreur_systeme = d_es_processus;
                             return;                              return;
Line 776  instruction_col_plus(struct_processus *s Line 764  instruction_col_plus(struct_processus *s
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 804  instruction_col_plus(struct_processus *s Line 792  instruction_col_plus(struct_processus *s
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 832  instruction_col_plus(struct_processus *s Line 820  instruction_col_plus(struct_processus *s
                         .tableau[i];                          .tableau[i];
   
                 if (((*((struct_matrice *) (*s_copie_argument_3).objet))                  if (((*((struct_matrice *) (*s_copie_argument_3).objet))
                         .tableau[i] = malloc((((*((struct_matrice *)                          .tableau[i] = malloc((((size_t) (*((struct_matrice *)
                         (*s_copie_argument_3).objet)).nombre_colonnes) + 1) *                          (*s_copie_argument_3).objet)).nombre_colonnes) + 1) *
                         sizeof(complex16))) == NULL)                          sizeof(complex16))) == NULL)
                 {                  {
                     if (variable_partagee == d_vrai)                      if (variable_partagee == d_vrai)
                     {                      {
                         if (pthread_mutex_unlock(&((*(*s_etat_processus)                          if (pthread_mutex_unlock(&((*(*s_etat_processus)
                                 .s_liste_variables_partagees).mutex)) != 0)                                  .pointeur_variable_partagee_courante).mutex))
                                   != 0)
                         {                          {
                             (*s_etat_processus).erreur_systeme = d_es_processus;                              (*s_etat_processus).erreur_systeme = d_es_processus;
                             return;                              return;
Line 858  instruction_col_plus(struct_processus *s Line 847  instruction_col_plus(struct_processus *s
                     {                      {
                         ((complex16 **) (*((struct_matrice *)                          ((complex16 **) (*((struct_matrice *)
                                 (*s_copie_argument_3).objet)).tableau)[i][j]                                  (*s_copie_argument_3).objet)).tableau)[i][j]
                                 .partie_reelle = ((integer8 **)                                  .partie_reelle = (real8) ((integer8 **)
                                 (*((struct_matrice *) (*s_objet_argument_1)                                  (*((struct_matrice *) (*s_objet_argument_1)
                                 .objet)).tableau)[i][0];                                  .objet)).tableau)[i][0];
                         ((complex16 **) (*((struct_matrice *)                          ((complex16 **) (*((struct_matrice *)
Line 880  instruction_col_plus(struct_processus *s Line 869  instruction_col_plus(struct_processus *s
                     ((complex16 **) (*((struct_matrice *) (*s_copie_argument_3)                      ((complex16 **) (*((struct_matrice *) (*s_copie_argument_3)
                             .objet)).tableau)[i][(*((struct_matrice *)                              .objet)).tableau)[i][(*((struct_matrice *)
                             (*s_copie_argument_3).objet)).nombre_colonnes]                              (*s_copie_argument_3).objet)).nombre_colonnes]
                             .partie_reelle = ((integer8 **)                              .partie_reelle = (real8) ((integer8 **)
                             (*((struct_matrice *) (*s_objet_argument_1).objet))                              (*((struct_matrice *) (*s_objet_argument_1).objet))
                             .tableau)[i][0];                              .tableau)[i][0];
                     ((complex16 **) (*((struct_matrice *) (*s_copie_argument_3)                      ((complex16 **) (*((struct_matrice *) (*s_copie_argument_3)
Line 904  instruction_col_plus(struct_processus *s Line 893  instruction_col_plus(struct_processus *s
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 932  instruction_col_plus(struct_processus *s Line 921  instruction_col_plus(struct_processus *s
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 960  instruction_col_plus(struct_processus *s Line 949  instruction_col_plus(struct_processus *s
                         .tableau[i];                          .tableau[i];
   
                 if (((*((struct_matrice *) (*s_copie_argument_3).objet))                  if (((*((struct_matrice *) (*s_copie_argument_3).objet))
                         .tableau[i] = malloc((((*((struct_matrice *)                          .tableau[i] = malloc((((size_t) (*((struct_matrice *)
                         (*s_copie_argument_3).objet)).nombre_colonnes) + 1) *                          (*s_copie_argument_3).objet)).nombre_colonnes) + 1) *
                         sizeof(complex16))) == NULL)                          sizeof(complex16))) == NULL)
                 {                  {
                     if (variable_partagee == d_vrai)                      if (variable_partagee == d_vrai)
                     {                      {
                         if (pthread_mutex_unlock(&((*(*s_etat_processus)                          if (pthread_mutex_unlock(&((*(*s_etat_processus)
                                 .s_liste_variables_partagees).mutex)) != 0)                                  .pointeur_variable_partagee_courante).mutex))
                                   != 0)
                         {                          {
                             (*s_etat_processus).erreur_systeme = d_es_processus;                              (*s_etat_processus).erreur_systeme = d_es_processus;
                             return;                              return;
Line 1032  instruction_col_plus(struct_processus *s Line 1022  instruction_col_plus(struct_processus *s
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1060  instruction_col_plus(struct_processus *s Line 1050  instruction_col_plus(struct_processus *s
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1088  instruction_col_plus(struct_processus *s Line 1078  instruction_col_plus(struct_processus *s
                         .tableau[i];                          .tableau[i];
   
                 if (((*((struct_matrice *) (*s_copie_argument_3).objet))                  if (((*((struct_matrice *) (*s_copie_argument_3).objet))
                         .tableau[i] = malloc((((*((struct_matrice *)                          .tableau[i] = malloc((((size_t) (*((struct_matrice *)
                         (*s_copie_argument_3).objet)).nombre_colonnes) + 1) *                          (*s_copie_argument_3).objet)).nombre_colonnes) + 1) *
                         sizeof(complex16))) == NULL)                          sizeof(complex16))) == NULL)
                 {                  {
                     if (variable_partagee == d_vrai)                      if (variable_partagee == d_vrai)
                     {                      {
                         if (pthread_mutex_unlock(&((*(*s_etat_processus)                          if (pthread_mutex_unlock(&((*(*s_etat_processus)
                                 .s_liste_variables_partagees).mutex)) != 0)                                  .pointeur_variable_partagee_courante).mutex))
                                   != 0)
                         {                          {
                             (*s_etat_processus).erreur_systeme = d_es_processus;                              (*s_etat_processus).erreur_systeme = d_es_processus;
                             return;                              return;
Line 1183  instruction_col_plus(struct_processus *s Line 1174  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
         {          {
             (*(*s_etat_processus).s_liste_variables_partagees).table              (*(*s_etat_processus).pointeur_variable_partagee_courante).objet =
                     [(*(*s_etat_processus).s_liste_variables_partagees)                      s_copie_argument_3;
                     .position_variable].objet = s_copie_argument_3;              (*(*s_etat_processus).pointeur_variable_courante).objet = NULL;
             (*s_etat_processus).s_liste_variables  
                     [(*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)                      .pointeur_variable_partagee_courante).mutex)) != 0)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  (*s_etat_processus).erreur_systeme = d_es_processus;
                 return;                  return;
Line 1238  instruction_col_moins(struct_processus * Line 1225  instruction_col_moins(struct_processus *
     struct_objet                *s_objet_argument_2;      struct_objet                *s_objet_argument_2;
     struct_objet                *s_objet_resultat;      struct_objet                *s_objet_resultat;
   
     unsigned long               i;      integer8                    i;
     unsigned long               j;      integer8                    j;
     unsigned long               k;      integer8                    k;
     unsigned long               colonne;      integer8                    colonne;
   
     void                        *tampon;      void                        *tampon;
   
Line 1319  instruction_col_moins(struct_processus * Line 1306  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 1315  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)  
                     .s_liste_variables_partagees).mutex)) != 0)  
             {  
                 (*s_etat_processus).erreur_systeme = d_es_processus;  
                 return;  
             }  
   
             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) == NULL)
                     (*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 =
                         d_ex_variable_non_definie;                          d_ex_variable_non_definie;
   
                 if (pthread_mutex_unlock(&((*(*s_etat_processus)  
                         .s_liste_variables_partagees).mutex)) != 0)  
                 {  
                     (*s_etat_processus).erreur_systeme = d_es_processus;  
                     return;  
                 }  
   
                 liberation(s_etat_processus, s_objet_argument_1);                  liberation(s_etat_processus, s_objet_argument_1);
                 return;                  return;
             }              }
   
             variable_partagee = d_vrai;              variable_partagee = d_vrai;
             s_objet_argument_2 = (*(*s_etat_processus)              s_objet_argument_2 = (*(*s_etat_processus)
                     .s_liste_variables_partagees).table[(*(*s_etat_processus)                      .pointeur_variable_partagee_courante).objet;
                     .s_liste_variables_partagees).position_variable].objet;  
         }          }
         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 1385  instruction_col_moins(struct_processus * Line 1354  instruction_col_moins(struct_processus *
         if (variable_partagee == d_vrai)          if (variable_partagee == d_vrai)
         {          {
             if (pthread_mutex_unlock(&((*(*s_etat_processus)              if (pthread_mutex_unlock(&((*(*s_etat_processus)
                     .s_liste_variables_partagees).mutex)) != 0)                      .pointeur_variable_partagee_courante).mutex)) != 0)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  (*s_etat_processus).erreur_systeme = d_es_processus;
                 return;                  return;
Line 1411  instruction_col_moins(struct_processus * Line 1380  instruction_col_moins(struct_processus *
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1437  instruction_col_moins(struct_processus * Line 1406  instruction_col_moins(struct_processus *
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1454  instruction_col_moins(struct_processus * Line 1423  instruction_col_moins(struct_processus *
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1480  instruction_col_moins(struct_processus * Line 1449  instruction_col_moins(struct_processus *
                     (*s_objet_resultat).type = MIN;                      (*s_objet_resultat).type = MIN;
   
                     if (((*((struct_matrice *) (*s_objet_resultat).objet))                      if (((*((struct_matrice *) (*s_objet_resultat).objet))
                             .tableau = malloc((*((struct_matrice *)                              .tableau = malloc(((size_t) (*((struct_matrice *)
                             (*s_objet_resultat).objet)).nombre_lignes *                              (*s_objet_resultat).objet)).nombre_lignes) *
                             sizeof(integer8 *))) == NULL)                              sizeof(integer8 *))) == NULL)
                     {                      {
                         if (variable_partagee == d_vrai)                          if (variable_partagee == d_vrai)
                         {                          {
                             if (pthread_mutex_unlock(&((*(*s_etat_processus)                              if (pthread_mutex_unlock(&((*(*s_etat_processus)
                                     .s_liste_variables_partagees).mutex)) != 0)                                      .pointeur_variable_partagee_courante)
                                       .mutex)) != 0)
                             {                              {
                                 (*s_etat_processus).erreur_systeme =                                  (*s_etat_processus).erreur_systeme =
                                         d_es_processus;                                          d_es_processus;
Line 1509  instruction_col_moins(struct_processus * Line 1479  instruction_col_moins(struct_processus *
                             if (variable_partagee == d_vrai)                              if (variable_partagee == d_vrai)
                             {                              {
                                 if (pthread_mutex_unlock(&((*(*s_etat_processus)                                  if (pthread_mutex_unlock(&((*(*s_etat_processus)
                                         .s_liste_variables_partagees).mutex))                                          .pointeur_variable_partagee_courante)
                                         != 0)                                          .mutex)) != 0)
                                 {                                  {
                                     (*s_etat_processus).erreur_systeme =                                      (*s_etat_processus).erreur_systeme =
                                             d_es_processus;                                              d_es_processus;
Line 1540  instruction_col_moins(struct_processus * Line 1510  instruction_col_moins(struct_processus *
                                 (*s_copie_argument_2).objet)).tableau)[i];                                  (*s_copie_argument_2).objet)).tableau)[i];
   
                         if ((((*((struct_matrice *) (*s_copie_argument_2)                          if ((((*((struct_matrice *) (*s_copie_argument_2)
                                 .objet)).tableau)[i] = malloc(                                  .objet)).tableau)[i] = malloc(((size_t)
                                 ((*((struct_matrice *) (*s_copie_argument_2)                                  ((*((struct_matrice *) (*s_copie_argument_2)
                                 .objet)).nombre_colonnes - 1) *                                  .objet)).nombre_colonnes) - 1) *
                                 sizeof(integer8))) == NULL)                                  sizeof(integer8))) == NULL)
                         {                           { 
                             if (variable_partagee == d_vrai)                              if (variable_partagee == d_vrai)
                             {                              {
                                 if (pthread_mutex_unlock(&((*(*s_etat_processus)                                  if (pthread_mutex_unlock(&((*(*s_etat_processus)
                                         .s_liste_variables_partagees).mutex))                                          .pointeur_variable_partagee_courante)
                                         != 0)                                          .mutex)) != 0)
                                 {                                  {
                                     (*s_etat_processus).erreur_systeme =                                      (*s_etat_processus).erreur_systeme =
                                             d_es_processus;                                              d_es_processus;
Line 1589  instruction_col_moins(struct_processus * Line 1559  instruction_col_moins(struct_processus *
                     (*s_objet_resultat).type = MRL;                      (*s_objet_resultat).type = MRL;
   
                     if (((*((struct_matrice *) (*s_objet_resultat).objet))                      if (((*((struct_matrice *) (*s_objet_resultat).objet))
                             .tableau = malloc((*((struct_matrice *)                              .tableau = malloc(((size_t) (*((struct_matrice *)
                             (*s_objet_resultat).objet)).nombre_lignes *                              (*s_objet_resultat).objet)).nombre_lignes) *
                             sizeof(real8 *))) == NULL)                              sizeof(real8 *))) == NULL)
                     {                      {
                         if (variable_partagee == d_vrai)                          if (variable_partagee == d_vrai)
                         {                          {
                             if (pthread_mutex_unlock(&((*(*s_etat_processus)                              if (pthread_mutex_unlock(&((*(*s_etat_processus)
                                     .s_liste_variables_partagees).mutex)) != 0)                                      .pointeur_variable_partagee_courante)
                                       .mutex)) != 0)
                             {                              {
                                 (*s_etat_processus).erreur_systeme =                                  (*s_etat_processus).erreur_systeme =
                                         d_es_processus;                                          d_es_processus;
Line 1618  instruction_col_moins(struct_processus * Line 1589  instruction_col_moins(struct_processus *
                             if (variable_partagee == d_vrai)                              if (variable_partagee == d_vrai)
                             {                              {
                                 if (pthread_mutex_unlock(&((*(*s_etat_processus)                                  if (pthread_mutex_unlock(&((*(*s_etat_processus)
                                         .s_liste_variables_partagees).mutex))                                          .pointeur_variable_partagee_courante)
                                         != 0)                                          .mutex)) != 0)
                                 {                                  {
                                     (*s_etat_processus).erreur_systeme =                                      (*s_etat_processus).erreur_systeme =
                                             d_es_processus;                                              d_es_processus;
Line 1649  instruction_col_moins(struct_processus * Line 1620  instruction_col_moins(struct_processus *
                                 (*s_copie_argument_2).objet)).tableau)[i];                                  (*s_copie_argument_2).objet)).tableau)[i];
   
                         if ((((*((struct_matrice *) (*s_copie_argument_2)                          if ((((*((struct_matrice *) (*s_copie_argument_2)
                                 .objet)).tableau)[i] = malloc(                                  .objet)).tableau)[i] = malloc(((size_t)
                                 ((*((struct_matrice *) (*s_copie_argument_2)                                  ((*((struct_matrice *) (*s_copie_argument_2)
                                 .objet)).nombre_colonnes - 1) *                                  .objet)).nombre_colonnes) - 1) *
                                 sizeof(real8))) == NULL)                                  sizeof(real8))) == NULL)
                         {                          {
                             if (variable_partagee == d_vrai)                              if (variable_partagee == d_vrai)
                             {                              {
                                 if (pthread_mutex_unlock(&((*(*s_etat_processus)                                  if (pthread_mutex_unlock(&((*(*s_etat_processus)
                                         .s_liste_variables_partagees).mutex))                                          .pointeur_variable_partagee_courante)
                                         != 0)                                          .mutex)) != 0)
                                 {                                  {
                                     (*s_etat_processus).erreur_systeme =                                      (*s_etat_processus).erreur_systeme =
                                             d_es_processus;                                              d_es_processus;
Line 1698  instruction_col_moins(struct_processus * Line 1669  instruction_col_moins(struct_processus *
                     (*s_objet_resultat).type = MCX;                      (*s_objet_resultat).type = MCX;
   
                     if (((*((struct_matrice *) (*s_objet_resultat).objet))                      if (((*((struct_matrice *) (*s_objet_resultat).objet))
                             .tableau = malloc((*((struct_matrice *)                              .tableau = malloc(((size_t) (*((struct_matrice *)
                             (*s_objet_resultat).objet)).nombre_lignes *                              (*s_objet_resultat).objet)).nombre_lignes) *
                             sizeof(complex16 *))) == NULL)                              sizeof(complex16 *))) == NULL)
                     {                      {
                         if (variable_partagee == d_vrai)                          if (variable_partagee == d_vrai)
                         {                          {
                             if (pthread_mutex_unlock(&((*(*s_etat_processus)                              if (pthread_mutex_unlock(&((*(*s_etat_processus)
                                     .s_liste_variables_partagees).mutex))                                      .pointeur_variable_partagee_courante)
                                     != 0)                                      .mutex)) != 0)
                             {                              {
                                 (*s_etat_processus).erreur_systeme =                                  (*s_etat_processus).erreur_systeme =
                                         d_es_processus;                                          d_es_processus;
Line 1729  instruction_col_moins(struct_processus * Line 1700  instruction_col_moins(struct_processus *
                             if (variable_partagee == d_vrai)                              if (variable_partagee == d_vrai)
                             {                              {
                                 if (pthread_mutex_unlock(&((*(*s_etat_processus)                                  if (pthread_mutex_unlock(&((*(*s_etat_processus)
                                         .s_liste_variables_partagees).mutex))                                          .pointeur_variable_partagee_courante)
                                         != 0)                                          .mutex)) != 0)
                                 {                                  {
                                     (*s_etat_processus).erreur_systeme =                                      (*s_etat_processus).erreur_systeme =
                                             d_es_processus;                                              d_es_processus;
Line 1767  instruction_col_moins(struct_processus * Line 1738  instruction_col_moins(struct_processus *
                                 (*s_copie_argument_2).objet)).tableau)[i];                                  (*s_copie_argument_2).objet)).tableau)[i];
   
                         if ((((*((struct_matrice *) (*s_copie_argument_2)                          if ((((*((struct_matrice *) (*s_copie_argument_2)
                                 .objet)).tableau)[i] = malloc(                                  .objet)).tableau)[i] = malloc(((size_t)
                                 ((*((struct_matrice *) (*s_copie_argument_2)                                  ((*((struct_matrice *) (*s_copie_argument_2)
                                 .objet)).nombre_colonnes - 1) *                                  .objet)).nombre_colonnes) - 1) *
                                 sizeof(complex16))) == NULL)                                  sizeof(complex16))) == NULL)
                         {                          {
                             if (variable_partagee == d_vrai)                              if (variable_partagee == d_vrai)
                             {                              {
                                 if (pthread_mutex_unlock(&((*(*s_etat_processus)                                  if (pthread_mutex_unlock(&((*(*s_etat_processus)
                                         .s_liste_variables_partagees).mutex))                                          .pointeur_variable_partagee_courante)
                                         != 0)                                          .mutex)) != 0)
                                 {                                  {
                                     (*s_etat_processus).erreur_systeme =                                      (*s_etat_processus).erreur_systeme =
                                             d_es_processus;                                              d_es_processus;
Line 1860  instruction_col_moins(struct_processus * Line 1831  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
         {          {
             (*(*s_etat_processus).s_liste_variables_partagees).table              (*(*s_etat_processus).pointeur_variable_partagee_courante).objet =
                     [(*(*s_etat_processus).s_liste_variables_partagees)                      s_copie_argument_2;
                     .position_variable].objet = s_copie_argument_2;              (*(*s_etat_processus).pointeur_variable_courante).objet = NULL;
             (*s_etat_processus).s_liste_variables  
                     [(*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)                      .pointeur_variable_partagee_courante).mutex)) != 0)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  (*s_etat_processus).erreur_systeme = d_es_processus;
                 return;                  return;

Removed from v.1.17  
changed lines
  Added in v.1.44


CVSweb interface <joel.bertrand@systella.fr>