diff --git a/lix/libstore/remote-store.cc b/lix/libstore/remote-store.cc index d9c37af61..dede49f79 100644 --- a/lix/libstore/remote-store.cc +++ b/lix/libstore/remote-store.cc @@ -583,11 +583,11 @@ try { auto conn(TRY_AWAIT(getConnection())); conn->to << WorkerProto::Op::FindRoots; conn.processStderr(); - size_t count = readNum(conn->from); + + auto roots = + WorkerProto::Serialise>>::read(*conn); Roots result; - while (count--) { - Path link = readString(conn->from); - auto target = parseStorePath(readString(conn->from)); + for (auto & [link, target] : roots) { result[std::move(target)].emplace(link); } co_return result;