home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / patches / 7.2 / 7.2.153 < prev    next >
Encoding:
Internet Message Format  |  2009-04-21  |  2.8 KB

  1. To: vim-dev@vim.org
  2. Subject: Patch 7.2.153
  3. Fcc: outbox
  4. From: Bram Moolenaar <Bram@moolenaar.net>
  5. Mime-Version: 1.0
  6. Content-Type: text/plain; charset=ISO-8859-1
  7. Content-Transfer-Encoding: 8bit
  8. ------------
  9.  
  10. Patch 7.2.153
  11. Problem:    Memory leak for ":recover empty_dir/".
  12. Solution:   Free files[] when it becomes empty. (Dominique Pelle)
  13. Files:        src/memline.c
  14.  
  15.  
  16. *** ../vim-7.2.152/src/memline.c    Sun Jul 13 19:40:43 2008
  17. --- src/memline.c    Wed Apr 22 11:48:35 2009
  18. ***************
  19. *** 1554,1563 ****
  20.           for (i = 0; i < num_files; ++i)
  21.           if (fullpathcmp(p, files[i], TRUE) & FPC_SAME)
  22.           {
  23.               vim_free(files[i]);
  24. !             --num_files;
  25. !             for ( ; i < num_files; ++i)
  26. !             files[i] = files[i + 1];
  27.           }
  28.       }
  29.       if (nr > 0)
  30. --- 1554,1568 ----
  31.           for (i = 0; i < num_files; ++i)
  32.           if (fullpathcmp(p, files[i], TRUE) & FPC_SAME)
  33.           {
  34. +             /* Remove the name from files[i].  Move further entries
  35. +              * down.  When the array becomes empty free it here, since
  36. +              * FreeWild() won't be called below. */
  37.               vim_free(files[i]);
  38. !             if (--num_files == 0)
  39. !             vim_free(files);
  40. !             else
  41. !             for ( ; i < num_files; ++i)
  42. !                 files[i] = files[i + 1];
  43.           }
  44.       }
  45.       if (nr > 0)
  46. ***************
  47. *** 3522,3528 ****
  48.           if (errno == EINVAL || errno == ENOENT)
  49.           {
  50.           /* Found non-symlink or not existing file, stop here.
  51. !          * When at the first level use the unmodifed name, skip the
  52.            * call to vim_FullName(). */
  53.           if (depth == 1)
  54.               return FAIL;
  55. --- 3527,3533 ----
  56.           if (errno == EINVAL || errno == ENOENT)
  57.           {
  58.           /* Found non-symlink or not existing file, stop here.
  59. !          * When at the first level use the unmodified name, skip the
  60.            * call to vim_FullName(). */
  61.           if (depth == 1)
  62.               return FAIL;
  63. ***************
  64. *** 4560,4566 ****
  65.               buf->b_ml.ml_chunksize + curix,
  66.               (buf->b_ml.ml_usedchunks - curix) *
  67.               sizeof(chunksize_T));
  68. !         /* Compute length of first half of lines in the splitted chunk */
  69.           size = 0;
  70.           linecnt = 0;
  71.           while (curline < buf->b_ml.ml_line_count
  72. --- 4568,4574 ----
  73.               buf->b_ml.ml_chunksize + curix,
  74.               (buf->b_ml.ml_usedchunks - curix) *
  75.               sizeof(chunksize_T));
  76. !         /* Compute length of first half of lines in the split chunk */
  77.           size = 0;
  78.           linecnt = 0;
  79.           while (curline < buf->b_ml.ml_line_count
  80. *** ../vim-7.2.152/src/version.c    Wed Apr 22 14:42:26 2009
  81. --- src/version.c    Wed Apr 22 15:34:18 2009
  82. ***************
  83. *** 678,679 ****
  84. --- 678,681 ----
  85.   {   /* Add new patch number below this line */
  86. + /**/
  87. +     153,
  88.   /**/
  89.  
  90. -- 
  91. Windows
  92. M!uqoms
  93.  
  94.  /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
  95. ///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
  96. \\\        download, build and distribute -- http://www.A-A-P.org        ///
  97.  \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
  98.