diff options
Diffstat (limited to '')
-rw-r--r-- | src/keeper.cpp | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/src/keeper.cpp b/src/keeper.cpp index 19f6ae1..88bd4ff 100644 --- a/src/keeper.cpp +++ b/src/keeper.cpp | |||
@@ -614,11 +614,8 @@ void close_keepers(Universe* U) | |||
614 | MUTEX_FREE(&U->keepers->keeper_array[i].keeper_cs); | 614 | MUTEX_FREE(&U->keepers->keeper_array[i].keeper_cs); |
615 | } | 615 | } |
616 | // free the keeper bookkeeping structure | 616 | // free the keeper bookkeeping structure |
617 | { | 617 | U->internal_allocator.free(U->keepers, sizeof(Keepers) + (nbKeepers - 1) * sizeof(Keeper)); |
618 | AllocatorDefinition* const allocD = &U->internal_allocator; | 618 | U->keepers = nullptr; |
619 | std::ignore = allocD->allocF(allocD->allocUD, U->keepers, sizeof(Keepers) + (nbKeepers - 1) * sizeof(Keeper), 0); | ||
620 | U->keepers = nullptr; | ||
621 | } | ||
622 | } | 619 | } |
623 | } | 620 | } |
624 | 621 | ||
@@ -649,10 +646,7 @@ void init_keepers(Universe* U, lua_State* L) | |||
649 | // Keepers contains an array of 1 Keeper, adjust for the actual number of keeper states | 646 | // Keepers contains an array of 1 Keeper, adjust for the actual number of keeper states |
650 | { | 647 | { |
651 | size_t const bytes = sizeof(Keepers) + (nb_keepers - 1) * sizeof(Keeper); | 648 | size_t const bytes = sizeof(Keepers) + (nb_keepers - 1) * sizeof(Keeper); |
652 | { | 649 | U->keepers = static_cast<Keepers*>(U->internal_allocator.alloc(bytes)); |
653 | AllocatorDefinition* const allocD = &U->internal_allocator; | ||
654 | U->keepers = (Keepers*) allocD->allocF(allocD->allocUD, nullptr, 0, bytes); | ||
655 | } | ||
656 | if (U->keepers == nullptr) | 650 | if (U->keepers == nullptr) |
657 | { | 651 | { |
658 | (void) luaL_error(L, "init_keepers() failed while creating keeper array; out of memory"); | 652 | (void) luaL_error(L, "init_keepers() failed while creating keeper array; out of memory"); |