Merge pull request #5763 from yorickvP/evalstate-root

EvalCommand::getEvalState: use gc tracable allocator for EvalState (fix segfault)
This commit is contained in:
Eelco Dolstra 2021-12-13 13:37:17 +01:00 committed by GitHub
commit ec33014e23
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -73,8 +73,13 @@ ref<Store> EvalCommand::getEvalStore()
ref<EvalState> EvalCommand::getEvalState()
{
if (!evalState)
evalState = std::make_shared<EvalState>(searchPath, getEvalStore(), getStore());
if (!evalState) evalState =
#if HAVE_BOEHMGC
std::allocate_shared<EvalState>(traceable_allocator<EvalState>(),
#else
std::make_shared<EvalState>(
#endif
searchPath, getEvalStore(), getStore());
return ref<EvalState>(evalState);
}