aboutsummaryrefslogtreecommitdiff
path: root/src/mem/ideal_alloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/ideal_alloc.c')
-rw-r--r--src/mem/ideal_alloc.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/mem/ideal_alloc.c b/src/mem/ideal_alloc.c
index 8840a17..094758b 100644
--- a/src/mem/ideal_alloc.c
+++ b/src/mem/ideal_alloc.c
@@ -187,14 +187,12 @@ struct component *create_ideal_alloc(uint64_t max_spaces)
{
struct alloc *a = calloc(1, sizeof(struct alloc));
a->spaces = spaces_create(max_spaces);
- if (spaces_uninit(&a->spaces)) {
- free(a);
- return NULL;
- }
-
for (size_t i = 0; i < max_spaces; ++i) {
struct space space = create_space();
- spaces_append(&a->spaces, space);
+ if (!spaces_append(&a->spaces, space)) {
+ spaces_destroy(&a->spaces);
+ return NULL;
+ }
}
a->max_spaces = max_spaces;