From c6bbee48816f197a7d99bb61908a6d0601775a9c Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Tue, 30 Nov 2010 01:48:19 -0500 Subject: Don't use alloca() in dmnsn_add_map_entry(). It's bad for portability, and not even in a hot code path. --- libdimension/map.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'libdimension/map.c') diff --git a/libdimension/map.c b/libdimension/map.c index ba1adb6..2fd0c13 100644 --- a/libdimension/map.c +++ b/libdimension/map.c @@ -24,7 +24,6 @@ */ #include "dimension.h" -#include /** An [index, object] pair. */ typedef struct dmnsn_map_entry { @@ -61,7 +60,8 @@ dmnsn_delete_map(dmnsn_map *map) void dmnsn_add_map_entry(dmnsn_map *map, double n, const void *obj) { - dmnsn_map_entry *entry = alloca(sizeof(dmnsn_map_entry) + map->obj_size); + dmnsn_map_entry *entry + = dmnsn_malloc(sizeof(dmnsn_map_entry) + map->obj_size); entry->n = n; memcpy(entry->object, obj, map->obj_size); @@ -74,6 +74,7 @@ dmnsn_add_map_entry(dmnsn_map *map, double n, const void *obj) } dmnsn_array_insert(map->array, i + 1, entry); + dmnsn_free(entry); } size_t -- cgit v1.2.3