From 8bd6650245d050e455cd4d26f6e59e7dd9b80392 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Tue, 29 Mar 2016 11:47:23 +0200 Subject: array: allow arbitrarily sized array elements There exist two typical ways to use an array: 1) to hold pointers to externally allocated memory regions Use array_init(...) for initialization, an element has the size of a pointer. Use the functions suffixed with `_ptr' to manage your pointers. The cleanup function array_release_full must only be used with this type of array. 2) to hold arbitrary sized objects Use array_init_sized(...) to specify the size of a single element. Use the regular (i.e. without the `_ptr' suffix) functions to manage your objects. array_get will return a pointer to the object stored within the array. --- vis.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'vis.c') diff --git a/vis.c b/vis.c index 4ececaa..8dc8365 100644 --- a/vis.c +++ b/vis.c @@ -319,6 +319,8 @@ Vis *vis_new(Ui *ui, VisEvent *event) { vis->expandtab = false; vis->registers[VIS_REG_BLACKHOLE].type = REGISTER_BLACKHOLE; vis->registers[VIS_REG_CLIPBOARD].type = REGISTER_CLIPBOARD; + array_init(&vis->motions); + array_init(&vis->textobjects); action_reset(&vis->action); if (!(vis->command_file = file_new_internal(vis, NULL))) goto err; -- cgit v1.2.3