about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nix-daemon/nix-daemon.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/nix-daemon/nix-daemon.cc b/src/nix-daemon/nix-daemon.cc
index 63b5eb87d9d2..0feafb01385b 100644
--- a/src/nix-daemon/nix-daemon.cc
+++ b/src/nix-daemon/nix-daemon.cc
@@ -477,11 +477,13 @@ static void performOp(TunnelLogger * logger, ref<Store> store,
         logger->startWork();
         Roots roots = store->findRoots();
         logger->stopWork();
+
+        // Pre-compute roots length using same algo as below.
         size_t total_length = 0;
         bool hasMemoryLink;
-        for (auto & [target, links] : roots) {
+        for (auto & root : roots) {
             hasMemoryLink = false;
-            for (auto & link : links) {
+            for (auto & link : root.second) {
                 if (link.rfind("{memory:", 0) == 0) {
                     if (hasMemoryLink) continue;
                     ++total_length;
@@ -491,6 +493,7 @@ static void performOp(TunnelLogger * logger, ref<Store> store,
                 }
             }
         }
+
         to << total_length;
         int n = 0;
         for (auto & [target, links] : roots) {