version 1.51, 2012/01/17 14:44:06
|
version 1.58, 2012/10/03 14:53:11
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.6 |
RPL/2 (R) version 4.1.11 |
Copyright (C) 1989-2012 Dr. BERTRAND Joël |
Copyright (C) 1989-2012 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
Line 426 ajout_variable(struct_processus *s_etat_
|
Line 426 ajout_variable(struct_processus *s_etat_
|
} |
} |
|
|
(*(*s_etat_processus).s_arbre_variables).feuille = NULL; |
(*(*s_etat_processus).s_arbre_variables).feuille = NULL; |
|
(*(*s_etat_processus).s_arbre_variables).feuille_statique = NULL; |
(*(*s_etat_processus).s_arbre_variables).noeuds_utilises = 0; |
(*(*s_etat_processus).s_arbre_variables).noeuds_utilises = 0; |
(*(*s_etat_processus).s_arbre_variables).indice_tableau_pere = -1; |
(*(*s_etat_processus).s_arbre_variables).indice_tableau_pere = -1; |
(*(*s_etat_processus).s_arbre_variables).noeud_pere = NULL; |
(*(*s_etat_processus).s_arbre_variables).noeud_pere = NULL; |
Line 476 ajout_variable(struct_processus *s_etat_
|
Line 477 ajout_variable(struct_processus *s_etat_
|
(*(*l_variable_courante).noeuds[(*s_etat_processus) |
(*(*l_variable_courante).noeuds[(*s_etat_processus) |
.pointeurs_caracteres_variables[*ptr]]).feuille = NULL; |
.pointeurs_caracteres_variables[*ptr]]).feuille = NULL; |
(*(*l_variable_courante).noeuds[(*s_etat_processus) |
(*(*l_variable_courante).noeuds[(*s_etat_processus) |
|
.pointeurs_caracteres_variables[*ptr]]).feuille_statique |
|
= NULL; |
|
(*(*l_variable_courante).noeuds[(*s_etat_processus) |
.pointeurs_caracteres_variables[*ptr]]).noeuds_utilises = 0; |
.pointeurs_caracteres_variables[*ptr]]).noeuds_utilises = 0; |
|
|
// Le champ noeud_pere de la structure créée pointe sur |
// Le champ noeud_pere de la structure créée pointe sur |
Line 1292 retrait_variable(struct_processus *s_eta
|
Line 1296 retrait_variable(struct_processus *s_eta
|
[(*(*variable_a_supprimer).noeud).indice_tableau_pere])) |
[(*(*variable_a_supprimer).noeud).indice_tableau_pere])) |
.feuille = NULL; |
.feuille = NULL; |
|
|
while((*s_arbre_courant).noeuds_utilises == 0) |
while(((*s_arbre_courant).noeuds_utilises == 0) && |
|
((*s_arbre_courant).feuille_statique == NULL)) |
{ |
{ |
s_arbre_a_supprimer = s_arbre_courant; |
s_arbre_a_supprimer = s_arbre_courant; |
s_arbre_courant = (*s_arbre_courant).noeud_pere; |
s_arbre_courant = (*s_arbre_courant).noeud_pere; |
Line 1666 void
|
Line 1671 void
|
liberation_arbre_variables(struct_processus *s_etat_processus, |
liberation_arbre_variables(struct_processus *s_etat_processus, |
struct_arbre_variables *arbre, logical1 retrait_definitions) |
struct_arbre_variables *arbre, logical1 retrait_definitions) |
{ |
{ |
int i; |
int i; |
|
|
|
struct_liste_chainee *l_element_courant_liste; |
|
struct_liste_chainee *l_element_suivant_liste; |
|
|
struct_liste_chainee *l_element_courant_liste; |
struct_liste_variables *l_element_courant; |
struct_liste_chainee *l_element_suivant_liste; |
struct_liste_variables *l_element_suivant; |
|
|
struct_liste_variables *l_element_courant; |
struct_liste_variables_statiques *l_element_statique_courant; |
struct_liste_variables *l_element_suivant; |
struct_liste_variables_statiques *l_element_statique_suivant; |
|
|
// Libération de l'arbre des variables. Le contenu des variables n'est |
// Libération de l'arbre des variables. Le contenu des variables n'est |
// pas détruit par cette opération, il sera détruit lors de la libération |
// pas détruit par cette opération, il sera détruit lors de la libération |
Line 1697 liberation_arbre_variables(struct_proces
|
Line 1705 liberation_arbre_variables(struct_proces
|
(*arbre).feuille = NULL; |
(*arbre).feuille = NULL; |
} |
} |
|
|
|
l_element_statique_courant = (*arbre).feuille_statique; |
|
|
|
while(l_element_statique_courant != NULL) |
|
{ |
|
l_element_statique_suivant = (*l_element_statique_courant).suivant; |
|
|
|
free((*(*l_element_statique_courant).variable).nom); |
|
liberation(s_etat_processus, (*(*l_element_statique_courant) |
|
.variable).objet); |
|
|
|
l_element_statique_courant = l_element_statique_suivant; |
|
} |
|
|
for(i = 0; i < (*s_etat_processus).nombre_caracteres_variables; i++) |
for(i = 0; i < (*s_etat_processus).nombre_caracteres_variables; i++) |
{ |
{ |
if ((*arbre).noeuds[i] != NULL) |
if ((*arbre).noeuds[i] != NULL) |
Line 1802 nombre_variables(struct_processus *s_eta
|
Line 1823 nombre_variables(struct_processus *s_eta
|
return(n); |
return(n); |
} |
} |
|
|
|
|
int |
int |
liste_variables(struct_processus *s_etat_processus, |
liste_variables(struct_processus *s_etat_processus, |
struct_tableau_variables *tableau, int position, |
struct_tableau_variables *tableau, int position, |