diff options
Diffstat (limited to 'src/mem/ideal_alloc.c')
| -rw-r--r-- | src/mem/ideal_alloc.c | 10 |
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; |
