]>
Commit | Line | Data |
---|---|---|
03d4279c AM |
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 /// |