--- rpl/src/gestion_objets.c 2011/11/26 13:05:03 1.76 +++ rpl/src/gestion_objets.c 2012/10/04 15:21:26 1.87 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.1.5 - Copyright (C) 1989-2011 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.11 + Copyright (C) 1989-2012 Dr. BERTRAND Joël This file is part of RPL/2. @@ -2283,12 +2283,17 @@ copie_objet(struct_processus *s_etat_pro return(s_objet); } + // Un objet de type NON est un objet encapsulé dans une + // structure de type struct_objet. Elle peut très bien contenir + // une donnée, mais c'est à l'utilisateur de la libérer + // explicitement avec un free(). + if ((s_nouvel_objet = allocation(s_etat_processus, NON)) == NULL) { return(NULL); } - (*s_nouvel_objet).objet = NULL; + (*s_nouvel_objet).objet = (*s_objet).objet; break; } @@ -2817,6 +2822,7 @@ copie_etat_processus(struct_processus *s pthread_mutexattr_init(&attributs_mutex); pthread_mutexattr_settype(&attributs_mutex, PTHREAD_MUTEX_NORMAL); + (*s_nouvel_etat_processus).sections_critiques = 0; // Les sémaphores sont initialisés dans le nouveau thread. Il // s'agit d'une limitation de l'implantation de l'émulation @@ -3117,6 +3123,8 @@ copie_etat_processus(struct_processus *s * Copie de la table des variables statiques */ +#warning A FAIRE + /* if (((*s_nouvel_etat_processus).s_liste_variables_statiques = malloc((*s_etat_processus).nombre_variables_statiques_allouees * sizeof(struct_variable_statique))) == NULL) @@ -3172,6 +3180,7 @@ copie_etat_processus(struct_processus *s return(NULL); } } + */ /* * Copie de la pile opérationnelle