--- rpl/src/instructions_g4.c 2012/10/01 11:05:04 1.37 +++ rpl/src/instructions_g4.c 2020/01/10 11:15:45 1.68 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.1.11 - Copyright (C) 1989-2012 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.32 + Copyright (C) 1989-2020 Dr. BERTRAND Joël This file is part of RPL/2. @@ -47,10 +47,10 @@ instruction_getc(struct_processus *s_eta struct_objet *s_objet_argument_2; struct_objet *s_objet_resultat; - unsigned long i; - unsigned long j; - unsigned long colonne; - unsigned long nombre_colonnes; + integer8 i; + integer8 j; + integer8 colonne; + integer8 nombre_colonnes; (*s_etat_processus).erreur_execution = d_ex; @@ -127,26 +127,12 @@ instruction_getc(struct_processus *s_eta { // Variable partagée - 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; - } - liberation(s_etat_processus, s_objet_argument_1); (*s_etat_processus).erreur_systeme = d_es; @@ -157,9 +143,7 @@ instruction_getc(struct_processus *s_eta } s_objet_argument_2 = (*(*s_etat_processus) - .s_liste_variables_partagees).table - [(*(*s_etat_processus).s_liste_variables_partagees) - .position_variable].objet; + .pointeur_variable_partagee_courante).objet; variable_partagee = d_vrai; } else @@ -192,7 +176,8 @@ instruction_getc(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; @@ -219,7 +204,8 @@ instruction_getc(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; @@ -247,7 +233,7 @@ instruction_getc(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; @@ -270,7 +256,7 @@ instruction_getc(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; @@ -294,14 +280,15 @@ instruction_getc(struct_processus *s_eta (*s_objet_resultat).type = MIN; if (((*((struct_matrice *) (*s_objet_resultat).objet)) - .tableau = malloc((*((struct_matrice *) - (*s_objet_resultat).objet)).nombre_lignes * + .tableau = malloc(((size_t) (*((struct_matrice *) + (*s_objet_resultat).objet)).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; @@ -318,14 +305,14 @@ instruction_getc(struct_processus *s_eta .objet)).nombre_lignes; i++) { if (((*((struct_matrice *) (*s_objet_resultat).objet)) - .tableau[i] = malloc(nombre_colonnes * - sizeof(integer8))) == NULL) + .tableau[i] = 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; @@ -371,14 +358,15 @@ instruction_getc(struct_processus *s_eta (*s_objet_resultat).type = MRL; if (((*((struct_matrice *) (*s_objet_resultat).objet)) - .tableau = malloc((*((struct_matrice *) - (*s_objet_resultat).objet)).nombre_lignes * + .tableau = malloc(((size_t) (*((struct_matrice *) + (*s_objet_resultat).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; @@ -395,14 +383,14 @@ instruction_getc(struct_processus *s_eta .objet)).nombre_lignes; i++) { if (((*((struct_matrice *) (*s_objet_resultat).objet)) - .tableau[i] = malloc(nombre_colonnes * - sizeof(real8))) == NULL) + .tableau[i] = 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; @@ -448,14 +436,15 @@ instruction_getc(struct_processus *s_eta (*s_objet_resultat).type = MCX; if (((*((struct_matrice *) (*s_objet_resultat).objet)) - .tableau = malloc((*((struct_matrice *) - (*s_objet_resultat).objet)).nombre_lignes * + .tableau = malloc(((size_t) (*((struct_matrice *) + (*s_objet_resultat).objet)).nombre_lignes) * sizeof(complex16 *))) == 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; @@ -472,14 +461,14 @@ instruction_getc(struct_processus *s_eta .objet)).nombre_lignes; i++) { if (((*((struct_matrice *) (*s_objet_resultat).objet)) - .tableau[i] = malloc(nombre_colonnes * - sizeof(complex16))) == NULL) + .tableau[i] = malloc(((size_t) nombre_colonnes) + * sizeof(complex16))) == 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; @@ -535,7 +524,7 @@ instruction_getc(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; @@ -559,7 +548,7 @@ instruction_getc(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; @@ -581,7 +570,7 @@ instruction_getc(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; @@ -628,10 +617,10 @@ instruction_getr(struct_processus *s_eta struct_objet *s_objet_argument_2; struct_objet *s_objet_resultat; - unsigned long i; - unsigned long j; - unsigned long ligne; - unsigned long nombre_lignes; + integer8 i; + integer8 j; + integer8 ligne; + integer8 nombre_lignes; (*s_etat_processus).erreur_execution = d_ex; @@ -705,26 +694,12 @@ instruction_getr(struct_processus *s_eta { // Variable partagée - 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; - } - liberation(s_etat_processus, s_objet_argument_1); (*s_etat_processus).erreur_systeme = d_es; @@ -735,9 +710,7 @@ instruction_getr(struct_processus *s_eta } s_objet_argument_2 = (*(*s_etat_processus) - .s_liste_variables_partagees).table - [(*(*s_etat_processus).s_liste_variables_partagees) - .position_variable].objet; + .pointeur_variable_partagee_courante).objet; variable_partagee = d_vrai; } else @@ -770,7 +743,8 @@ instruction_getr(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; @@ -798,7 +772,8 @@ instruction_getr(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; @@ -827,7 +802,7 @@ instruction_getr(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; @@ -851,7 +826,7 @@ instruction_getr(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; @@ -870,12 +845,12 @@ instruction_getr(struct_processus *s_eta .nombre_colonnes; if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau = - malloc(nombre_lignes * sizeof(void *))) == NULL) + malloc(((size_t) nombre_lignes) * sizeof(void *))) == 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; @@ -903,15 +878,16 @@ instruction_getr(struct_processus *s_eta .objet)) - 1; if (((*((struct_matrice *) (*s_objet_resultat).objet)) - .tableau[i] = malloc((*((struct_matrice *) - (*s_objet_resultat).objet)).nombre_colonnes * + .tableau[i] = malloc(((size_t) + (*((struct_matrice *) + (*s_objet_resultat).objet)).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; @@ -955,15 +931,16 @@ instruction_getr(struct_processus *s_eta .objet)) - 1; if (((*((struct_matrice *) (*s_objet_resultat).objet)) - .tableau[i] = malloc((*((struct_matrice *) - (*s_objet_resultat).objet)).nombre_colonnes * + .tableau[i] = malloc(((size_t) + (*((struct_matrice *) + (*s_objet_resultat).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; @@ -1007,15 +984,16 @@ instruction_getr(struct_processus *s_eta .objet)) - 1; if (((*((struct_matrice *) (*s_objet_resultat).objet)) - .tableau[i] = malloc((*((struct_matrice *) - (*s_objet_resultat).objet)).nombre_colonnes * + .tableau[i] = malloc(((size_t) + (*((struct_matrice *) + (*s_objet_resultat).objet)).nombre_colonnes) * sizeof(complex16))) == 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; @@ -1060,8 +1038,7 @@ instruction_getr(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; @@ -1085,8 +1062,7 @@ instruction_getr(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; @@ -1108,8 +1084,7 @@ instruction_getr(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; @@ -1232,7 +1207,7 @@ instruction_gamma(struct_processus *s_et if ((*s_objet_argument).type == INT) { - argument_reel = (*((integer8 *) (*s_objet_argument).objet)); + argument_reel = (real8) (*((integer8 *) (*s_objet_argument).objet)); } else {