refactor(3p/tvix): convert NixList usage to shared_ptr
Starting to reclaim memory. Fairly simple mechanical replacement. Change-Id: I6b4c5c5596729470d1a049eba61e69e8097decf4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1971 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
This commit is contained in:
parent
381ce8a666
commit
2c19bd6662
4 changed files with 12 additions and 12 deletions
12
third_party/nix/src/libexpr/eval.cc
vendored
12
third_party/nix/src/libexpr/eval.cc
vendored
|
|
@ -598,15 +598,15 @@ Env& EvalState::allocEnv(size_t size) {
|
|||
return *env;
|
||||
}
|
||||
|
||||
void EvalState::mkList(Value& v, NixList* list) {
|
||||
void EvalState::mkList(Value& v, std::shared_ptr<NixList> list) {
|
||||
nrListElems += list->size();
|
||||
clearValue(v);
|
||||
v.type = tList;
|
||||
v.list = list;
|
||||
nrListElems += list->size();
|
||||
}
|
||||
|
||||
void EvalState::mkList(Value& v, size_t size) {
|
||||
EvalState::mkList(v, new NixList(size));
|
||||
EvalState::mkList(v, std::make_shared<NixList>(size));
|
||||
}
|
||||
|
||||
unsigned long nrThunks = 0;
|
||||
|
|
@ -1224,7 +1224,7 @@ void ExprOpConcatLists::eval(EvalState& state, Env& env, Value& v) {
|
|||
void EvalState::concatLists(Value& v, const NixList& lists, const Pos& pos) {
|
||||
nrListConcats++;
|
||||
|
||||
auto outlist = new NixList();
|
||||
auto outlist = std::make_shared<NixList>();
|
||||
|
||||
for (Value* list : lists) {
|
||||
forceList(*list, pos);
|
||||
|
|
@ -1816,8 +1816,8 @@ size_t valueSize(const Value& v) {
|
|||
}
|
||||
break;
|
||||
case tList:
|
||||
if (seenLists.find(v.list) == seenLists.end()) {
|
||||
seenLists.insert(v.list);
|
||||
if (seenLists.find(v.list.get()) == seenLists.end()) {
|
||||
seenLists.insert(v.list.get());
|
||||
sz += v.listSize() * sizeof(Value*);
|
||||
for (const Value* v : *v.list) {
|
||||
sz += doValue(*v);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue