Diff for /rpl/src/bibliotheques_externes.c between versions 1.58 and 1.73

version 1.58, 2014/04/25 07:37:28 version 1.73, 2017/07/12 15:43:06
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.18    RPL/2 (R) version 4.1.27
   Copyright (C) 1989-2014 Dr. BERTRAND Joël    Copyright (C) 1989-2017 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 57  chargement_bibliotheque(struct_processus Line 57  chargement_bibliotheque(struct_processus
     unsigned char           *tampon;      unsigned char           *tampon;
   
     void                    *descripteur_bibliotheque;      void                    *descripteur_bibliotheque;
     int                     (*onloading)(struct_rpl_arguments *);      int                     (*onloading)(struct_rpl_arguments *, void *);
   
     /*      /*
      * On vérifie que la bibliothèque n'est pas déjà chargée.       * On vérifie que la bibliothèque n'est pas déjà chargée.
Line 172  chargement_bibliotheque(struct_processus Line 172  chargement_bibliotheque(struct_processus
             return(NULL);              return(NULL);
         }          }
   
         (*onloading)(&rpl_arguments);          (*onloading)(&rpl_arguments, descripteur_bibliotheque);
   
 #       ifndef SEMAPHORES_NOMMES  #       ifndef SEMAPHORES_NOMMES
             while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)              while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
Line 305  chargement_bibliotheque(struct_processus Line 305  chargement_bibliotheque(struct_processus
     }      }
   
     dlerror();      dlerror();
     fonction = dlsym(descripteur_bibliotheque, "__external_symbols");      fonction = dlsym(descripteur_bibliotheque, "___external_symbols");
   
     if (fonction == NULL)      if (fonction == NULL)
     {      {
Line 490  retrait_bibliotheque(struct_processus *s Line 490  retrait_bibliotheque(struct_processus *s
     integer8                    j;      integer8                    j;
     integer8                    nombre_symboles_residuels;      integer8                    nombre_symboles_residuels;
   
     int                         (*onclosing)(struct_rpl_arguments *);      int                         (*onclosing)(struct_rpl_arguments *, void *);
   
     l_element_courant = (*s_etat_processus).s_bibliotheques;      l_element_courant = (*s_etat_processus).s_bibliotheques;
     presence_bibliotheque = d_faux;      presence_bibliotheque = d_faux;
Line 591  retrait_bibliotheque(struct_processus *s Line 591  retrait_bibliotheque(struct_processus *s
                 return(d_erreur);                  return(d_erreur);
             }              }
   
             (*onclosing)(&rpl_arguments);              (*onclosing)(&rpl_arguments, (*descripteur).descripteur);
   
 #           ifndef SEMAPHORES_NOMMES  #           ifndef SEMAPHORES_NOMMES
                 while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)                  while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
Line 1406  empilement_pile_operationnelle(struct_rp Line 1406  empilement_pile_operationnelle(struct_rp
     struct_liste_chainee        *l_ancienne_base_liste;      struct_liste_chainee        *l_ancienne_base_liste;
     struct_liste_chainee        *l_nouvelle_base_liste;      struct_liste_chainee        *l_nouvelle_base_liste;
   
       struct_processus            *s_etat_processus;
   
     l_ancienne_base_liste = (*s_rpl_arguments).l_base_pile;      l_ancienne_base_liste = (*s_rpl_arguments).l_base_pile;
       s_etat_processus = (*s_rpl_arguments).s_etat_processus;
   
     l_nouvelle_base_liste = (struct_liste_chainee *) malloc(      l_nouvelle_base_liste = (struct_liste_chainee *) malloc(
             sizeof(struct_liste_chainee));              sizeof(struct_liste_chainee));
Line 1442  depilement_pile_operationnelle(struct_rp Line 1445  depilement_pile_operationnelle(struct_rp
     struct_liste_chainee        *l_ancienne_base_liste;      struct_liste_chainee        *l_ancienne_base_liste;
     struct_liste_chainee        *l_nouvelle_base_liste;      struct_liste_chainee        *l_nouvelle_base_liste;
   
       struct_processus            *s_etat_processus;
   
     if ((*s_rpl_arguments).l_base_pile == NULL)      if ((*s_rpl_arguments).l_base_pile == NULL)
     {      {
         *s_objet = NULL;          *s_objet = NULL;
Line 1451  depilement_pile_operationnelle(struct_rp Line 1456  depilement_pile_operationnelle(struct_rp
     {      {
         l_ancienne_base_liste = (*s_rpl_arguments).l_base_pile;          l_ancienne_base_liste = (*s_rpl_arguments).l_base_pile;
         l_nouvelle_base_liste = (*l_ancienne_base_liste).suivant;          l_nouvelle_base_liste = (*l_ancienne_base_liste).suivant;
           s_etat_processus = (*s_rpl_arguments).s_etat_processus;
   
         *s_objet = (*l_ancienne_base_liste).donnee;          *s_objet = (*l_ancienne_base_liste).donnee;
         free(l_ancienne_base_liste);          free(l_ancienne_base_liste);

Removed from v.1.58  
changed lines
  Added in v.1.73


CVSweb interface <joel.bertrand@systella.fr>