Diff for /rpl/src/formateur.c between versions 1.86 and 1.87

version 1.86, 2017/07/11 16:04:53 version 1.87, 2017/07/12 15:42:42
Line 3320  formateur(struct_processus *s_etat_proce Line 3320  formateur(struct_processus *s_etat_proce
     }      }
     else if ((*s_objet).type == EXT)      else if ((*s_objet).type == EXT)
     {      {
         if ((__type_disp = dlsym((*s_objet).descripteur_bibliotheque,          l_element_courant = (*s_etat_processus).s_bibliotheques;
                 "__type_disp")) == NULL)  
           while(l_element_courant != NULL)
           {
               if ((*((struct_bibliotheque *) (*l_element_courant).donnee))
                       .descripteur == (*s_objet).descripteur_bibliotheque)
               {
                   if ((__type_disp = dlsym((*s_objet).descripteur_bibliotheque,
                           "__type_disp")) == NULL)
                   {
                       // Symbole externe non affichable
   
                       if ((chaine = malloc((strlen(
                               "External symbol (disp function not found)") + 1)
                               * sizeof(unsigned char))) == NULL)
                       {
                           (*s_etat_processus).erreur_systeme =
                                   d_es_allocation_memoire;
                           return(NULL);
                       }
   
                       strcpy(chaine, "External symbol (disp function not found)");
                   }
                   else
                   {
                       // Symbole externe affichable
                       void        **arg;
   
                       arg = (void **) &s_objet;
                       __type_disp(s_etat_processus, arg);
                       chaine = (unsigned char *) (*arg);
                   }
   
                   break;
               }
   
               l_element_courant = (*l_element_courant).suivant;
           }
   
           if (l_element_courant == NULL)
         {          {
             // Symbole externe non affichable              // Symbole externe non affichable
   
             if ((chaine = malloc((strlen("External symbol") + 1)              if ((chaine = malloc((strlen("External symbol") + 1)
                     * sizeof(unsigned char))) == NULL)                      * sizeof(unsigned char))) == NULL)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;                  (*s_etat_processus).erreur_systeme =
                           d_es_allocation_memoire;
                 return(NULL);                  return(NULL);
             }              }
   
             strcpy(chaine, "External symbol");              strcpy(chaine, "External symbol");
         }          }
         else  
         {  
             // Symbole externe affichable  
             void        **arg;  
   
             arg = (void **) &s_objet;  
             __type_disp(s_etat_processus, arg);  
             chaine = (unsigned char *) (*arg);  
         }  
     }      }
     else      else
     {      {

Removed from v.1.86  
changed lines
  Added in v.1.87


CVSweb interface <joel.bertrand@systella.fr>