]>
Commit | Line | Data |
---|---|---|
f3c378e8 AG |
1 | To: vim-dev@vim.org |
2 | Subject: Patch 7.0.092 | |
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.0.092 (after 7.0.082 and 7.0.084) | |
11 | Problem: The list of internal function arguments is obsolete now that | |
12 | garbage collection is only done at the toplevel. | |
13 | Solution: Remove the list of all arguments to internal functions. | |
14 | Files: src/eval.c | |
15 | ||
16 | ||
17 | *** ../vim-7.0.091/src/eval.c Wed Sep 6 22:14:42 2006 | |
18 | --- src/eval.c Sat Sep 9 12:00:28 2006 | |
19 | *************** | |
20 | *** 248,264 **** | |
21 | }; | |
22 | ||
23 | /* | |
24 | - * Struct used to make a list of all arguments used in internal functions. | |
25 | - */ | |
26 | - typedef struct av_list_item_S av_list_item_T; | |
27 | - struct av_list_item_S { | |
28 | - av_list_item_T *avl_next; | |
29 | - typval_T *avl_argvars; | |
30 | - }; | |
31 | - | |
32 | - av_list_item_T *argvars_list = NULL; | |
33 | - | |
34 | - /* | |
35 | * Info used by a ":for" loop. | |
36 | */ | |
37 | typedef struct | |
38 | --- 248,253 ---- | |
39 | *************** | |
40 | *** 6069,6075 **** | |
41 | int i; | |
42 | funccall_T *fc; | |
43 | int did_free = FALSE; | |
44 | - av_list_item_T *av; | |
45 | #ifdef FEAT_WINDOWS | |
46 | tabpage_T *tp; | |
47 | #endif | |
48 | --- 6058,6063 ---- | |
49 | *************** | |
50 | *** 6110,6120 **** | |
51 | set_ref_in_ht(&fc->l_avars.dv_hashtab, copyID); | |
52 | } | |
53 | ||
54 | - /* arguments for internal functions */ | |
55 | - for (av = argvars_list; av != NULL; av = av->avl_next) | |
56 | - for (i = 0; av->avl_argvars[i].v_type != VAR_UNKNOWN; ++i) | |
57 | - set_ref_in_item(&av->avl_argvars[i], copyID); | |
58 | - | |
59 | /* | |
60 | * 2. Go through the list of dicts and free items without the copyID. | |
61 | */ | |
62 | --- 6098,6103 ---- | |
63 | *************** | |
64 | *** 7558,7578 **** | |
65 | error = ERROR_TOOMANY; | |
66 | else | |
67 | { | |
68 | - av_list_item_T av_list_item; | |
69 | - | |
70 | - /* Add the arguments to the "argvars_list" to avoid the | |
71 | - * garbage collector not seeing them. This isn't needed | |
72 | - * for user functions, because the arguments are available | |
73 | - * in the a: hashtab. */ | |
74 | - av_list_item.avl_argvars = argvars; | |
75 | - av_list_item.avl_next = argvars_list; | |
76 | - argvars_list = &av_list_item; | |
77 | - | |
78 | argvars[argcount].v_type = VAR_UNKNOWN; | |
79 | functions[i].f_func(argvars, rettv); | |
80 | error = ERROR_NONE; | |
81 | - | |
82 | - argvars_list = av_list_item.avl_next; | |
83 | } | |
84 | } | |
85 | } | |
86 | --- 7541,7549 ---- | |
87 | *** ../vim-7.0.091/src/version.c Wed Sep 6 22:14:42 2006 | |
88 | --- src/version.c Sat Sep 9 12:04:55 2006 | |
89 | *************** | |
90 | *** 668,669 **** | |
91 | --- 668,671 ---- | |
92 | { /* Add new patch number below this line */ | |
93 | + /**/ | |
94 | + 92, | |
95 | /**/ | |
96 | ||
97 | -- | |
98 | "Hegel was right when he said that we learn from history that man can | |
99 | never learn anything from history." (George Bernard Shaw) | |
100 | ||
101 | /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ | |
102 | /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ | |
103 | \\\ download, build and distribute -- http://www.A-A-P.org /// | |
104 | \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |