--- rpl/src/evaluation.c 2010/09/23 15:27:35 1.28 +++ rpl/src/evaluation.c 2011/05/09 13:52:10 1.32.2.4 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.0.20 - Copyright (C) 1989-2010 Dr. BERTRAND Joël + RPL/2 (R) version 4.0.24 + Copyright (C) 1989-2011 Dr. BERTRAND Joël This file is part of RPL/2. @@ -1808,7 +1808,7 @@ evaluation(struct_processus *s_etat_proc return(d_erreur); } - if ((*s_objet_indice_i).type == INT) + if ((*s_objet_indice_i).type != INT) { liberation(s_etat_processus, s_objet_indice_i); free(s_objet_elementaire); @@ -2178,8 +2178,6 @@ evaluation(struct_processus *s_etat_proc .position_variable_courante]).objet)).objet)) .nombre_colonnes)) { - liberation(s_etat_processus, s_objet_indice_i); - liberation(s_etat_processus, s_objet_indice_j); free(s_objet_elementaire); if (presence_variable_partagee == d_vrai) @@ -2544,7 +2542,7 @@ evaluation(struct_processus *s_etat_proc else if (((*(((*s_etat_processus).s_liste_variables [(*s_etat_processus).position_variable_courante]) - .objet)).type == TAB) && + .objet)).type == TBL) && ((*((struct_fonction *) (*(*l_element_courant) .donnee).objet)).nombre_arguments == 1)) { @@ -5493,7 +5491,6 @@ evaluation(struct_processus *s_etat_proc ((*s_etat_processus).erreur_execution != d_ex) || ((*s_etat_processus).exception != d_ep)) { - (*s_etat_processus).instruction_courante = instruction_courante; (*s_etat_processus).mode_execution_programme = registre_mode_execution_programme; return(d_erreur); @@ -5501,18 +5498,18 @@ evaluation(struct_processus *s_etat_proc } else { + (*s_etat_processus).instruction_courante = instruction_courante; + if ((s_objet_tampon = copie_objet(s_etat_processus, s_objet, 'P')) == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; - (*s_etat_processus).instruction_courante = instruction_courante; return(d_erreur); } if (empilement(s_etat_processus, &((*s_etat_processus) .l_base_pile), s_objet_tampon) == d_erreur) { - (*s_etat_processus).instruction_courante = instruction_courante; return(d_erreur); } }