changeset 555:6c911cbc1fd7

core: alloc_pool is no more
author David Demelier <markand@malikania.fr>
date Tue, 07 Mar 2023 22:35:43 +0100
parents cdbc13ceff85
children 7eebac09fcb7
files libmlk-core/mlk/core/alloc.c libmlk-core/mlk/core/alloc.h libmlk-rpg/mlk/rpg/map-loader-file.c libmlk-rpg/mlk/rpg/map-loader.c tests/test-alloc.c
diffstat 5 files changed, 4 insertions(+), 150 deletions(-) [+]
line wrap: on
line diff
--- a/libmlk-core/mlk/core/alloc.c	Tue Mar 07 22:15:35 2023 +0100
+++ b/libmlk-core/mlk/core/alloc.c	Tue Mar 07 22:35:43 2023 +0100
@@ -270,74 +270,3 @@
 	if (ptr)
 		funcs->free(blockat(ptr));
 }
-
-void
-mlk_alloc_pool_init(struct mlk_alloc_pool *pool,
-                    size_t poolsize,
-                    size_t elemsize,
-                    void (*finalizer)(void *))
-{
-	assert(pool);
-	assert(poolsize > 0 && (poolsize & (poolsize - 1)) == 0);
-	assert(elemsize != 0);
-
-	pool->data = mlk_alloc_new(poolsize, elemsize);
-	pool->elemsize = elemsize;
-	pool->size = 0;
-	pool->capacity = poolsize;
-	pool->finalizer = finalizer;
-}
-
-void *
-mlk_alloc_pool_new(struct mlk_alloc_pool *pool)
-{
-	assert(pool);
-
-	if (pool->size >= pool->capacity) {
-		pool->capacity *= 2;
-		pool->data = mlk_alloc_resize(pool->data, pool->capacity);
-	}
-
-	return ((unsigned char *)pool->data) + pool->size++ * pool->elemsize;
-}
-
-void *
-mlk_alloc_pool_get(const struct mlk_alloc_pool *pool, size_t index)
-{
-	assert(pool);
-	assert(index < pool->size);
-
-	return ((unsigned char *)pool->data) + index * pool->elemsize;
-}
-
-void *
-mlk_alloc_pool_shrink(struct mlk_alloc_pool *pool)
-{
-	assert(pool);
-
-	void *ptr;
-
-	ptr = mlk_alloc_resize(pool->data, pool->size);
-	memset(pool, 0, sizeof (*pool));
-
-	return ptr;
-}
-
-void
-mlk_alloc_pool_finish(struct mlk_alloc_pool *pool)
-{
-	unsigned char *tab;
-
-	if (!pool)
-		return;
-
-	if (pool->finalizer) {
-		tab = pool->data;
-
-		for (size_t i = 0; i < pool->size; ++i)
-			pool->finalizer(tab + i * pool->elemsize);
-	}
-
-	mlk_alloc_free(pool->data);
-	memset(pool, 0, sizeof (*pool));
-}
--- a/libmlk-core/mlk/core/alloc.h	Tue Mar 07 22:15:35 2023 +0100
+++ b/libmlk-core/mlk/core/alloc.h	Tue Mar 07 22:35:43 2023 +0100
@@ -160,14 +160,6 @@
 	void (*free)(void *);
 };
 
-struct mlk_alloc_pool {
-	void *data;
-	size_t elemsize;
-	size_t size;
-	size_t capacity;
-	void (*finalizer)(void *);
-};
-
 #if defined(__cplusplus)
 extern "C" {
 #endif
@@ -311,22 +303,6 @@
 void
 mlk_alloc_free(void *ptr);
 
-/* alloc_pool functions. */
-void
-mlk_alloc_pool_init(struct mlk_alloc_pool *, size_t, size_t , void (*)(void *));
-
-void *
-mlk_alloc_pool_new(struct mlk_alloc_pool *);
-
-void *
-mlk_alloc_pool_get(const struct mlk_alloc_pool *, size_t);
-
-void *
-mlk_alloc_pool_shrink(struct mlk_alloc_pool *);
-
-void
-mlk_alloc_pool_finish(struct mlk_alloc_pool *);
-
 #if defined(__cplusplus)
 }
 #endif
--- a/libmlk-rpg/mlk/rpg/map-loader-file.c	Tue Mar 07 22:15:35 2023 +0100
+++ b/libmlk-rpg/mlk/rpg/map-loader-file.c	Tue Mar 07 22:35:43 2023 +0100
@@ -58,9 +58,12 @@
 
 static struct mlk_map_block *
 expand_blocks(struct mlk_map_loader *self,
+              struct mlk_map *map,
               struct mlk_map_block *blocks,
               size_t blocksz)
 {
+	(void)map;
+
 	struct mlk_map_loader_file *file = self->data;
 	struct mlk_map_block *ptr;
 
--- a/libmlk-rpg/mlk/rpg/map-loader.c	Tue Mar 07 22:15:35 2023 +0100
+++ b/libmlk-rpg/mlk/rpg/map-loader.c	Tue Mar 07 22:35:43 2023 +0100
@@ -96,7 +96,7 @@
 		 * directive has one.
 		 */
 		if (isblock) {
-			if (!(array = loader->expand_blocks(loader, blocks, blocksz + 1)))
+			if (!(array = loader->expand_blocks(loader, map, blocks, blocksz + 1)))
 				return -1;
 
 			blocks = array;
--- a/tests/test-alloc.c	Tue Mar 07 22:15:35 2023 +0100
+++ b/tests/test-alloc.c	Tue Mar 07 22:35:43 2023 +0100
@@ -137,59 +137,6 @@
 }
 
 static void
-test_basics_pool_simple(void)
-{
-	struct mlk_alloc_pool pool;
-	struct point *p, *data;
-	size_t total = 0;
-
-	mlk_alloc_pool_init(&pool, 16, sizeof (*p), NULL);
-
-	DT_EQ_UINT(pool.elemsize, sizeof (*p));
-	DT_EQ_UINT(pool.size, 0);
-	DT_EQ_UINT(pool.capacity, 16);
-
-	/* Create until we reach the capacity. */
-	for (size_t i = 0; i < pool.capacity; ++i) {
-		p = mlk_alloc_pool_new(&pool);
-		p->x = (int)i + 1;
-		p->y = (int)i + 1;
-		total++;
-	}
-
-	DT_EQ_UINT(pool.size, pool.capacity);
-
-	/* Verify values are correct. */
-	for (size_t i = 0; i < pool.size; ++i) {
-		p = ((struct point *)pool.data) + i;
-
-		DT_EQ_INT(p->x, (int)i + 1);
-		DT_EQ_INT(p->y, (int)i + 1);
-	}
-
-	/* Now it should reallocate. */
-	p = mlk_alloc_pool_new(&pool);
-	p->x = 9999;
-	p->y = 9999;
-
-	DT_ASSERT(pool.capacity > pool.size);
-
-	/* Shrink it! */
-	data = mlk_alloc_pool_shrink(&pool);
-
-	/* Verify values are correct again. */
-	for (size_t i = 0; i < total; ++i) {
-		DT_EQ_INT(data[i].x, (int)i + 1);
-		DT_EQ_INT(data[i].y, (int)i + 1);
-	}
-
-	DT_EQ_PTR(pool.data, NULL);
-	DT_EQ_UINT(pool.size, 0U);
-	DT_EQ_UINT(pool.capacity, 0U);
-	DT_EQ_UINT(pool.elemsize, 0U);
-}
-
-static void
 test_basics_sdupf(void)
 {
 	char *str = mlk_alloc_sdupf("Hello %s", "David");
@@ -215,7 +162,6 @@
 {
 	DT_RUN(test_basics_resize0);
 	DT_RUN(test_basics_expand0);
-	DT_RUN(test_basics_pool_simple);
 	DT_RUN(test_basics_sdupf);
 	DT_RUN(test_custom_count);
 	DT_SUMMARY();