summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJari Vetoniemi <mailroxas@gmail.com>2014-10-25 21:53:48 +0300
committerJari Vetoniemi <mailroxas@gmail.com>2014-10-25 21:53:48 +0300
commitc1bdca9cc493999acb54d58a04a41e458a49c097 (patch)
tree597181cc03127926c4186e5b300c10504eadc31c /lib
parentd799bbd246e6d7ababf19a9b578ea0bc1c171202 (diff)
downloadbemenu-c1bdca9cc493999acb54d58a04a41e458a49c097.tar.gz
bemenu-c1bdca9cc493999acb54d58a04a41e458a49c097.tar.bz2
bemenu-c1bdca9cc493999acb54d58a04a41e458a49c097.zip
Use sizeof(void*) and fix list remove.
Diffstat (limited to 'lib')
-rw-r--r--lib/list.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/list.c b/lib/list.c
index 993998f..400f666 100644
--- a/lib/list.c
+++ b/lib/list.c
@@ -77,14 +77,14 @@ list_grow(struct list *list, uint32_t step)
assert(list);
void *tmp;
- uint32_t nsize = sizeof(struct bm_item*) * (list->allocated + step);
+ uint32_t nsize = sizeof(void*) * (list->allocated + step);
if (!(tmp = realloc(list->items, nsize)))
return false;
list->items = tmp;
list->allocated += step;
- memset(&list->items[list->count], 0, sizeof(struct bm_item*) * (list->allocated - list->count));
+ memset(&list->items[list->count], 0, sizeof(void*) * (list->allocated - list->count));
return true;
}
@@ -98,7 +98,7 @@ list_add_item_at(struct list *list, void *item, uint32_t index)
if (index + 1 != list->count) {
uint32_t i = index;
- memmove(&list->items[i + 1], &list->items[i], sizeof(struct bm_item*) * (list->count - i));
+ memmove(&list->items[i + 1], &list->items[i], sizeof(void*) * (list->count - i));
}
list->items[index] = item;
@@ -122,7 +122,8 @@ list_remove_item_at(struct list *list, uint32_t index)
if (!list->items || list->count <= i)
return false;
- memmove(&list->items[i], &list->items[i], sizeof(void*) * (list->count - i));
+ memmove(&list->items[i], &list->items[i + 1], sizeof(void*) * (list->count - i));
+ list->count--;
return true;
}