From ac2fc7ba1fe6b64ec535e4ce63d13fcadf7fdba7 Mon Sep 17 00:00:00 2001
From: John Ericson <John.Ericson@Obsidian.Systems>
Date: Mon, 20 Jul 2020 11:29:46 -0400
Subject: [PATCH] Apply suggestions from code review

Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
---
 src/libstore/store-api.cc | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/libstore/store-api.cc b/src/libstore/store-api.cc
index 5c8dddba5..6c0a61766 100644
--- a/src/libstore/store-api.cc
+++ b/src/libstore/store-api.cc
@@ -234,7 +234,7 @@ ValidPathInfo Store::addToStoreSlow(std::string_view name, const Path & srcPath,
 
     TeeSink sinkIfNar { narHashSink, caHashSink };
 
-    /* We use the tee sink if we need to hash he nar twice */
+    /* We use the tee sink if we need to hash the nar twice */
     auto & sink = method == FileIngestionMethod::Recursive && hashAlgo != htSHA256
         ? static_cast<Sink &>(sinkIfNar)
         : narHashSink;
@@ -250,7 +250,11 @@ ValidPathInfo Store::addToStoreSlow(std::string_view name, const Path & srcPath,
         ? fileSink
         : blank;
 
-    parseDump(parseSink, tapped);
+    parseDump(
+        parseSink,
+        method == FileIngestionMethod::Recursive && hashAlgo == htSHA256
+            ? *fileSource // don't need to hash twice if we just can use the `narHash` twice
+            : tapped);
 
     auto [narHash, narSize] = narHashSink.finish();
 
-- 
GitLab