]> git.pld-linux.org Git - packages/vim.git/blob - 7.3.454
- up to 7.3.600
[packages/vim.git] / 7.3.454
1 To: vim_dev@googlegroups.com
2 Subject: Patch 7.3.454
3 Fcc: outbox
4 From: Bram Moolenaar <Bram@moolenaar.net>
5 Mime-Version: 1.0
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
8 ------------
9
10 Patch 7.3.454
11 Problem:    Re-allocating memory slows Vim down.
12 Solution:   Use realloc() in ga_grow(). (Dominique Pelle)
13 Files:      src/misc2.c
14
15
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
18 ***************
19 *** 2064,2087 ****
20       garray_T  *gap;
21       int               n;
22   {
23 !     size_t    len;
24       char_u    *pp;
25   
26       if (gap->ga_maxlen - gap->ga_len < n)
27       {
28         if (n < gap->ga_growsize)
29             n = gap->ga_growsize;
30 !       len = gap->ga_itemsize * (gap->ga_len + n);
31 !       pp = alloc_clear((unsigned)len);
32         if (pp == NULL)
33             return FAIL;
34         gap->ga_maxlen = gap->ga_len + n;
35 -       if (gap->ga_data != NULL)
36 -       {
37 -           mch_memmove(pp, gap->ga_data,
38 -                                     (size_t)(gap->ga_itemsize * gap->ga_len));
39 -           vim_free(gap->ga_data);
40 -       }
41         gap->ga_data = pp;
42       }
43       return OK;
44 --- 2064,2085 ----
45       garray_T  *gap;
46       int               n;
47   {
48 !     size_t    old_len;
49 !     size_t    new_len;
50       char_u    *pp;
51   
52       if (gap->ga_maxlen - gap->ga_len < n)
53       {
54         if (n < gap->ga_growsize)
55             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);
59         if (pp == NULL)
60             return FAIL;
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;
64         gap->ga_data = pp;
65       }
66       return OK;
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
69 ***************
70 *** 716,717 ****
71 --- 716,719 ----
72   {   /* Add new patch number below this line */
73 + /**/
74 +     454,
75   /**/
76
77 -- 
78 From "know your smileys":
79  (X0||)   Double hamburger with lettuce and tomato
80
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    ///
This page took 0.029861 seconds and 3 git commands to generate.