--- rpl/src/instructions_r2.c 2012/09/30 20:46:46 1.40 +++ rpl/src/instructions_r2.c 2013/12/03 09:36:14 1.53 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.1.10 - Copyright (C) 1989-2012 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.17 + Copyright (C) 1989-2013 Dr. BERTRAND Joël This file is part of RPL/2. @@ -350,7 +350,7 @@ instruction_return(struct_processus *s_e unsigned char *instruction_majuscule; unsigned char *tampon; - unsigned long registre_position_courante; + integer8 registre_position_courante; struct_liste_chainee *tampon_expression; @@ -549,7 +549,7 @@ instruction_return(struct_processus *s_e (*s_etat_processus).niveau_courant--; - if (retrait_variable_par_niveau( + if (retrait_variables_par_niveau( s_etat_processus) == d_erreur) { return; @@ -796,7 +796,7 @@ instruction_return(struct_processus *s_e (*s_etat_processus).niveau_courant--; - if (retrait_variable_par_niveau(s_etat_processus) + if (retrait_variables_par_niveau(s_etat_processus) == d_erreur) { return; @@ -886,13 +886,13 @@ instruction_rdm(struct_processus *s_etat logical1 drapeau_fin_objet_originel; logical1 variable_partagee; - unsigned long i; - unsigned long j; - unsigned long k; - unsigned long l; - unsigned long nombre_colonnes; - unsigned long nombre_dimensions; - unsigned long nombre_lignes; + integer8 i; + integer8 j; + integer8 k; + integer8 l; + integer8 nombre_colonnes; + integer8 nombre_dimensions; + integer8 nombre_lignes; (*s_etat_processus).erreur_execution = d_ex; @@ -980,27 +980,12 @@ instruction_rdm(struct_processus *s_etat if (s_objet_initial == 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).pointeur_variable_courante).nom, (*(*s_etat_processus).pointeur_variable_courante) .variable_partagee, (*(*s_etat_processus) - .pointeur_variable_courante).origine) - == d_faux) + .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; @@ -1023,7 +1008,7 @@ instruction_rdm(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; @@ -1055,7 +1040,7 @@ instruction_rdm(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; @@ -1085,7 +1070,7 @@ instruction_rdm(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; @@ -1108,7 +1093,7 @@ instruction_rdm(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; @@ -1145,7 +1130,7 @@ instruction_rdm(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; @@ -1174,7 +1159,7 @@ instruction_rdm(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; @@ -1190,12 +1175,13 @@ instruction_rdm(struct_processus *s_etat nombre_lignes; if (((*((struct_vecteur *) (*s_objet_redimensionne).objet)).tableau - = malloc(nombre_lignes * sizeof(integer8))) == NULL) + = malloc(((size_t) nombre_lignes) * sizeof(integer8))) + == 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; return; @@ -1232,7 +1218,7 @@ instruction_rdm(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; @@ -1248,12 +1234,12 @@ instruction_rdm(struct_processus *s_etat nombre_lignes; if (((*((struct_vecteur *) (*s_objet_redimensionne).objet)).tableau - = malloc(nombre_lignes * sizeof(real8))) == NULL) + = malloc(((size_t) 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; return; @@ -1291,7 +1277,7 @@ instruction_rdm(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; @@ -1307,13 +1293,13 @@ instruction_rdm(struct_processus *s_etat nombre_lignes; if (((*((struct_vecteur *) (*s_objet_redimensionne).objet)).tableau - = malloc(nombre_lignes * sizeof(struct_complexe16))) - == NULL) + = malloc(((size_t) 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; return; @@ -1360,7 +1346,7 @@ instruction_rdm(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; @@ -1376,12 +1362,13 @@ instruction_rdm(struct_processus *s_etat nombre_lignes; if (((*((struct_vecteur *) (*s_objet_redimensionne).objet)).tableau - = malloc(nombre_lignes * sizeof(integer8))) == NULL) + = malloc(((size_t) nombre_lignes) * sizeof(integer8))) + == 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; return; @@ -1431,7 +1418,7 @@ instruction_rdm(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; @@ -1447,12 +1434,12 @@ instruction_rdm(struct_processus *s_etat nombre_lignes; if (((*((struct_vecteur *) (*s_objet_redimensionne).objet)).tableau - = malloc(nombre_lignes * sizeof(real8))) == NULL) + = malloc(((size_t) 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; return; @@ -1503,7 +1490,7 @@ instruction_rdm(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; @@ -1519,13 +1506,13 @@ instruction_rdm(struct_processus *s_etat nombre_lignes; if (((*((struct_vecteur *) (*s_objet_redimensionne).objet)).tableau - = malloc(nombre_lignes * sizeof(struct_complexe16))) - == NULL) + = malloc(((size_t) 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; return; @@ -1580,7 +1567,7 @@ instruction_rdm(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; @@ -1618,7 +1605,7 @@ instruction_rdm(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; @@ -1636,13 +1623,13 @@ instruction_rdm(struct_processus *s_etat .nombre_colonnes = nombre_colonnes; if (((*((struct_matrice *) (*s_objet_redimensionne).objet)).tableau - = malloc(nombre_lignes * sizeof(integer8 *))) + = malloc(((size_t) nombre_lignes) * sizeof(integer8 *))) == 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; return; @@ -1657,12 +1644,14 @@ instruction_rdm(struct_processus *s_etat { if ((((integer8 **) (*((struct_matrice *) (*s_objet_redimensionne).objet)).tableau)[i] = - malloc(nombre_colonnes * sizeof(integer8))) == NULL) + malloc(((size_t) nombre_colonnes) * sizeof(integer8))) + == 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; return; @@ -1703,7 +1692,7 @@ instruction_rdm(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; @@ -1721,13 +1710,13 @@ instruction_rdm(struct_processus *s_etat .nombre_colonnes = nombre_colonnes; if (((*((struct_matrice *) (*s_objet_redimensionne).objet)).tableau - = malloc(nombre_lignes * sizeof(real8 *))) + = malloc(((size_t) 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; return; @@ -1742,12 +1731,14 @@ instruction_rdm(struct_processus *s_etat { if ((((real8 **) (*((struct_matrice *) (*s_objet_redimensionne).objet)).tableau)[i] = - malloc(nombre_colonnes * sizeof(real8))) == NULL) + malloc(((size_t) 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; return; @@ -1788,7 +1779,7 @@ instruction_rdm(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; @@ -1806,13 +1797,13 @@ instruction_rdm(struct_processus *s_etat .nombre_colonnes = nombre_colonnes; if (((*((struct_matrice *) (*s_objet_redimensionne).objet)).tableau - = malloc(nombre_lignes * sizeof(struct_complexe16 *))) - == NULL) + = malloc(((size_t) 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; return; @@ -1827,13 +1818,14 @@ instruction_rdm(struct_processus *s_etat { if ((((struct_complexe16 **) (*((struct_matrice *) (*s_objet_redimensionne).objet)).tableau)[i] = - malloc(nombre_colonnes * + malloc(((size_t) 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; return; @@ -1885,7 +1877,7 @@ instruction_rdm(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; @@ -1903,13 +1895,13 @@ instruction_rdm(struct_processus *s_etat .nombre_colonnes = nombre_colonnes; if (((*((struct_matrice *) (*s_objet_redimensionne).objet)).tableau - = malloc(nombre_lignes * sizeof(integer8 *))) + = malloc(((size_t) nombre_lignes) * sizeof(integer8 *))) == 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; return; @@ -1926,13 +1918,14 @@ instruction_rdm(struct_processus *s_etat { if ((((integer8 **) (*((struct_matrice *) (*s_objet_redimensionne).objet)).tableau)[i] = - malloc(nombre_colonnes * + malloc(((size_t) nombre_colonnes) * sizeof(integer8))) == 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; return; @@ -1984,7 +1977,7 @@ instruction_rdm(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; @@ -2002,13 +1995,13 @@ instruction_rdm(struct_processus *s_etat .nombre_colonnes = nombre_colonnes; if (((*((struct_matrice *) (*s_objet_redimensionne).objet)).tableau - = malloc(nombre_lignes * sizeof(real8 *))) + = malloc(((size_t) 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; return; @@ -2025,13 +2018,14 @@ instruction_rdm(struct_processus *s_etat { if ((((real8 **) (*((struct_matrice *) (*s_objet_redimensionne).objet)).tableau)[i] = - malloc(nombre_colonnes * + malloc(((size_t) 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; return; @@ -2083,7 +2077,7 @@ instruction_rdm(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; @@ -2101,13 +2095,13 @@ instruction_rdm(struct_processus *s_etat .nombre_colonnes = nombre_colonnes; if (((*((struct_matrice *) (*s_objet_redimensionne).objet)).tableau - = malloc(nombre_lignes * sizeof(struct_complexe16 *))) - == NULL) + = malloc(((size_t) 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; return; @@ -2124,13 +2118,14 @@ instruction_rdm(struct_processus *s_etat { if ((((struct_complexe16 **) (*((struct_matrice *) (*s_objet_redimensionne).objet)).tableau)[i] = - malloc(nombre_colonnes * + malloc(((size_t) 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; return; @@ -2188,7 +2183,7 @@ instruction_rdm(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; @@ -2223,12 +2218,11 @@ instruction_rdm(struct_processus *s_etat { if (variable_partagee == d_vrai) { - (*(*s_etat_processus).s_liste_variables_partagees).table - [(*(*s_etat_processus).s_liste_variables_partagees) - .position_variable].objet = s_objet_redimensionne; + (*(*s_etat_processus).pointeur_variable_partagee_courante).objet = + s_objet_redimensionne; 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;