1 To: vim_dev@googlegroups.com
4 From: Bram Moolenaar <Bram@moolenaar.net>
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
11 Problem: Re-allocating memory slows Vim down.
12 Solution: Use realloc() in ga_grow(). (Dominique Pelle)
16 *** ../vim-7.3.453/src/misc2.c 2012-02-22 14:58:24.000000000 +0100
17 --- src/misc2.c 2012-02-22 18:07:45.000000000 +0100
26 if (gap->ga_maxlen - gap->ga_len < n)
28 if (n < gap->ga_growsize)
30 ! len = gap->ga_itemsize * (gap->ga_len + n);
31 ! pp = alloc_clear((unsigned)len);
34 gap->ga_maxlen = gap->ga_len + n;
35 - if (gap->ga_data != NULL)
37 - mch_memmove(pp, gap->ga_data,
38 - (size_t)(gap->ga_itemsize * gap->ga_len));
39 - vim_free(gap->ga_data);
52 if (gap->ga_maxlen - gap->ga_len < n)
54 if (n < gap->ga_growsize)
56 ! new_len = gap->ga_itemsize * (gap->ga_len + n);
57 ! pp = (gap->ga_data == NULL)
58 ! ? alloc(new_len) : vim_realloc(gap->ga_data, new_len);
61 + old_len = gap->ga_itemsize * gap->ga_maxlen;
62 + vim_memset(pp + old_len, 0, new_len - old_len);
63 gap->ga_maxlen = gap->ga_len + n;
67 *** ../vim-7.3.453/src/version.c 2012-02-22 17:58:00.000000000 +0100
68 --- src/version.c 2012-02-22 18:09:42.000000000 +0100
72 { /* Add new patch number below this line */
78 From "know your smileys":
79 (X0||) Double hamburger with lettuce and tomato
81 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
82 /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
83 \\\ an exciting new programming language -- http://www.Zimbu.org ///
84 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///