--- rpl/src/gestion_variables.c 2013/03/24 13:42:44 1.73 +++ rpl/src/gestion_variables.c 2015/01/28 22:17:39 1.88 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.1.13 - Copyright (C) 1989-2013 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.20 + Copyright (C) 1989-2015 Dr. BERTRAND Joël This file is part of RPL/2. @@ -1531,6 +1531,15 @@ retrait_variables_par_niveau(struct_proc break; } + if (((*s_etat_processus).at_exit != NULL) && + ((*s_etat_processus).niveau_courant == 0)) + { + // Il y a une routine ATEXIT enregistrée. On ne détruit pas + // les variables globales qui pourraient y être utilisées. + + break; + } + while((*(*s_etat_processus).l_liste_variables_par_niveau).liste != NULL) { @@ -2001,6 +2010,7 @@ liste_variables_locales(struct_processus (*(*l_variable_statique).variable).variable_statique; tableau[position].variable_partagee.pointeur = NULL; tableau[position].variable_masquee = d_vrai; + tableau[position].mutex = NULL; position++; } @@ -2439,7 +2449,7 @@ copie_arbre_variables(struct_processus * */ /* - * Caractères autorisés dans les instructions + * Caractères autorisés dans les variables * * A B C D E F G H I J K L M N O P Q R S T U V W X Y Z * a b c d e f g h i j k l m n o p q r s t u v w x y z