aboutsummaryrefslogtreecommitdiff
path: root/src/keeper.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/keeper.cpp12
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");