Diff for /rpl/src/instructions_s1.c between versions 1.94 and 1.97

version 1.94, 2019/01/28 15:34:25 version 1.97, 2019/02/06 14:23:26
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.30    RPL/2 (R) version 4.1.31
   Copyright (C) 1989-2019 Dr. BERTRAND Joël    Copyright (C) 1989-2019 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
Line 3415  instruction_syseval(struct_processus *s_ Line 3415  instruction_syseval(struct_processus *s_
     unsigned char               *tampon;      unsigned char               *tampon;
   
     integer8                    longueur_lecture;      integer8                    longueur_lecture;
       integer8                    longueur_lue;
     integer8                    longueur_tampon;      integer8                    longueur_tampon;
     integer8                    nombre_iterations;  
     integer8                    nombre_lignes;      integer8                    nombre_lignes;
     integer8                    pointeur;      integer8                    pointeur;
     integer8                    registre_position_courante;      integer8                    registre_position_courante;
Line 3688  instruction_syseval(struct_processus *s_ Line 3688  instruction_syseval(struct_processus *s_
   
         fflush(NULL);          fflush(NULL);
   
         verrouillage_threads_concurrents(s_etat_processus);  
         pid = fork();          pid = fork();
   
         if (pid < 0)          if (pid < 0)
Line 3821  instruction_syseval(struct_processus *s_ Line 3820  instruction_syseval(struct_processus *s_
         }          }
         else          else
         {          {
             deverrouillage_threads_concurrents(s_etat_processus);  
   
             if (close(pipes_entree[0]) != 0)              if (close(pipes_entree[0]) != 0)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  (*s_etat_processus).erreur_systeme = d_es_processus;
Line 3968  instruction_syseval(struct_processus *s_ Line 3965  instruction_syseval(struct_processus *s_
             }              }
   
             longueur_lecture = 65536;              longueur_lecture = 65536;
               longueur_lue = 0;
             pointeur = 0;              pointeur = 0;
             nombre_iterations = 1;  
   
             if ((tampon = malloc(((size_t) (longueur_lecture + 1)) *              if ((tampon = malloc(((size_t) (longueur_lecture + 1)) *
                     sizeof(unsigned char))) == NULL)                      sizeof(unsigned char))) == NULL)
Line 4004  instruction_syseval(struct_processus *s_ Line 4001  instruction_syseval(struct_processus *s_
                     return;                      return;
                 }                  }
   
                   longueur_lue += ios;
                 tampon[pointeur + ios] = d_code_fin_chaine;                  tampon[pointeur + ios] = d_code_fin_chaine;
                 pointeur += ios;                  pointeur += ios;
                 nombre_iterations++;  
   
                 if ((tampon = realloc(tampon,                  if ((tampon = realloc(tampon,
                         ((size_t) ((nombre_iterations * longueur_lecture) + 1))                          ((size_t) ((longueur_lue + longueur_lecture) + 1))
                         * sizeof(unsigned char))) == NULL)                          * sizeof(unsigned char))) == NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =

Removed from v.1.94  
changed lines
  Added in v.1.97


CVSweb interface <joel.bertrand@systella.fr>