--- rpl/src/instructions_p2.c 2010/03/04 10:17:52 1.4 +++ rpl/src/instructions_p2.c 2021/03/13 12:50:46 1.71 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.0.12 - Copyright (C) 1989-2010 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.33 + Copyright (C) 1989-2021 Dr. BERTRAND Joël This file is part of RPL/2. @@ -20,7 +20,7 @@ */ -#include "rpl.conv.h" +#include "rpl-conv.h" /* @@ -38,6 +38,8 @@ void instruction_p_vers_r(struct_processus *s_etat_processus) { + double angle; + struct_liste_chainee *l_element_courant; struct_liste_chainee *l_element_precedent; @@ -110,7 +112,7 @@ instruction_p_vers_r(struct_processus *s if ((*s_objet_argument).type == INT) { (*((struct_complexe16 *) (*s_objet_resultat).objet)).partie_reelle - = (*((integer8 *) (*s_objet_argument).objet)); + = (real8) (*((integer8 *) (*s_objet_argument).objet)); } else { @@ -136,20 +138,20 @@ instruction_p_vers_r(struct_processus *s return; } + angle = (*((struct_complexe16 *) (*s_objet_argument).objet)) + .partie_imaginaire; + if (test_cfsf(s_etat_processus, 60) == d_faux) { - conversion_degres_vers_radians(&((*((struct_complexe16 *) - (*s_objet_argument).objet)).partie_imaginaire)); + conversion_degres_vers_radians(&angle); } (*((struct_complexe16 *) (*s_objet_resultat).objet)).partie_reelle = (*((struct_complexe16 *) (*s_objet_argument).objet)) - .partie_reelle * cos((*((struct_complexe16 *) - (*s_objet_argument).objet)).partie_imaginaire); + .partie_reelle * cos(angle); (*((struct_complexe16 *) (*s_objet_resultat).objet)).partie_imaginaire = (*((struct_complexe16 *) (*s_objet_argument).objet)) - .partie_reelle * sin((*((struct_complexe16 *) - (*s_objet_argument).objet)).partie_imaginaire); + .partie_reelle * sin(angle); } /* @@ -372,6 +374,14 @@ instruction_p_vers_r(struct_processus *s ================================================================================ */ +static int +fonction_comparaison(const void *argument_1, const void *argument_2) +{ + return(strcmp((unsigned char *) argument_1, + (unsigned char *) (**((struct_objet **) argument_2)).objet)); +} + + void instruction_put(struct_processus *s_etat_processus) { @@ -381,17 +391,18 @@ instruction_put(struct_processus *s_etat struct_objet *s_copie_3; struct_objet *s_copie_4; + struct_objet **s_enregistrement; struct_objet *s_objet_1; struct_objet *s_objet_2; struct_objet *s_objet_3; struct_objet *s_objet_4; struct_objet *s_objet_element; - unsigned long i; - unsigned long indice_i; - unsigned long indice_j; - unsigned long j; - unsigned long nombre_dimensions; + integer8 i; + integer8 indice_i; + integer8 indice_j; + integer8 j; + integer8 nombre_dimensions; void *tampon; @@ -426,10 +437,10 @@ instruction_put(struct_processus *s_etat " %s, %s, %s, %s, %s,\n" " %s, %s, %s, %s, %s,\n" " %s, %s, %s, %s,\n" - " %s, %s\n", + " %s, %s, %s\n", d_INT, d_REL, d_CPL, d_VIN, d_VRL, d_VCX, d_MIN, d_MRL, d_MCX, d_TAB, d_BIN, d_NOM, d_CHN, d_LST, d_ALG, d_RPN, d_FCH, d_SCK, - d_SQL, d_SLB, d_PRC, d_MTX); + d_SQL, d_SLB, d_PRC, d_MTX, d_REC); printf("-> 1: %s\n\n", d_LST); printf(" 3: %s\n", d_TAB); @@ -438,22 +449,34 @@ instruction_put(struct_processus *s_etat " %s, %s, %s, %s, %s,\n" " %s, %s, %s, %s, %s,\n" " %s, %s, %s, %s,\n" - " %s, %s\n", + " %s, %s, %s\n", d_INT, d_REL, d_CPL, d_VIN, d_VRL, d_VCX, d_MIN, d_MRL, d_MCX, d_TAB, d_BIN, d_NOM, d_CHN, d_LST, d_ALG, d_RPN, d_FCH, d_SCK, - d_SQL, d_SLB, d_PRC, d_MTX); + d_SQL, d_SLB, d_PRC, d_MTX, d_REC); printf("-> 1: %s\n\n", d_TAB); + printf(" 3: %s\n", d_REC); + printf(" 2: %s\n", d_CHN); + printf(" 1: %s, %s, %s, %s, %s, %s,\n" + " %s, %s, %s, %s, %s,\n" + " %s, %s, %s, %s, %s,\n" + " %s, %s, %s, %s,\n" + " %s, %s, %s\n", + d_INT, d_REL, d_CPL, d_VIN, d_VRL, d_VCX, d_MIN, d_MRL, d_MCX, + d_TAB, d_BIN, d_NOM, d_CHN, d_LST, d_ALG, d_RPN, d_FCH, d_SCK, + d_SQL, d_SLB, d_PRC, d_MTX, d_REC); + printf("-> 1: %s\n\n", d_REC); + printf(" 3: %s\n", d_NOM); printf(" 2: %s, %s\n", d_LST, d_INT); printf(" 1: %s, %s, %s, %s, %s, %s,\n" " %s, %s, %s, %s, %s,\n" " %s, %s, %s, %s, %s,\n" " %s, %s, %s, %s,\n" - " %s, %s\n", + " %s, %s, %s\n", d_INT, d_REL, d_CPL, d_VIN, d_VRL, d_VCX, d_MIN, d_MRL, d_MCX, d_TAB, d_BIN, d_NOM, d_CHN, d_LST, d_ALG, d_RPN, d_FCH, d_SCK, - d_SQL, d_SLB, d_PRC, d_MTX); + d_SQL, d_SLB, d_PRC, d_MTX, d_REC); return; } @@ -608,8 +631,8 @@ instruction_put(struct_processus *s_etat (*s_objet_3).type = VRL; if (((*((struct_vecteur *) (*s_objet_3).objet)).tableau - = malloc((*((struct_vecteur *) - (*s_objet_3).objet)).taille * sizeof(real8))) + = malloc(((size_t) (*((struct_vecteur *) + (*s_objet_3).objet)).taille) * sizeof(real8))) == NULL) { (*s_etat_processus).erreur_systeme = @@ -643,8 +666,8 @@ instruction_put(struct_processus *s_etat (*s_objet_3).type = VCX; if (((*((struct_vecteur *) (*s_objet_3).objet)).tableau - = malloc((*((struct_vecteur *) - (*s_objet_3).objet)).taille * + = malloc(((size_t) (*((struct_vecteur *) + (*s_objet_3).objet)).taille) * sizeof(struct_complexe16))) == NULL) { (*s_etat_processus).erreur_systeme = @@ -724,8 +747,8 @@ instruction_put(struct_processus *s_etat (*s_objet_3).type = VCX; if (((*((struct_vecteur *) (*s_objet_3).objet)).tableau - = malloc((*((struct_vecteur *) - (*s_objet_3).objet)).taille * + = malloc(((size_t) (*((struct_vecteur *) + (*s_objet_3).objet)).taille) * sizeof(struct_complexe16))) == NULL) { (*s_etat_processus).erreur_systeme = @@ -967,8 +990,8 @@ instruction_put(struct_processus *s_etat (*s_objet_3).type = MRL; if (((*((struct_matrice *) (*s_objet_3).objet)).tableau - = malloc((*((struct_matrice *) - (*s_objet_3).objet)).nombre_lignes * sizeof(real8 *))) + = malloc(((size_t) (*((struct_matrice *) + (*s_objet_3).objet)).nombre_lignes) * sizeof(real8 *))) == NULL) { (*s_etat_processus).erreur_systeme = @@ -981,8 +1004,8 @@ instruction_put(struct_processus *s_etat { if ((((real8 **) (*((struct_matrice *) (*s_objet_3).objet)).tableau)[i] - = malloc((*((struct_matrice *) - (*s_objet_3).objet)).nombre_colonnes * + = malloc(((size_t) (*((struct_matrice *) + (*s_objet_3).objet)).nombre_colonnes) * sizeof(real8))) == NULL) { (*s_etat_processus).erreur_systeme = @@ -1020,8 +1043,8 @@ instruction_put(struct_processus *s_etat (*s_objet_3).type = MCX; if (((*((struct_matrice *) (*s_objet_3).objet)).tableau - = malloc((*((struct_matrice *) - (*s_objet_3).objet)).nombre_lignes * + = malloc(((size_t) (*((struct_matrice *) + (*s_objet_3).objet)).nombre_lignes) * sizeof(struct_complexe16 *))) == NULL) { (*s_etat_processus).erreur_systeme = @@ -1034,8 +1057,8 @@ instruction_put(struct_processus *s_etat { if ((((struct_complexe16 **) (*((struct_matrice *) (*s_objet_3).objet)).tableau)[i] - = malloc((*((struct_matrice *) - (*s_objet_3).objet)).nombre_colonnes * + = malloc(((size_t) (*((struct_matrice *) + (*s_objet_3).objet)).nombre_colonnes) * sizeof(struct_complexe16))) == NULL) { (*s_etat_processus).erreur_systeme = @@ -1120,8 +1143,8 @@ instruction_put(struct_processus *s_etat (*s_objet_3).type = MCX; if (((*((struct_matrice *) (*s_objet_3).objet)).tableau - = malloc((*((struct_matrice *) - (*s_objet_3).objet)).nombre_lignes * + = malloc(((size_t) (*((struct_matrice *) + (*s_objet_3).objet)).nombre_lignes) * sizeof(struct_complexe16 *))) == NULL) { (*s_etat_processus).erreur_systeme = @@ -1134,8 +1157,8 @@ instruction_put(struct_processus *s_etat { if ((((struct_complexe16 **) (*((struct_matrice *) (*s_objet_3).objet)).tableau)[i] - = malloc((*((struct_matrice *) - (*s_objet_3).objet)).nombre_colonnes * + = malloc(((size_t) (*((struct_matrice *) + (*s_objet_3).objet)).nombre_colonnes) * sizeof(struct_complexe16))) == NULL) { (*s_etat_processus).erreur_systeme = @@ -1415,6 +1438,71 @@ instruction_put(struct_processus *s_etat /* -------------------------------------------------------------------------------- + Traitement des enregistrements +-------------------------------------------------------------------------------- +*/ + + else if ((*s_objet_3).type == REC) + { + if ((*s_objet_2).type != CHN) + { + liberation(s_etat_processus, s_objet_1); + liberation(s_etat_processus, s_objet_2); + liberation(s_etat_processus, s_objet_3); + + (*s_etat_processus).erreur_execution = d_ex_erreur_type_argument; + return; + } + + if ((*s_objet_3).nombre_occurrences > 1) + { + if ((s_copie_3 = copie_objet(s_etat_processus, s_objet_3, 'N')) + == NULL) + { + (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; + return; + } + + liberation(s_etat_processus, s_objet_3); + s_objet_3 = s_copie_3; + } + + if ((s_enregistrement = bsearch((unsigned char *) (*s_objet_2).objet, + (*((struct_tableau *) (*(*((struct_record *) + (*s_objet_3).objet)).noms).objet)).elements, + (size_t) (*((struct_tableau *) (*(*((struct_record *) + (*s_objet_3).objet)).noms).objet)).nombre_elements, + sizeof(struct_objet *), fonction_comparaison)) == NULL) + { + liberation(s_etat_processus, s_objet_1); + liberation(s_etat_processus, s_objet_2); + liberation(s_etat_processus, s_objet_3); + + (*s_etat_processus).erreur_execution = d_ex_element_inexistant; + return; + } + + indice_i = s_enregistrement - (*((struct_tableau *) + (*(*((struct_record *) (*s_objet_3).objet)).noms).objet)) + .elements; + + liberation(s_etat_processus, (*((struct_tableau *) + (*(*((struct_record *) (*s_objet_3).objet)).donnees).objet)) + .elements[indice_i]); + (*((struct_tableau *) (*(*((struct_record *) (*s_objet_3).objet)) + .donnees).objet)).elements[indice_i] = s_objet_1; + + liberation(s_etat_processus, s_objet_2); + + if (empilement(s_etat_processus, &((*s_etat_processus).l_base_pile), + s_objet_3) == d_erreur) + { + return; + } + } + +/* +-------------------------------------------------------------------------------- Traitement des noms -------------------------------------------------------------------------------- */ @@ -1436,8 +1524,8 @@ instruction_put(struct_processus *s_etat return; } - if ((*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante].variable_verrouillee == d_vrai) + if ((*(*s_etat_processus).pointeur_variable_courante) + .variable_verrouillee == d_vrai) { (*s_etat_processus).erreur_execution = d_ex_variable_verrouillee; @@ -1448,33 +1536,16 @@ instruction_put(struct_processus *s_etat return; } - s_objet_4 = (*s_etat_processus).s_liste_variables - [(*s_etat_processus).position_variable_courante].objet; + s_objet_4 = (*(*s_etat_processus).pointeur_variable_courante).objet; if (s_objet_4 == 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, - (*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante].nom, - (*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante].variable_partagee, - (*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante].origine) == d_faux) + (*(*s_etat_processus).pointeur_variable_courante).nom, + (*(*s_etat_processus).pointeur_variable_courante) + .variable_partagee, (*(*s_etat_processus) + .pointeur_variable_courante).origine) == NULL) { - if (pthread_mutex_unlock(&((*(*s_etat_processus) - .s_liste_variables_partagees).mutex)) != 0) - { - (*s_etat_processus).erreur_systeme = d_es_processus; - return; - } - (*s_etat_processus).erreur_systeme = d_es; (*s_etat_processus).erreur_execution = d_ex_variable_non_definie; @@ -1486,9 +1557,8 @@ instruction_put(struct_processus *s_etat return; } - s_objet_4 = (*(*s_etat_processus).s_liste_variables_partagees) - .table[(*(*s_etat_processus).s_liste_variables_partagees) - .position_variable].objet; + s_objet_4 = (*(*s_etat_processus) + .pointeur_variable_partagee_courante).objet; variable_partagee = d_vrai; } @@ -1501,7 +1571,7 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; return; @@ -1531,7 +1601,7 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; return; @@ -1554,7 +1624,7 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; return; @@ -1575,7 +1645,7 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; return; @@ -1596,7 +1666,7 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; return; @@ -1619,7 +1689,7 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; return; @@ -1662,14 +1732,15 @@ instruction_put(struct_processus *s_etat (*s_objet_4).type = VRL; if (((*((struct_vecteur *) (*s_objet_4).objet)).tableau - = malloc((*((struct_vecteur *) - (*s_objet_4).objet)).taille * sizeof(real8))) + = malloc(((size_t) (*((struct_vecteur *) + (*s_objet_4).objet)).taille) * sizeof(real8))) == NULL) { if (variable_partagee == d_vrai) { 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; @@ -1709,14 +1780,15 @@ instruction_put(struct_processus *s_etat (*s_objet_4).type = VCX; if (((*((struct_vecteur *) (*s_objet_4).objet)).tableau - = malloc((*((struct_vecteur *) - (*s_objet_4).objet)).taille * + = malloc(((size_t) (*((struct_vecteur *) + (*s_objet_4).objet)).taille) * sizeof(struct_complexe16))) == NULL) { if (variable_partagee == d_vrai) { 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; @@ -1756,7 +1828,8 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; @@ -1812,14 +1885,15 @@ instruction_put(struct_processus *s_etat (*s_objet_4).type = VCX; if (((*((struct_vecteur *) (*s_objet_4).objet)).tableau - = malloc((*((struct_vecteur *) - (*s_objet_4).objet)).taille * + = malloc(((size_t) (*((struct_vecteur *) + (*s_objet_4).objet)).taille) * sizeof(struct_complexe16))) == NULL) { if (variable_partagee == d_vrai) { 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; @@ -1859,7 +1933,8 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; @@ -1929,7 +2004,8 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; @@ -1949,19 +2025,17 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_faux) { - (*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante].objet = s_objet_4; + (*(*s_etat_processus).pointeur_variable_courante).objet = + s_objet_4; } else { - (*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante].objet = NULL; - (*(*s_etat_processus).s_liste_variables_partagees).table - [(*(*s_etat_processus).s_liste_variables_partagees) - .position_variable].objet = s_objet_4; + (*(*s_etat_processus).pointeur_variable_courante).objet = NULL; + (*(*s_etat_processus).pointeur_variable_partagee_courante) + .objet = s_objet_4; 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; return; @@ -1981,7 +2055,7 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; return; @@ -2011,7 +2085,7 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; return; @@ -2039,7 +2113,8 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; return; @@ -2061,7 +2136,8 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; return; @@ -2098,7 +2174,7 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; return; @@ -2119,7 +2195,7 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; return; @@ -2162,14 +2238,15 @@ instruction_put(struct_processus *s_etat (*s_objet_4).type = MRL; if (((*((struct_matrice *) (*s_objet_4).objet)).tableau - = malloc((*((struct_matrice *) - (*s_objet_4).objet)).nombre_lignes * + = malloc(((size_t) (*((struct_matrice *) + (*s_objet_4).objet)).nombre_lignes) * sizeof(real8 *))) == NULL) { if (variable_partagee == d_vrai) { 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; @@ -2187,15 +2264,15 @@ instruction_put(struct_processus *s_etat { if ((((real8 **) (*((struct_matrice *) (*s_objet_4).objet)).tableau)[i] - = malloc((*((struct_matrice *) - (*s_objet_4).objet)).nombre_colonnes * + = malloc(((size_t) (*((struct_matrice *) + (*s_objet_4).objet)).nombre_colonnes) * sizeof(real8))) == NULL) { if (variable_partagee == d_vrai) { 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; @@ -2238,14 +2315,15 @@ instruction_put(struct_processus *s_etat (*s_objet_4).type = MCX; if (((*((struct_matrice *) (*s_objet_4).objet)).tableau - = malloc((*((struct_matrice *) - (*s_objet_4).objet)).nombre_lignes * + = malloc(((size_t) (*((struct_matrice *) + (*s_objet_4).objet)).nombre_lignes) * sizeof(struct_complexe16 *))) == NULL) { if (variable_partagee == d_vrai) { 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; @@ -2263,15 +2341,15 @@ instruction_put(struct_processus *s_etat { if ((((struct_complexe16 **) (*((struct_matrice *) (*s_objet_4).objet)).tableau)[i] - = malloc((*((struct_matrice *) - (*s_objet_4).objet)).nombre_colonnes * + = malloc(((size_t) (*((struct_matrice *) + (*s_objet_4).objet)).nombre_colonnes) * sizeof(struct_complexe16))) == NULL) { if (variable_partagee == d_vrai) { 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; @@ -2317,7 +2395,8 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; @@ -2373,15 +2452,15 @@ instruction_put(struct_processus *s_etat (*s_objet_4).type = MCX; if (((*((struct_matrice *) (*s_objet_4).objet)).tableau - = malloc((*((struct_matrice *) - (*s_objet_4).objet)).nombre_lignes * + = malloc(((size_t) (*((struct_matrice *) + (*s_objet_4).objet)).nombre_lignes) * sizeof(struct_complexe16 *))) == NULL) { if (variable_partagee == d_vrai) { 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; @@ -2399,15 +2478,15 @@ instruction_put(struct_processus *s_etat { if ((((struct_complexe16 **) (*((struct_matrice *) (*s_objet_4).objet)).tableau)[i] - = malloc((*((struct_matrice *) - (*s_objet_4).objet)).nombre_colonnes * + = malloc(((size_t) (*((struct_matrice *) + (*s_objet_4).objet)).nombre_colonnes) * sizeof(struct_complexe16))) == NULL) { if (variable_partagee == d_vrai) { 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; @@ -2453,7 +2532,8 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; @@ -2526,7 +2606,8 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; @@ -2546,20 +2627,17 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_faux) { - (*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante].objet = s_objet_4; + (*(*s_etat_processus).pointeur_variable_courante).objet = + s_objet_4; } else { - (*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante].objet = NULL; - (*(*s_etat_processus).s_liste_variables_partagees).table - [(*(*s_etat_processus).s_liste_variables_partagees) - .position_variable].objet = s_objet_4; + (*(*s_etat_processus).pointeur_variable_courante).objet = NULL; + (*(*s_etat_processus).pointeur_variable_partagee_courante) + .objet = s_objet_4; 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; @@ -2578,8 +2656,7 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; @@ -2607,7 +2684,7 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { if (pthread_mutex_unlock(&((*(*s_etat_processus) - .s_liste_variables_partagees).mutex)) + .pointeur_variable_partagee_courante).mutex)) != 0) { (*s_etat_processus).erreur_systeme = @@ -2643,7 +2720,7 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; @@ -2661,19 +2738,17 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_faux) { - (*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante].objet = s_objet_4; + (*(*s_etat_processus).pointeur_variable_courante).objet = + s_objet_4; } else { - (*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante].objet = NULL; - (*(*s_etat_processus).s_liste_variables_partagees).table - [(*(*s_etat_processus).s_liste_variables_partagees) - .position_variable].objet = s_objet_4; + (*(*s_etat_processus).pointeur_variable_courante).objet = NULL; + (*(*s_etat_processus).pointeur_variable_partagee_courante) + .objet = s_objet_4; 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; @@ -2691,7 +2766,7 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; @@ -2716,7 +2791,8 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; @@ -2744,7 +2820,8 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; @@ -2766,7 +2843,8 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; @@ -2792,7 +2870,8 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; @@ -2825,19 +2904,127 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_faux) { - (*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante].objet = s_objet_4; + (*(*s_etat_processus).pointeur_variable_courante).objet = + s_objet_4; } else { - (*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante].objet = NULL; - (*(*s_etat_processus).s_liste_variables_partagees).table - [(*(*s_etat_processus).s_liste_variables_partagees) - .position_variable].objet = s_objet_4; + (*(*s_etat_processus).pointeur_variable_courante).objet = NULL; + (*(*s_etat_processus).pointeur_variable_partagee_courante) + .objet = s_objet_4; 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; + return; + } + } + + liberation(s_etat_processus, s_objet_2); + } + else if ((*s_objet_4).type == REC) + { + if ((*s_objet_2).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); + liberation(s_etat_processus, s_objet_3); + + (*s_etat_processus).erreur_execution = + d_ex_erreur_type_argument; + return; + } + + if ((*s_objet_4).nombre_occurrences > 1) + { + if ((s_copie_4 = copie_objet(s_etat_processus, s_objet_3, 'N')) + == 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; + } + + liberation(s_etat_processus, s_objet_4); + s_objet_4 = s_copie_4; + } + + if ((s_enregistrement = bsearch( + (unsigned char *) (*s_objet_2).objet, + (*((struct_tableau *) (*(*((struct_record *) + (*s_objet_4).objet)).noms).objet)).elements, + (size_t) (*((struct_tableau *) (*(*((struct_record *) + (*s_objet_4).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); + liberation(s_etat_processus, s_objet_3); + + (*s_etat_processus).erreur_execution = d_ex_element_inexistant; + return; + } + + indice_i = s_enregistrement - (*((struct_tableau *) + (*(*((struct_record *) (*s_objet_4).objet)).noms).objet)) + .elements; + + liberation(s_etat_processus, (*((struct_tableau *) + (*(*((struct_record *) (*s_objet_4).objet)).donnees).objet)) + .elements[indice_i]); + (*((struct_tableau *) (*(*((struct_record *) (*s_objet_4).objet)) + .donnees).objet)).elements[indice_i] = s_objet_1; + + if (variable_partagee == d_faux) + { + (*(*s_etat_processus).pointeur_variable_courante).objet = + s_objet_4; + } + else + { + (*(*s_etat_processus).pointeur_variable_courante).objet = NULL; + (*(*s_etat_processus).pointeur_variable_partagee_courante) + .objet = s_objet_4; + + if (pthread_mutex_unlock(&((*(*s_etat_processus) + .pointeur_variable_partagee_courante).mutex)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; @@ -2852,7 +3039,7 @@ instruction_put(struct_processus *s_etat if (variable_partagee == d_vrai) { 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; @@ -2916,12 +3103,12 @@ instruction_puti(struct_processus *s_eta struct_objet *s_objet_3; struct_objet *s_objet_4; - unsigned long i; - unsigned long indice_i; - unsigned long indice_j; - unsigned long j; - unsigned long nombre_dimensions; - unsigned long nombre_elements; + integer8 i; + integer8 indice_i; + integer8 indice_j; + integer8 j; + integer8 nombre_dimensions; + integer8 nombre_elements; void *tampon; @@ -2958,10 +3145,10 @@ instruction_puti(struct_processus *s_eta " %s, %s, %s, %s, %s,\n" " %s, %s, %s, %s, %s,\n" " %s, %s, %s, %s,\n" - " %s, %s\n", + " %s, %s, %s\n", d_INT, d_REL, d_CPL, d_VIN, d_VRL, d_VCX, d_MIN, d_MRL, d_MCX, d_TAB, d_BIN, d_NOM, d_CHN, d_LST, d_ALG, d_RPN, d_FCH, d_SCK, - d_SQL, d_SLB, d_PRC, d_MTX); + d_SQL, d_SLB, d_PRC, d_MTX, d_REC); printf("-> 2: %s, %s\n", d_LST, d_NOM); printf(" 1: %s\n", d_INT); @@ -3127,8 +3314,8 @@ instruction_puti(struct_processus *s_eta (*s_objet_3).type = VRL; if (((*((struct_vecteur *) (*s_objet_3).objet)).tableau - = malloc((*((struct_vecteur *) - (*s_objet_3).objet)).taille * sizeof(real8))) + = malloc(((size_t) (*((struct_vecteur *) + (*s_objet_3).objet)).taille) * sizeof(real8))) == NULL) { (*s_etat_processus).erreur_systeme = @@ -3162,8 +3349,8 @@ instruction_puti(struct_processus *s_eta (*s_objet_3).type = VCX; if (((*((struct_vecteur *) (*s_objet_3).objet)).tableau - = malloc((*((struct_vecteur *) - (*s_objet_3).objet)).taille * + = malloc(((size_t) (*((struct_vecteur *) + (*s_objet_3).objet)).taille) * sizeof(struct_complexe16))) == NULL) { (*s_etat_processus).erreur_systeme = @@ -3243,8 +3430,8 @@ instruction_puti(struct_processus *s_eta (*s_objet_3).type = VCX; if (((*((struct_vecteur *) (*s_objet_3).objet)).tableau - = malloc((*((struct_vecteur *) - (*s_objet_3).objet)).taille * + = malloc(((size_t) (*((struct_vecteur *) + (*s_objet_3).objet)).taille) * sizeof(struct_complexe16))) == NULL) { (*s_etat_processus).erreur_systeme = @@ -3495,8 +3682,8 @@ instruction_puti(struct_processus *s_eta (*s_objet_3).type = MRL; if (((*((struct_matrice *) (*s_objet_3).objet)).tableau - = malloc((*((struct_matrice *) - (*s_objet_3).objet)).nombre_lignes * sizeof(real8 *))) + = malloc(((size_t) (*((struct_matrice *) + (*s_objet_3).objet)).nombre_lignes) * sizeof(real8 *))) == NULL) { (*s_etat_processus).erreur_systeme = @@ -3509,8 +3696,8 @@ instruction_puti(struct_processus *s_eta { if ((((real8 **) (*((struct_matrice *) (*s_objet_3).objet)).tableau)[i] - = malloc((*((struct_matrice *) - (*s_objet_3).objet)).nombre_colonnes * + = malloc(((size_t) (*((struct_matrice *) + (*s_objet_3).objet)).nombre_colonnes) * sizeof(real8))) == NULL) { (*s_etat_processus).erreur_systeme = @@ -3548,8 +3735,8 @@ instruction_puti(struct_processus *s_eta (*s_objet_3).type = MCX; if (((*((struct_matrice *) (*s_objet_3).objet)).tableau - = malloc((*((struct_matrice *) - (*s_objet_3).objet)).nombre_lignes * + = malloc(((size_t) (*((struct_matrice *) + (*s_objet_3).objet)).nombre_lignes) * sizeof(struct_complexe16 *))) == NULL) { (*s_etat_processus).erreur_systeme = @@ -3562,8 +3749,8 @@ instruction_puti(struct_processus *s_eta { if ((((struct_complexe16 **) (*((struct_matrice *) (*s_objet_3).objet)).tableau)[i] - = malloc((*((struct_matrice *) - (*s_objet_3).objet)).nombre_colonnes * + = malloc(((size_t) (*((struct_matrice *) + (*s_objet_3).objet)).nombre_colonnes) * sizeof(struct_complexe16))) == NULL) { (*s_etat_processus).erreur_systeme = @@ -3648,8 +3835,8 @@ instruction_puti(struct_processus *s_eta (*s_objet_3).type = MCX; if (((*((struct_matrice *) (*s_objet_3).objet)).tableau - = malloc((*((struct_matrice *) - (*s_objet_3).objet)).nombre_lignes * + = malloc(((size_t) (*((struct_matrice *) + (*s_objet_3).objet)).nombre_lignes) * sizeof(struct_complexe16 *))) == NULL) { (*s_etat_processus).erreur_systeme = @@ -3662,8 +3849,8 @@ instruction_puti(struct_processus *s_eta { if ((((struct_complexe16 **) (*((struct_matrice *) (*s_objet_3).objet)).tableau)[i] - = malloc((*((struct_matrice *) - (*s_objet_3).objet)).nombre_colonnes * + = malloc(((size_t) (*((struct_matrice *) + (*s_objet_3).objet)).nombre_colonnes) * sizeof(struct_complexe16))) == NULL) { (*s_etat_processus).erreur_systeme = @@ -3907,8 +4094,8 @@ instruction_puti(struct_processus *s_eta return; } - if ((*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante].variable_verrouillee == d_vrai) + if ((*(*s_etat_processus).pointeur_variable_courante) + .variable_verrouillee == d_vrai) { (*s_etat_processus).erreur_execution = d_ex_variable_verrouillee; @@ -3919,28 +4106,18 @@ instruction_puti(struct_processus *s_eta return; } - s_objet_4 = (*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante].objet; + s_objet_4 = (*(*s_etat_processus).pointeur_variable_courante).objet; if (s_objet_4 == 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, - (*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante].nom, - (*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante].variable_partagee, - (*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante].origine) == d_faux) + (*(*s_etat_processus).pointeur_variable_courante).nom, + (*(*s_etat_processus).pointeur_variable_courante) + .variable_partagee, (*(*s_etat_processus) + .pointeur_variable_courante).origine) == NULL) { 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; return; @@ -3957,9 +4134,8 @@ instruction_puti(struct_processus *s_eta return; } - s_objet_4 = (*(*s_etat_processus).s_liste_variables_partagees) - .table[(*(*s_etat_processus).s_liste_variables_partagees) - .position_variable].objet; + s_objet_4 = (*(*s_etat_processus) + .pointeur_variable_partagee_courante).objet; variable_partagee = d_vrai; } @@ -3972,7 +4148,7 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_vrai) { 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; return; @@ -4002,7 +4178,7 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_vrai) { 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; return; @@ -4025,7 +4201,7 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_vrai) { 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; return; @@ -4046,7 +4222,7 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_vrai) { 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; return; @@ -4067,7 +4243,7 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_vrai) { 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; return; @@ -4090,7 +4266,7 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_vrai) { 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; return; @@ -4133,14 +4309,15 @@ instruction_puti(struct_processus *s_eta (*s_objet_4).type = VRL; if (((*((struct_vecteur *) (*s_objet_4).objet)).tableau - = malloc((*((struct_vecteur *) - (*s_objet_4).objet)).taille * sizeof(real8))) + = malloc(((size_t) (*((struct_vecteur *) + (*s_objet_4).objet)).taille) * sizeof(real8))) == NULL) { if (variable_partagee == d_vrai) { 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; @@ -4180,14 +4357,15 @@ instruction_puti(struct_processus *s_eta (*s_objet_4).type = VCX; if (((*((struct_vecteur *) (*s_objet_4).objet)).tableau - = malloc((*((struct_vecteur *) - (*s_objet_4).objet)).taille * + = malloc(((size_t) (*((struct_vecteur *) + (*s_objet_4).objet)).taille) * sizeof(struct_complexe16))) == NULL) { if (variable_partagee == d_vrai) { 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; @@ -4227,7 +4405,8 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_vrai) { 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; @@ -4283,14 +4462,15 @@ instruction_puti(struct_processus *s_eta (*s_objet_4).type = VCX; if (((*((struct_vecteur *) (*s_objet_4).objet)).tableau - = malloc((*((struct_vecteur *) - (*s_objet_4).objet)).taille * + = malloc(((size_t) (*((struct_vecteur *) + (*s_objet_4).objet)).taille) * sizeof(struct_complexe16))) == NULL) { if (variable_partagee == d_vrai) { 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; @@ -4330,7 +4510,8 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_vrai) { 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; @@ -4400,7 +4581,8 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_vrai) { 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; @@ -4424,22 +4606,19 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_faux) { - (*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante].objet = s_objet_4; + (*(*s_etat_processus).pointeur_variable_courante).objet = + s_objet_4; } else { - (*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante].objet = NULL; - (*(*s_etat_processus).s_liste_variables_partagees) - .table[(*(*s_etat_processus) - .s_liste_variables_partagees).position_variable].objet - = s_objet_4; + (*(*s_etat_processus).pointeur_variable_courante).objet = NULL; + (*(*s_etat_processus) + .pointeur_variable_partagee_courante).objet = s_objet_4; if (variable_partagee == d_vrai) { 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; return; @@ -4458,7 +4637,7 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_vrai) { 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; return; @@ -4488,7 +4667,7 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_vrai) { 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; return; @@ -4516,7 +4695,8 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_vrai) { 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; return; @@ -4538,7 +4718,8 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_vrai) { 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; return; @@ -4575,7 +4756,7 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_vrai) { 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; return; @@ -4596,7 +4777,7 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_vrai) { 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; return; @@ -4639,14 +4820,15 @@ instruction_puti(struct_processus *s_eta (*s_objet_4).type = MRL; if (((*((struct_matrice *) (*s_objet_4).objet)).tableau - = malloc((*((struct_matrice *) - (*s_objet_4).objet)).nombre_lignes * + = malloc(((size_t) (*((struct_matrice *) + (*s_objet_4).objet)).nombre_lignes) * sizeof(real8 *))) == NULL) { if (variable_partagee == d_vrai) { 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; @@ -4664,15 +4846,15 @@ instruction_puti(struct_processus *s_eta { if ((((real8 **) (*((struct_matrice *) (*s_objet_4).objet)).tableau)[i] - = malloc((*((struct_matrice *) - (*s_objet_4).objet)).nombre_colonnes * + = malloc(((size_t) (*((struct_matrice *) + (*s_objet_4).objet)).nombre_colonnes) * sizeof(real8))) == NULL) { if (variable_partagee == d_vrai) { 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; @@ -4715,14 +4897,15 @@ instruction_puti(struct_processus *s_eta (*s_objet_4).type = MCX; if (((*((struct_matrice *) (*s_objet_4).objet)).tableau - = malloc((*((struct_matrice *) - (*s_objet_4).objet)).nombre_lignes * + = malloc(((size_t) (*((struct_matrice *) + (*s_objet_4).objet)).nombre_lignes) * sizeof(struct_complexe16 *))) == NULL) { if (variable_partagee == d_vrai) { 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; @@ -4740,15 +4923,15 @@ instruction_puti(struct_processus *s_eta { if ((((struct_complexe16 **) (*((struct_matrice *) (*s_objet_4).objet)).tableau)[i] - = malloc((*((struct_matrice *) - (*s_objet_4).objet)).nombre_colonnes * + = malloc(((size_t) (*((struct_matrice *) + (*s_objet_4).objet)).nombre_colonnes) * sizeof(struct_complexe16))) == NULL) { if (variable_partagee == d_vrai) { 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; @@ -4794,7 +4977,8 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_vrai) { 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; @@ -4850,14 +5034,15 @@ instruction_puti(struct_processus *s_eta (*s_objet_4).type = MCX; if (((*((struct_matrice *) (*s_objet_4).objet)).tableau - = malloc((*((struct_matrice *) - (*s_objet_4).objet)).nombre_lignes * + = malloc(((size_t) (*((struct_matrice *) + (*s_objet_4).objet)).nombre_lignes) * sizeof(struct_complexe16 *))) == NULL) { if (variable_partagee == d_vrai) { 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; @@ -4875,15 +5060,15 @@ instruction_puti(struct_processus *s_eta { if ((((struct_complexe16 **) (*((struct_matrice *) (*s_objet_4).objet)).tableau)[i] - = malloc((*((struct_matrice *) - (*s_objet_4).objet)).nombre_colonnes * + = malloc(((size_t) (*((struct_matrice *) + (*s_objet_4).objet)).nombre_colonnes) * sizeof(struct_complexe16))) == NULL) { if (variable_partagee == d_vrai) { 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; @@ -4929,7 +5114,7 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_vrai) { if (pthread_mutex_unlock(&((*(*s_etat_processus) - .s_liste_variables_partagees).mutex)) + .pointeur_variable_partagee_courante).mutex)) != 0) { (*s_etat_processus).erreur_systeme = @@ -5003,7 +5188,7 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_vrai) { if (pthread_mutex_unlock(&((*(*s_etat_processus) - .s_liste_variables_partagees).mutex)) + .pointeur_variable_partagee_courante).mutex)) != 0) { (*s_etat_processus).erreur_systeme = @@ -5041,21 +5226,19 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_faux) { - (*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante].objet = s_objet_4; + (*(*s_etat_processus).pointeur_variable_courante).objet = + s_objet_4; } else { - (*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante].objet = NULL; - (*(*s_etat_processus).s_liste_variables_partagees).table - [(*(*s_etat_processus).s_liste_variables_partagees) - .position_variable].objet = s_objet_4; + (*(*s_etat_processus).pointeur_variable_courante).objet = NULL; + (*(*s_etat_processus).pointeur_variable_partagee_courante) + .objet = s_objet_4; if (variable_partagee == d_vrai) { 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; @@ -5073,7 +5256,7 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_vrai) { 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; @@ -5101,7 +5284,8 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_vrai) { 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; @@ -5145,7 +5329,7 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_vrai) { 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; @@ -5166,21 +5350,19 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_faux) { - (*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante].objet = s_objet_4; + (*(*s_etat_processus).pointeur_variable_courante).objet = + s_objet_4; } else { - (*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante].objet = NULL; - (*(*s_etat_processus).s_liste_variables_partagees).table - [(*(*s_etat_processus).s_liste_variables_partagees) - .position_variable].objet = s_objet_4; + (*(*s_etat_processus).pointeur_variable_courante).objet = NULL; + (*(*s_etat_processus).pointeur_variable_partagee_courante) + .objet = s_objet_4; if (variable_partagee == d_vrai) { 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; @@ -5194,7 +5376,7 @@ instruction_puti(struct_processus *s_eta if (variable_partagee == d_vrai) { 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;