Diff for /rpl/src/gestion_objets.c between versions 1.49 and 1.61

version 1.49, 2011/06/20 17:54:15 version 1.61, 2011/08/09 11:31:30
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.0.prerelease.1    RPL/2 (R) version 4.1.3
   Copyright (C) 1989-2011 Dr. BERTRAND Joël    Copyright (C) 1989-2011 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
Line 111  initialisation_allocateur(struct_process Line 111  initialisation_allocateur(struct_process
     (*s_etat_processus).pointeur_vec = 0;      (*s_etat_processus).pointeur_vec = 0;
     (*s_etat_processus).pointeur_maillons = 0;      (*s_etat_processus).pointeur_maillons = 0;
   
       (*s_etat_processus).pointeur_variables_noeud = 0;
       (*s_etat_processus).pointeur_variables_feuille = 0;
       (*s_etat_processus).pointeur_variables_variable = 0;
       (*s_etat_processus).pointeur_variables_tableau_noeuds = 0;
   
     return;      return;
 }  }
   
Line 143  liberation_allocateur(struct_processus * Line 148  liberation_allocateur(struct_processus *
     for(i = 0; i < (*s_etat_processus).pointeur_maillons;      for(i = 0; i < (*s_etat_processus).pointeur_maillons;
             free((*s_etat_processus).maillons[i++]));              free((*s_etat_processus).maillons[i++]));
   
       for(i = 0; i < (*s_etat_processus).pointeur_variables_noeud;
               free((*s_etat_processus).variables_noeud[i++]));
       for(i = 0; i < (*s_etat_processus).pointeur_variables_feuille;
               free((*s_etat_processus).variables_feuille[i++]));
       for(i = 0; i < (*s_etat_processus).pointeur_variables_variable;
               free((*s_etat_processus).variables_variable[i++]));
       for(i = 0; i < (*s_etat_processus).pointeur_variables_tableau_noeuds;
               free((*s_etat_processus).variables_tableau_noeuds[i++]));
   
     {      {
         struct_liste_chainee        *l_element_courant;          struct_liste_chainee        *l_element_courant;
         struct_liste_chainee        *l_element_suivant;          struct_liste_chainee        *l_element_suivant;
Line 234  allocation_maillon(struct_processus *s_e Line 248  allocation_maillon(struct_processus *s_e
   
 /*  /*
 ================================================================================  ================================================================================
   Routine d'allocation d'un maillon d'un objet (liste, expression...)    Routine de libération d'un maillon d'un objet (liste, expression...)
 ================================================================================  ================================================================================
   Entrées : structure sur l'état du processus et objet à afficher    Entrées : structure sur l'état du processus et objet à afficher
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
Line 274  liberation_maillon(struct_processus *s_e Line 288  liberation_maillon(struct_processus *s_e
 ================================================================================  ================================================================================
 */  */
   
 void *  struct_objet *
 allocation(struct_processus *s_etat_processus, enum t_type type)  allocation(struct_processus *s_etat_processus, enum t_type type)
 {  {
     struct_objet            *s_objet;      struct_objet            *s_objet;
Line 2828  copie_etat_processus(struct_processus *s Line 2842  copie_etat_processus(struct_processus *s
     }      }
 #   endif  #   endif
   
       initialisation_contexte_cas(s_etat_processus);
   
     (*s_nouvel_etat_processus).var_volatile_processus_pere = 0;      (*s_nouvel_etat_processus).var_volatile_processus_pere = 0;
     (*s_nouvel_etat_processus).var_volatile_processus_racine = 0;      (*s_nouvel_etat_processus).var_volatile_processus_racine = 0;
     (*s_nouvel_etat_processus).fichiers_graphiques = NULL;      (*s_nouvel_etat_processus).fichiers_graphiques = NULL;
Line 3110  copie_etat_processus(struct_processus *s Line 3126  copie_etat_processus(struct_processus *s
      * Copie de la table des variables       * Copie de la table des variables
      */       */
   
     if (((*s_nouvel_etat_processus).s_arbre_variables =      copie_arbre_variables(s_etat_processus, s_nouvel_etat_processus);
             copie_arbre_variables(s_etat_processus)) == NULL)  
       if ((*s_nouvel_etat_processus).erreur_systeme != d_es)
     {      {
         return(NULL);          return(NULL);
     }      }
   
     // La pile des variables par niveau n'est pas copiée puisqu'il est  
     // impossible n'enlever dans un thread une variable créée dans le père.  
   
     (*s_etat_processus).l_liste_variables_par_niveau = NULL;  
   
     /*      /*
      * Copie de la table des variables statiques       * Copie de la table des variables statiques
      */       */

Removed from v.1.49  
changed lines
  Added in v.1.61


CVSweb interface <joel.bertrand@systella.fr>