diff arena.c @ 1037:5239f09bcceb

Merge
author Michael Pavone <pavone@retrodev.com>
date Sun, 17 Jul 2016 23:05:53 -0700
parents c7c573f0229e
children 4b8ab2d82aee
line wrap: on
line diff
--- a/arena.c	Thu Jun 30 09:42:17 2016 -0700
+++ b/arena.c	Sun Jul 17 23:05:53 2016 -0700
@@ -17,6 +17,8 @@
 	size_t free_storage;
 };
 
+#define DEFAULT_STORAGE_SIZE 8
+
 static arena *current_arena;
 
 arena *get_current_arena()
@@ -45,7 +47,11 @@
 {
 	arena *cur = get_current_arena();
 	if (cur->used_count == cur->used_storage) {
-		cur->used_storage *= 2;
+		if (cur->used_storage) {
+			cur->used_storage *= 2;
+		} else {
+			cur->used_storage = DEFAULT_STORAGE_SIZE;
+		}
 		cur->used_blocks = realloc(cur->used_blocks, cur->used_storage * sizeof(void *));
 	}
 	cur->used_blocks[cur->used_count++] = block;