version 1.79, 2011/11/18 21:03:24
|
version 1.80, 2011/11/18 21:20:02
|
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 2000 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 2027 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); |