--- rpl/src/instructions_s9.c 2010/04/21 13:45:49 1.9 +++ rpl/src/instructions_s9.c 2010/07/24 16:39:44 1.14 @@ -1,6 +1,6 @@ /* ================================================================================ - RPL/2 (R) version 4.0.15 + RPL/2 (R) version 4.0.18 Copyright (C) 1989-2010 Dr. BERTRAND Joël This file is part of RPL/2. @@ -463,7 +463,6 @@ instruction_sort(struct_processus *s_eta indice_j = 0; indice_k = (*((struct_tableau *) (*s_objet_liste).objet)) .nombre_elements - ecartement; - terminaison_boucle_2 = d_faux; do @@ -557,12 +556,12 @@ instruction_sort(struct_processus *s_eta if (condition == d_faux) { - swap((void *) (*((struct_tableau *) - (*s_objet_liste).objet)).elements - [indice_i - 1], (void *) - (*((struct_tableau *) (*s_objet_liste) - .objet)).elements[indice_l - 1], - sizeof(struct_objet)); + swap(&((*((struct_tableau *) + (*s_objet_liste).objet)).elements + [indice_i - 1]), + &((*((struct_tableau *) (*s_objet_liste) + .objet)).elements[indice_l - 1]), + sizeof(struct_objet *)); indice_i -= ecartement; @@ -968,6 +967,12 @@ instruction_suspend(struct_processus *s_ { (*s_etat_processus).erreur_systeme = d_es_processus; return; + } + + if (sigdelset(&masque, SIGFABORT) != 0) + { + (*s_etat_processus).erreur_systeme = d_es_processus; + return; } if (sigdelset(&masque, SIGURG) != 0)