From 42bc395b63260e13f42e4bf348823799e78e445f Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 4 Mar 2016 16:49:56 +0100 Subject: Eliminate some large string copying --- src/libstore/local-store.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/libstore/local-store.cc') diff --git a/src/libstore/local-store.cc b/src/libstore/local-store.cc index 9a570668128e..8a2b7bb9164e 100644 --- a/src/libstore/local-store.cc +++ b/src/libstore/local-store.cc @@ -1415,9 +1415,9 @@ Path LocalStore::addToStore(const string & name, const Path & _srcPath, if (recursive) dumpPath(srcPath, sink, filter); else - sink.s = readFile(srcPath); + sink.s = make_ref(readFile(srcPath)); - return addToStoreFromDump(sink.s, name, recursive, hashAlgo, repair); + return addToStoreFromDump(*sink.s, name, recursive, hashAlgo, repair); } @@ -1442,14 +1442,14 @@ Path LocalStore::addTextToStore(const string & name, const string & s, StringSink sink; dumpString(s, sink); - auto hash = hashString(htSHA256, sink.s); + auto hash = hashString(htSHA256, *sink.s); optimisePath(dstPath); ValidPathInfo info; info.path = dstPath; info.narHash = hash; - info.narSize = sink.s.size(); + info.narSize = sink.s->size(); info.references = references; registerValidPath(info); } -- cgit 1.4.1