--- rpl/src/instructions_d3.c 2010/08/06 15:33:00 1.12 +++ rpl/src/instructions_d3.c 2011/06/22 13:26:59 1.24 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.0.18 - Copyright (C) 1989-2010 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.0.prerelease.3 + Copyright (C) 1989-2011 Dr. BERTRAND Joël This file is part of RPL/2. @@ -45,11 +45,9 @@ instruction_draw(struct_processus *s_eta logical1 last_valide; logical1 premiere_iteration; - logical1 presence_variable; logical1 retour_suite_erreur; long hauteur_pile; - long i; real8 borne_maximale_x; real8 borne_maximale_y; @@ -136,46 +134,18 @@ instruction_draw(struct_processus *s_eta * Vérification de la présence de la variable globale EQ */ - if (recherche_variable(s_etat_processus, "EQ") == d_faux) + if (recherche_variable_globale(s_etat_processus, "EQ") == d_faux) { /* * Aucune variable "EQ" n'existe. */ - (*s_etat_processus).erreur_execution = d_ex_absence_equation; - (*s_etat_processus).erreur_systeme = d_es; - - if (last_valide == d_vrai) - { - sf(s_etat_processus, 31); - } - - return; - } - - /* - * Recherche de la variable globale "EQ" - */ - - i = (*s_etat_processus).position_variable_courante; - presence_variable = d_faux; - - while(i >= 0) - { - if ((strcmp((*s_etat_processus).s_liste_variables[i].nom, - "EQ") == 0) && ((*s_etat_processus) - .s_liste_variables[i].niveau == 1)) + if ((*s_etat_processus).erreur_execution == d_ex) { - presence_variable = d_vrai; - break; + (*s_etat_processus).erreur_execution = d_ex_absence_equation; } - i--; - } - - if (presence_variable == d_faux) - { - (*s_etat_processus).erreur_execution = d_ex_absence_equation; + (*s_etat_processus).erreur_systeme = d_es; if (last_valide == d_vrai) { @@ -185,12 +155,6 @@ instruction_draw(struct_processus *s_eta return; } - if ((*s_etat_processus).s_liste_variables[i].objet == NULL) - { - (*s_etat_processus).erreur_execution = d_ex_variable_partagee; - return; - } - /* * Création du fichier graphique temporaire */ @@ -625,21 +589,17 @@ instruction_draw(struct_processus *s_eta // La variable étant créée localement, elle n'est jamais // ni verrouillée ni partagée. - BUG((*s_etat_processus).s_liste_variables - [(*s_etat_processus).position_variable_courante] + BUG((*(*s_etat_processus).pointeur_variable_courante) .objet == NULL); - if ((*((*s_etat_processus).s_liste_variables - [(*s_etat_processus).position_variable_courante]) + if ((*(*(*s_etat_processus).pointeur_variable_courante) .objet).type != REL) { liberation(s_etat_processus, - ((*s_etat_processus).s_liste_variables - [(*s_etat_processus).position_variable_courante]) + (*(*s_etat_processus).pointeur_variable_courante) .objet); - if ((((*s_etat_processus).s_liste_variables - [(*s_etat_processus).position_variable_courante]) + if (((*(*s_etat_processus).pointeur_variable_courante) .objet = allocation(s_etat_processus, REL)) == NULL) { @@ -649,8 +609,7 @@ instruction_draw(struct_processus *s_eta } } - (*((real8 *) (*((*s_etat_processus).s_liste_variables - [(*s_etat_processus).position_variable_courante]) + (*((real8 *) (*(*(*s_etat_processus).pointeur_variable_courante) .objet).objet)) = x; } else @@ -684,8 +643,7 @@ instruction_draw(struct_processus *s_eta return; } - if (recherche_variable(s_etat_processus, "EQ") - == d_faux) + if (recherche_variable_globale(s_etat_processus, "EQ") == d_faux) { /* * Aucune variable "EQ" n'existe. @@ -758,98 +716,6 @@ instruction_draw(struct_processus *s_eta } /* - * Recherche de la variable globale "EQ" - */ - - i = (*s_etat_processus).position_variable_courante; - presence_variable = d_faux; - - while(i >= 0) - { - if ((strcmp((*s_etat_processus).s_liste_variables[i].nom, - "EQ") == 0) && ((*s_etat_processus) - .s_liste_variables[i].niveau == 1)) - { - presence_variable = d_vrai; - break; - } - - i--; - } - - (*s_etat_processus).position_variable_courante = i; - - BUG((*s_etat_processus).s_liste_variables[i].objet == NULL); - - if (presence_variable == d_faux) - { - /* - * Retrait de la variable INDEP - */ - - (*s_etat_processus).niveau_courant--; - - if (fclose(fichier) != 0) - { - (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; - return; - } - - if (destruction_fichier(nom_fichier) == d_erreur) - { - (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; - return; - } - - if (retrait_variable(s_etat_processus, nom_x, 'L') - == d_erreur) - { - if ((*s_etat_processus).erreur_systeme != d_es) - { - if ((*s_etat_processus).erreur_systeme == - d_es_variable_introuvable) - { - (*s_etat_processus).erreur_systeme = d_es; - } - else - { - - /* - * Erreur système - */ - - free(nom_fichier); - return; - } - } - - free(nom_x); - free(nom_fichier); - - if (last_valide == d_vrai) - { - sf(s_etat_processus, 31); - } - - (*s_etat_processus).erreur_execution = - d_ex_variable_non_definie; - return; - } - - free(nom_x); - free(nom_fichier); - - if (last_valide == d_vrai) - { - sf(s_etat_processus, 31); - } - - (*s_etat_processus).erreur_execution = - d_ex_variable_non_definie; - return; - } - - /* * Evaluation de la fonction */ @@ -863,9 +729,8 @@ instruction_draw(struct_processus *s_eta (*s_etat_processus).erreur_execution = d_ex; (*s_etat_processus).exception = d_ep; - if (evaluation(s_etat_processus, (*s_etat_processus) - .s_liste_variables[(*s_etat_processus) - .position_variable_courante].objet, 'N') == d_erreur) + if (evaluation(s_etat_processus, (*(*s_etat_processus) + .pointeur_variable_courante).objet, 'N') == d_erreur) { (*s_etat_processus).mode_evaluation_expression = mode_evaluation_expression; @@ -1152,7 +1017,7 @@ instruction_draw(struct_processus *s_eta * Vérification de la présence de la variable globale EQ */ - if (recherche_variable(s_etat_processus, "EQ") == d_faux) + if (recherche_variable_globale(s_etat_processus, "EQ") == d_faux) { /* * Aucune variable "EQ" n'existe. @@ -1163,46 +1028,13 @@ instruction_draw(struct_processus *s_eta sf(s_etat_processus, 31); } - (*s_etat_processus).erreur_execution = d_ex_absence_equation; - (*s_etat_processus).erreur_systeme = d_es; - - return; - } - - /* - * Recherche de la variable globale "EQ" - */ - - i = (*s_etat_processus).position_variable_courante; - presence_variable = d_faux; - - while(i >= 0) - { - if ((strcmp((*s_etat_processus).s_liste_variables[i].nom, - "EQ") == 0) && ((*s_etat_processus) - .s_liste_variables[i].niveau == 1)) - { - presence_variable = d_vrai; - break; - } - - i--; - } - - if (presence_variable == d_faux) - { - if (last_valide == d_vrai) + if ((*s_etat_processus).erreur_execution == d_ex) { - sf(s_etat_processus, 31); + (*s_etat_processus).erreur_execution = d_ex_absence_equation; } - (*s_etat_processus).erreur_execution = d_ex_absence_equation; - return; - } + (*s_etat_processus).erreur_systeme = d_es; - if ((*s_etat_processus).s_liste_variables[i].objet == NULL) - { - (*s_etat_processus).erreur_execution = d_ex_variable_partagee; return; } @@ -1606,21 +1438,17 @@ instruction_draw(struct_processus *s_eta // La variable étant créée localement, elle n'est jamais // ni verrouillée ni partagée. - BUG((*s_etat_processus).s_liste_variables - [(*s_etat_processus).position_variable_courante] + BUG((*(*s_etat_processus).pointeur_variable_courante) .objet == NULL); - if ((*((*s_etat_processus).s_liste_variables - [(*s_etat_processus).position_variable_courante]) + if ((*(*(*s_etat_processus).pointeur_variable_courante) .objet).type != REL) { liberation(s_etat_processus, - ((*s_etat_processus).s_liste_variables - [(*s_etat_processus).position_variable_courante]) + (*(*s_etat_processus).pointeur_variable_courante) .objet); - if ((((*s_etat_processus).s_liste_variables - [(*s_etat_processus).position_variable_courante]) + if (((*(*s_etat_processus).pointeur_variable_courante) .objet = allocation(s_etat_processus, REL)) == NULL) { @@ -1630,8 +1458,7 @@ instruction_draw(struct_processus *s_eta } } - (*((real8 *) (*((*s_etat_processus).s_liste_variables - [(*s_etat_processus).position_variable_courante]) + (*((real8 *) (*(*(*s_etat_processus).pointeur_variable_courante) .objet).objet)) = t; } else @@ -1665,8 +1492,7 @@ instruction_draw(struct_processus *s_eta return; } - if (recherche_variable(s_etat_processus, "EQ") - == d_faux) + if (recherche_variable_globale(s_etat_processus, "EQ") == d_faux) { /* * Aucune variable "EQ" n'existe. @@ -1738,96 +1564,6 @@ instruction_draw(struct_processus *s_eta } /* - * Recherche de la variable globale "EQ" - */ - - i = (*s_etat_processus).position_variable_courante; - presence_variable = d_faux; - - while(i >= 0) - { - if ((strcmp((*s_etat_processus).s_liste_variables[i].nom, - "EQ") == 0) && ((*s_etat_processus) - .s_liste_variables[i].niveau == 1)) - { - presence_variable = d_vrai; - break; - } - - i--; - } - - (*s_etat_processus).position_variable_courante = i; - - BUG((*s_etat_processus).s_liste_variables[i].objet == NULL); - - if (presence_variable == d_faux) - { - /* - * Retrait de la variable INDEP - */ - - (*s_etat_processus).niveau_courant--; - - if (fclose(fichier) != 0) - { - (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; - return; - } - - if (destruction_fichier(nom_fichier) == d_erreur) - { - (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; - return; - } - - if (retrait_variable(s_etat_processus, nom_x, 'L') == d_erreur) - { - if ((*s_etat_processus).erreur_systeme != d_es) - { - if ((*s_etat_processus).erreur_systeme == - d_es_variable_introuvable) - { - (*s_etat_processus).erreur_systeme = d_es; - } - else - { - - /* - * Erreur système - */ - - free(nom_fichier); - return; - } - } - - free(nom_x); - free(nom_fichier); - - if (last_valide == d_vrai) - { - sf(s_etat_processus, 31); - } - - (*s_etat_processus).erreur_execution = - d_ex_variable_non_definie; - return; - } - - (*s_etat_processus).erreur_execution = - d_ex_variable_non_definie; - - if (last_valide == d_vrai) - { - sf(s_etat_processus, 31); - } - - free(nom_fichier); - return; - } - - /* * Evaluation de la fonction */ @@ -1838,9 +1574,8 @@ instruction_draw(struct_processus *s_eta (*s_etat_processus).erreur_execution = d_ex; (*s_etat_processus).exception = d_ep; - if (evaluation(s_etat_processus, (*s_etat_processus) - .s_liste_variables[(*s_etat_processus) - .position_variable_courante].objet, 'N') == d_erreur) + if (evaluation(s_etat_processus, (*(*s_etat_processus) + .pointeur_variable_courante).objet, 'N') == d_erreur) { if ((*s_etat_processus).erreur_systeme != d_es) { @@ -2121,57 +1856,24 @@ instruction_draw(struct_processus *s_eta * Vérification de la présence de la variable globale EQ */ - if (recherche_variable(s_etat_processus, "EQ") == d_faux) + if (recherche_variable_globale(s_etat_processus, "EQ") == d_faux) { /* * Aucune variable "EQ" n'existe. */ - (*s_etat_processus).erreur_execution = d_ex_absence_equation; - (*s_etat_processus).erreur_systeme = d_es; - - if (last_valide == d_vrai) + if ((*s_etat_processus).erreur_execution == d_ex) { - sf(s_etat_processus, 31); + (*s_etat_processus).erreur_execution = d_ex_absence_equation; } - return; - } - - /* - * Recherche de la variable globale "EQ" - */ - - i = (*s_etat_processus).position_variable_courante; - presence_variable = d_faux; - - while(i >= 0) - { - if ((strcmp((*s_etat_processus).s_liste_variables[i].nom, - "EQ") == 0) && ((*s_etat_processus) - .s_liste_variables[i].niveau == 1)) - { - presence_variable = d_vrai; - break; - } - - i--; - } + (*s_etat_processus).erreur_systeme = d_es; - if (presence_variable == d_faux) - { if (last_valide == d_vrai) { sf(s_etat_processus, 31); } - (*s_etat_processus).erreur_execution = d_ex_absence_equation; - return; - } - - if ((*s_etat_processus).s_liste_variables[i].objet == NULL) - { - (*s_etat_processus).erreur_execution = d_ex_variable_partagee; return; } @@ -2553,7 +2255,7 @@ instruction_draw(struct_processus *s_eta } /* - * L'erreur retournée ne peut être qu'une erreur système + * L'erreur retournée ne peut être qu'une erreur système. */ free(nom_fichier); @@ -2579,21 +2281,17 @@ instruction_draw(struct_processus *s_eta // La variable étant créée localement, elle n'est jamais // ni verrouillée ni partagée. - BUG(((*s_etat_processus).s_liste_variables - [(*s_etat_processus).position_variable_courante]) + BUG((*(*s_etat_processus).pointeur_variable_courante) .objet == NULL); - if ((*((*s_etat_processus).s_liste_variables - [(*s_etat_processus).position_variable_courante]) + if ((*(*(*s_etat_processus).pointeur_variable_courante) .objet).type != REL) { liberation(s_etat_processus, - ((*s_etat_processus).s_liste_variables - [(*s_etat_processus).position_variable_courante]) + (*(*s_etat_processus).pointeur_variable_courante) .objet); - if ((((*s_etat_processus).s_liste_variables - [(*s_etat_processus).position_variable_courante]) + if (((*(*s_etat_processus).pointeur_variable_courante) .objet = allocation(s_etat_processus, REL)) == NULL) { @@ -2603,8 +2301,7 @@ instruction_draw(struct_processus *s_eta } } - (*((real8 *) (*((*s_etat_processus).s_liste_variables - [(*s_etat_processus).position_variable_courante]) + (*((real8 *) (*(*(*s_etat_processus).pointeur_variable_courante) .objet).objet)) = t; } else @@ -2638,8 +2335,7 @@ instruction_draw(struct_processus *s_eta return; } - if (recherche_variable(s_etat_processus, "EQ") - == d_faux) + if (recherche_variable_globale(s_etat_processus, "EQ") == d_faux) { /* * Aucune variable "EQ" n'existe. @@ -2712,98 +2408,6 @@ instruction_draw(struct_processus *s_eta } /* - * Recherche de la variable globale "EQ" - */ - - i = (*s_etat_processus).position_variable_courante; - presence_variable = d_faux; - - while(i >= 0) - { - if ((strcmp((*s_etat_processus).s_liste_variables[i].nom, - "EQ") == 0) && ((*s_etat_processus) - .s_liste_variables[i].niveau == 1)) - { - presence_variable = d_vrai; - break; - } - - i--; - } - - (*s_etat_processus).position_variable_courante = i; - - BUG((*s_etat_processus).s_liste_variables[i].objet == NULL); - - if (presence_variable == d_faux) - { - /* - * Retrait de la variable INDEP - */ - - (*s_etat_processus).niveau_courant--; - - if (fclose(fichier) != 0) - { - (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; - return; - } - - if (destruction_fichier(nom_fichier) == d_erreur) - { - (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; - return; - } - - if (retrait_variable(s_etat_processus, nom_x, 'L') - == d_erreur) - { - if ((*s_etat_processus).erreur_systeme != d_es) - { - if ((*s_etat_processus).erreur_systeme == - d_es_variable_introuvable) - { - (*s_etat_processus).erreur_systeme = d_es; - } - else - { - - /* - * Erreur système - */ - - free(nom_fichier); - return; - } - } - - free(nom_x); - free(nom_fichier); - - if (last_valide == d_vrai) - { - sf(s_etat_processus, 31); - } - - (*s_etat_processus).erreur_execution = - d_ex_variable_non_definie; - return; - } - - free(nom_x); - free(nom_fichier); - - if (last_valide == d_vrai) - { - sf(s_etat_processus, 31); - } - - (*s_etat_processus).erreur_execution = - d_ex_variable_non_definie; - return; - } - - /* * Evaluation de la fonction */ @@ -2814,9 +2418,8 @@ instruction_draw(struct_processus *s_eta (*s_etat_processus).erreur_execution = d_ex; (*s_etat_processus).exception = d_ep; - if (evaluation(s_etat_processus, (*s_etat_processus) - .s_liste_variables[(*s_etat_processus) - .position_variable_courante].objet, 'N') == d_erreur) + if (evaluation(s_etat_processus, (*(*s_etat_processus) + .pointeur_variable_courante).objet, 'N') == d_erreur) { if ((*s_etat_processus).erreur_systeme != d_es) { @@ -3116,52 +2719,19 @@ instruction_draw(struct_processus *s_eta * Vérification de la présence de la variable globale EQ */ - if (recherche_variable(s_etat_processus, "EQ") == d_faux) + if (recherche_variable_globale(s_etat_processus, "EQ") == d_faux) { /* * Aucune variable "EQ" n'existe. */ - (*s_etat_processus).erreur_execution = d_ex_absence_equation; - (*s_etat_processus).erreur_systeme = d_es; - - return; - } - - /* - * Recherche de la variable globale "EQ" - */ - - i = (*s_etat_processus).position_variable_courante; - presence_variable = d_faux; - - while(i >= 0) - { - if ((strcmp((*s_etat_processus).s_liste_variables[i].nom, - "EQ") == 0) && ((*s_etat_processus) - .s_liste_variables[i].niveau == 1)) - { - presence_variable = d_vrai; - break; - } - - i--; - } - - if (presence_variable == d_faux) - { - if (last_valide == d_vrai) + if ((*s_etat_processus).erreur_execution == d_ex) { - sf(s_etat_processus, 31); + (*s_etat_processus).erreur_execution = d_ex_absence_equation; } - (*s_etat_processus).erreur_execution = d_ex_absence_equation; - return; - } + (*s_etat_processus).erreur_systeme = d_es; - if ((*s_etat_processus).s_liste_variables[i].objet == NULL) - { - (*s_etat_processus).erreur_execution = d_ex_variable_partagee; return; } @@ -4046,23 +3616,19 @@ instruction_draw(struct_processus *s_eta // La variable étant créée localement, elle n'est jamais // ni verrouillée ni partagee. - BUG((*s_etat_processus).s_liste_variables - [(*s_etat_processus).position_variable_courante] + BUG((*(*s_etat_processus).pointeur_variable_courante) .objet == NULL); - if ((*((*s_etat_processus).s_liste_variables - [(*s_etat_processus).position_variable_courante]) + if ((*(*(*s_etat_processus).pointeur_variable_courante) .objet).type != REL) { liberation(s_etat_processus, - ((*s_etat_processus).s_liste_variables - [(*s_etat_processus) - .position_variable_courante]).objet); - - if ((((*s_etat_processus).s_liste_variables - [(*s_etat_processus) - .position_variable_courante]).objet = - allocation(s_etat_processus, REL)) == NULL) + (*(*s_etat_processus) + .pointeur_variable_courante).objet); + + if (((*(*s_etat_processus).pointeur_variable_courante) + .objet = allocation(s_etat_processus, REL)) + == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; @@ -4070,9 +3636,8 @@ instruction_draw(struct_processus *s_eta } } - (*((real8 *) (*((*s_etat_processus).s_liste_variables - [(*s_etat_processus).position_variable_courante]) - .objet).objet)) = x; + (*((real8 *) (*(*(*s_etat_processus) + .pointeur_variable_courante).objet).objet)) = x; } else { @@ -4112,23 +3677,18 @@ instruction_draw(struct_processus *s_eta // La variable étant créée localement, elle n'est jamais // ni verrouillée ni partagée. - BUG((*s_etat_processus).s_liste_variables - [(*s_etat_processus).position_variable_courante] + BUG((*(*s_etat_processus).pointeur_variable_courante) .objet == NULL); - if ((*((*s_etat_processus).s_liste_variables - [(*s_etat_processus).position_variable_courante]) + if ((*(*(*s_etat_processus).pointeur_variable_courante) .objet).type != REL) { - liberation(s_etat_processus, - ((*s_etat_processus).s_liste_variables - [(*s_etat_processus) - .position_variable_courante]).objet); - - if ((((*s_etat_processus).s_liste_variables - [(*s_etat_processus) - .position_variable_courante]).objet = - allocation(s_etat_processus, REL)) == NULL) + liberation(s_etat_processus, (*(*s_etat_processus) + .pointeur_variable_courante).objet); + + if (((*(*s_etat_processus).pointeur_variable_courante) + .objet = allocation(s_etat_processus, REL)) + == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; @@ -4136,9 +3696,8 @@ instruction_draw(struct_processus *s_eta } } - (*((real8 *) (*((*s_etat_processus).s_liste_variables - [(*s_etat_processus).position_variable_courante]) - .objet).objet)) = y; + (*((real8 *) (*(*(*s_etat_processus) + .pointeur_variable_courante).objet).objet)) = y; } else { @@ -4173,7 +3732,7 @@ instruction_draw(struct_processus *s_eta return; } - if (recherche_variable(s_etat_processus, "EQ") + if (recherche_variable_globale(s_etat_processus, "EQ") == d_faux) { /* @@ -4287,138 +3846,6 @@ instruction_draw(struct_processus *s_eta } /* - * Recherche de la variable globale "EQ" - */ - - i = (*s_etat_processus).position_variable_courante; - presence_variable = d_faux; - - while(i >= 0) - { - if ((strcmp((*s_etat_processus).s_liste_variables[i].nom, - "EQ") == 0) && ((*s_etat_processus) - .s_liste_variables[i].niveau == 1)) - { - presence_variable = d_vrai; - break; - } - - i--; - } - - (*s_etat_processus).position_variable_courante = i; - - BUG((*s_etat_processus).s_liste_variables[i].objet == NULL); - - if (presence_variable == d_faux) - { - /* - * Retrait des variables INDEP et DEPND - */ - - (*s_etat_processus).niveau_courant--; - - if (fclose(fichier) != 0) - { - (*s_etat_processus).erreur_systeme = - d_es_erreur_fichier; - return; - } - - if (destruction_fichier(nom_fichier) == d_erreur) - { - (*s_etat_processus).erreur_systeme = - d_es_erreur_fichier; - return; - } - - if (retrait_variable(s_etat_processus, nom_x, 'L') - == d_erreur) - { - if ((*s_etat_processus).erreur_systeme != d_es) - { - if ((*s_etat_processus).erreur_systeme == - d_es_variable_introuvable) - { - (*s_etat_processus).erreur_systeme = d_es; - } - else - { - - /* - * Erreur système - */ - - free(nom_fichier); - return; - } - } - - free(nom_x); - free(nom_y); - free(nom_fichier); - - if (last_valide == d_vrai) - { - sf(s_etat_processus, 31); - } - - (*s_etat_processus).erreur_execution = - d_ex_variable_non_definie; - return; - } - - if (retrait_variable(s_etat_processus, nom_y, 'L') - == d_erreur) - { - if ((*s_etat_processus).erreur_systeme != d_es) - { - if ((*s_etat_processus).erreur_systeme == - d_es_variable_introuvable) - { - (*s_etat_processus).erreur_systeme = d_es; - } - else - { - - /* - * Erreur système - */ - - free(nom_fichier); - return; - } - } - - free(nom_x); - free(nom_y); - free(nom_fichier); - - if (last_valide == d_vrai) - { - sf(s_etat_processus, 31); - } - - (*s_etat_processus).erreur_execution = - d_ex_variable_non_definie; - return; - } - - free(nom_x); - free(nom_y); - free(nom_fichier); - - if (last_valide == d_vrai) - { - sf(s_etat_processus, 31); - } - - (*s_etat_processus).erreur_execution = - d_ex_variable_non_definie; - return; - } - - /* * Evaluation de la fonction */ @@ -4429,9 +3856,8 @@ instruction_draw(struct_processus *s_eta (*s_etat_processus).erreur_execution = d_ex; (*s_etat_processus).exception = d_ep; - if (evaluation(s_etat_processus, (*s_etat_processus) - .s_liste_variables[(*s_etat_processus) - .position_variable_courante].objet, 'N') == d_erreur) + if (evaluation(s_etat_processus, (*(*s_etat_processus) + .pointeur_variable_courante).objet, 'N') == d_erreur) { if ((*s_etat_processus).erreur_systeme != d_es) {