version 1.79, 2011/11/18 21:03:24
|
version 1.81, 2011/11/18 21:31:40
|
Line 1955 instruction_detach(struct_processus *s_e
|
Line 1955 instruction_detach(struct_processus *s_e
|
|
|
if ((*s_etat_processus).erreur_systeme == d_es) |
if ((*s_etat_processus).erreur_systeme == d_es) |
{ |
{ |
|
// Évite le warning variable s_copie might be clobbered by |
|
// longjmp or vfork |
|
struct_objet **s; |
|
|
|
if ((s = malloc(sizeof(struct_objet *))) == NULL) |
|
{ |
|
(*s_etat_processus).erreur_execution = |
|
d_es_allocation_memoire; |
|
return; |
|
} |
|
|
|
(*s) = s_copie; |
|
|
if (setjmp(contexte_processus) == 0) |
if (setjmp(contexte_processus) == 0) |
{ |
{ |
if (variable_partagee == d_faux) |
if (variable_partagee == d_faux) |
Line 1988 instruction_detach(struct_processus *s_e
|
Line 2001 instruction_detach(struct_processus *s_e
|
} |
} |
else |
else |
{ |
{ |
if (evaluation(s_etat_processus, s_copie, 'E') == d_erreur) |
if (evaluation(s_etat_processus, (*s), 'E') == d_erreur) |
{ |
{ |
if (((*s_etat_processus).erreur_execution == d_ex) && |
if (((*s_etat_processus).erreur_execution == d_ex) && |
((*s_etat_processus).erreur_systeme == d_es)) |
((*s_etat_processus).erreur_systeme == d_es)) |
Line 2015 instruction_detach(struct_processus *s_e
|
Line 2028 instruction_detach(struct_processus *s_e
|
} |
} |
} |
} |
|
|
liberation(s_etat_processus, s_copie); |
liberation(s_etat_processus, (*s)); |
} |
} |
} |
} |
|
|
|
free(s); |
} |
} |
|
|
liberation(s_etat_processus, (*s_etat_processus).at_exit); |
liberation(s_etat_processus, (*s_etat_processus).at_exit); |