Diff for /rpl/src/types.c between versions 1.84 and 1.85

version 1.84, 2017/06/29 12:33:35 version 1.85, 2017/06/29 14:54:42
Line 19 Line 19
 ================================================================================  ================================================================================
 */  */
   
 #define DEBUG_ERREURS  
 #include "rpl-conv.h"  #include "rpl-conv.h"
   
   
Line 56  recherche_type(struct_processus *s_etat_ Line 56  recherche_type(struct_processus *s_etat_
     integer8                    profondeur_initiale;      integer8                    profondeur_initiale;
     integer8                    sauvegarde_niveau_courant;      integer8                    sauvegarde_niveau_courant;
     integer8                    sauvegarde_longueur_definitions_chainees;      integer8                    sauvegarde_longueur_definitions_chainees;
       integer8                    (*__type_new)(struct_processus
                                           *s_etat_processus, void **arg);
   
     struct_liste_chainee        *l_base_liste_fonctions;      struct_liste_chainee        *l_base_liste_fonctions;
     struct_liste_chainee        *l_base_liste_decomposition;      struct_liste_chainee        *l_base_liste_decomposition;
Line 117  recherche_type(struct_processus *s_etat_ Line 119  recherche_type(struct_processus *s_etat_
     (*s_etat_processus).test_instruction = 'Y';      (*s_etat_processus).test_instruction = 'Y';
     (*s_etat_processus).traitement_interruptible = 'N';      (*s_etat_processus).traitement_interruptible = 'N';
   
   uprintf(".%s.\n", (*s_etat_processus).instruction_courante);
     analyse(s_etat_processus, NULL);      analyse(s_etat_processus, NULL);
   
     (*s_etat_processus).test_instruction = registre_test;      (*s_etat_processus).test_instruction = registre_test;
Line 260  recherche_type(struct_processus *s_etat_ Line 263  recherche_type(struct_processus *s_etat_
   
     (*s_etat_processus).instruction_valide = registre_instruction_valide;      (*s_etat_processus).instruction_valide = registre_instruction_valide;
   
   /*
   --------------------------------------------------------------------------------
     Types externes
   --------------------------------------------------------------------------------
   */
   
       l_element_courant = (*s_etat_processus).s_bibliotheques;
   
       while(l_element_courant != NULL)
       {
           if ((__type_new = dlsym((*((struct_bibliotheque *)
                   (*l_element_courant).donnee)).descripteur, "__type_new"))
                   != NULL)
           {
               if (((*s_objet).extension_type = __type_new(s_etat_processus,
                       &element)) != 0)
               {
                   // Le type peut être converti.
   
                   (*s_objet).objet = element;
                   (*s_objet).type = EXT;
   
                   if (empilement(s_etat_processus,
                           &((*s_etat_processus).l_base_pile), s_objet)
                           == d_erreur)
                   {
                       (*s_etat_processus).erreur_systeme =
                               d_es_allocation_memoire;
                       (*s_etat_processus).traitement_interruptible =
                               registre_interruption;
                       return;
                   }
   
                   (*s_etat_processus).traitement_interruptible =
                           registre_interruption;
                   return;
               }
           }
   
           l_element_courant = (*l_element_courant).suivant;
       }
   
   /*
   --------------------------------------------------------------------------------
     Types internes
   --------------------------------------------------------------------------------
   */
   
     switch(*((*s_etat_processus).instruction_courante))      switch(*((*s_etat_processus).instruction_courante))
     {      {
   
Line 3650  recherche_type(struct_processus *s_etat_ Line 3701  recherche_type(struct_processus *s_etat_
   
     (*s_etat_processus).traitement_interruptible = registre_interruption;      (*s_etat_processus).traitement_interruptible = registre_interruption;
     return;      return;
   
 extention_type:  
     return;  
 }  }
   
   

Removed from v.1.84  
changed lines
  Added in v.1.85


CVSweb interface <joel.bertrand@systella.fr>