--- rpl/src/instructions_n1.c 2010/04/07 13:45:07 1.6 +++ rpl/src/instructions_n1.c 2012/05/21 17:25:44 1.36 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.0.14 - Copyright (C) 1989-2010 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.9 + Copyright (C) 1989-2012 Dr. BERTRAND Joël This file is part of RPL/2. @@ -20,7 +20,7 @@ */ -#include "rpl.conv.h" +#include "rpl-conv.h" /* @@ -756,11 +756,14 @@ instruction_not(struct_processus *s_etat else if ((*s_objet_argument).type == BIN) { - (*((logical8 *) (*s_objet_argument).objet)) = - ~(*((logical8 *) (*s_objet_argument).objet)); + if ((s_objet_resultat = allocation(s_etat_processus, BIN)) == NULL) + { + (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; + return; + } - s_objet_resultat = s_objet_argument; - s_objet_argument = NULL; + (*((logical8 *) (*s_objet_resultat).objet)) = + ~(*((logical8 *) (*s_objet_argument).objet)); } /* @@ -2129,23 +2132,21 @@ instruction_next(struct_processus *s_eta return; } - if (((*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante]).variable_verrouillee == d_vrai) + if ((*(*s_etat_processus).pointeur_variable_courante) + .variable_verrouillee == d_vrai) { (*s_etat_processus).erreur_execution = d_ex_variable_verrouillee; return; } - if (((*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante]).objet == NULL) + if ((*(*s_etat_processus).pointeur_variable_courante).objet == NULL) { (*s_etat_processus).erreur_execution = d_ex_variable_partagee; return; } (*(*s_etat_processus).l_base_pile_systeme).indice_boucle = - ((*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante]).objet; + (*(*s_etat_processus).pointeur_variable_courante).objet; } /* @@ -2202,8 +2203,7 @@ instruction_next(struct_processus *s_eta */ (*(*s_etat_processus).l_base_pile_systeme).indice_boucle = NULL; - ((*s_etat_processus).s_liste_variables[(*s_etat_processus) - .position_variable_courante]).objet = s_objet; + (*(*s_etat_processus).pointeur_variable_courante).objet = s_objet; } else {