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

version 1.78, 2015/11/26 11:44:44 version 1.85, 2017/06/29 14:54:42
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.24    RPL/2 (R) version 4.1.27
   Copyright (C) 1989-2015 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 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))
     {      {
   

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


CVSweb interface <joel.bertrand@systella.fr>