--- rpl/src/instructions_r1.c 2011/04/21 16:00:58 1.18 +++ rpl/src/instructions_r1.c 2011/06/10 11:35:13 1.19 @@ -905,10 +905,6 @@ instruction_rclf(struct_processus *s_eta void instruction_rcl(struct_processus *s_etat_processus) { - logical1 presence_variable; - - long i; - struct_objet *s_objet; struct_objet *s_objet_variable; @@ -968,55 +964,23 @@ instruction_rcl(struct_processus *s_etat return; } - if (recherche_variable(s_etat_processus, (*((struct_nom *) + if (recherche_variable_globale(s_etat_processus, (*((struct_nom *) (*s_objet).objet)).nom) == d_faux) { liberation(s_etat_processus, s_objet); (*s_etat_processus).erreur_systeme = d_es; - (*s_etat_processus).erreur_execution = d_ex_variable_non_definie; - return; - } - - i = (*s_etat_processus).position_variable_courante; - presence_variable = d_faux; - while(i >= 0) - { - if ((strcmp((*s_etat_processus).s_liste_variables[i].nom, - (*((struct_nom *) (*s_objet).objet)).nom) == 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_variable_non_definie; } - i--; - } - - (*s_etat_processus).position_variable_courante = i; - - if (presence_variable == d_faux) - { - liberation(s_etat_processus, s_objet); - - (*s_etat_processus).erreur_execution = d_ex_variable_non_definie; - return; - } - - if ((*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante].objet == NULL) - { - liberation(s_etat_processus, s_objet); - - (*s_etat_processus).erreur_systeme = d_es; - (*s_etat_processus).erreur_execution = d_ex_variable_partagee; return; } if ((s_objet_variable = copie_objet(s_etat_processus, - ((*s_etat_processus).s_liste_variables) - [(*s_etat_processus).position_variable_courante].objet, 'P')) + (*(*s_etat_processus).pointeur_variable_courante).objet, 'P')) == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;