--- rpl/src/formateur.c 2017/06/29 14:54:42 1.83 +++ rpl/src/formateur.c 2017/07/11 16:04:53 1.86 @@ -42,8 +42,7 @@ formateur(struct_processus *s_etat_proce int parentheses_groupe_gauche; int parentheses_groupe_droit; - integer8 (*__type_disp)(struct_processus - *s_etat_processus, void **arg); + integer8 (*__type_disp)(struct_processus *, void **); logical1 registre45; @@ -3308,6 +3307,17 @@ formateur(struct_processus *s_etat_proce strcat(chaine, " ]"); } } + else if ((*s_objet).type == NON) + { + if ((chaine = malloc((strlen("System object") + 1) + * sizeof(unsigned char))) == NULL) + { + (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; + return(NULL); + } + + strcpy(chaine, "System object"); + } else if ((*s_objet).type == EXT) { if ((__type_disp = dlsym((*s_objet).descripteur_bibliotheque, @@ -3319,6 +3329,7 @@ formateur(struct_processus *s_etat_proce * sizeof(unsigned char))) == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; + return(NULL); } strcpy(chaine, "External symbol"); @@ -3326,7 +3337,11 @@ formateur(struct_processus *s_etat_proce else { // Symbole externe affichable - __type_disp(s_etat_processus, (void **) &chaine); + void **arg; + + arg = (void **) &s_objet; + __type_disp(s_etat_processus, arg); + chaine = (unsigned char *) (*arg); } } else