version 1.13, 2010/08/26 19:07:37
|
version 1.26, 2011/06/27 09:04:56
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.0.19 |
RPL/2 (R) version 4.1.0 |
Copyright (C) 1989-2010 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 38
|
Line 38
|
void |
void |
instruction_clusr(struct_processus *s_etat_processus) |
instruction_clusr(struct_processus *s_etat_processus) |
{ |
{ |
unsigned long i; |
struct_liste_variables *l_element_courant; |
|
|
(*s_etat_processus).erreur_execution = d_ex; |
(*s_etat_processus).erreur_execution = d_ex; |
|
|
Line 73 instruction_clusr(struct_processus *s_et
|
Line 73 instruction_clusr(struct_processus *s_et
|
} |
} |
} |
} |
|
|
for(i = 0; i < (*s_etat_processus).nombre_variables; i++) |
l_element_courant = (*s_etat_processus).l_liste_variables_par_niveau; |
|
|
|
if (l_element_courant == NULL) |
|
{ |
|
return; |
|
} |
|
|
|
do |
{ |
{ |
if (((*s_etat_processus).s_liste_variables[i]).niveau == 1) |
if ((*l_element_courant).liste != NULL) |
{ |
{ |
if (retrait_variable(s_etat_processus, |
if ((*(*l_element_courant).liste).donnee != NULL) |
((*s_etat_processus).s_liste_variables[i]).nom, 'G') |
|
== d_erreur) |
|
{ |
{ |
return; |
if ((*((struct_variable *) (*(*l_element_courant).liste) |
|
.donnee)).niveau == 1) |
|
{ |
|
while((*l_element_courant).liste != NULL) |
|
{ |
|
if (retrait_variable(s_etat_processus, |
|
(*((struct_variable *) (*(*l_element_courant) |
|
.liste).donnee)).nom, 'G') == d_erreur) |
|
{ |
|
return; |
|
} |
|
|
|
if ((*s_etat_processus).niveau_supprime == d_vrai) |
|
{ |
|
// La dernière variable de niveau 1 a été |
|
// supprimée. On sort donc de la boucle car |
|
// (*l_element_courant).liste pointe sur |
|
// un pointeur libérée par retrait_variable(). |
|
|
|
break; |
|
} |
|
} |
|
|
|
break; |
|
} |
} |
} |
} |
} |
} |
|
|
l_element_courant = (*l_element_courant).precedent; |
|
} while(l_element_courant != (*s_etat_processus) |
|
.l_liste_variables_par_niveau); |
|
|
return; |
return; |
} |
} |