about summary refs log tree commit diff
path: root/src/libutil
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2016-05-04T11·36+0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2016-05-04T14·15+0200
commit538a64e8c314f23ba0c5d76201f1c20e71884a21 (patch)
tree34bdfda7346d53014619cbfa33bf1398bad4b5e2 /src/libutil
parentb6c768fb6a341bf1c5fe4a2d2a929415e8519b25 (diff)
Add a Store::addToStore() variant that accepts a NAR
As a side effect, this ensures that signatures are propagated when
copying paths between stores.

Also refactored import/export to make use of this.
Diffstat (limited to 'src/libutil')
-rw-r--r--src/libutil/compression.cc16
-rw-r--r--src/libutil/compression.hh4
2 files changed, 10 insertions, 10 deletions
diff --git a/src/libutil/compression.cc b/src/libutil/compression.cc
index ec63855f6c..cd2cc9cc10 100644
--- a/src/libutil/compression.cc
+++ b/src/libutil/compression.cc
@@ -173,26 +173,26 @@ static ref<std::string> decompressBzip2(const std::string & in)
     }
 }
 
-ref<std::string> compress(const std::string & method, ref<std::string> in)
+ref<std::string> compress(const std::string & method, const std::string & in)
 {
     if (method == "none")
-        return in;
+        return make_ref<std::string>(in);
     else if (method == "xz")
-        return compressXZ(*in);
+        return compressXZ(in);
     else if (method == "bzip2")
-        return compressBzip2(*in);
+        return compressBzip2(in);
     else
         throw UnknownCompressionMethod(format("unknown compression method ‘%s’") % method);
 }
 
-ref<std::string> decompress(const std::string & method, ref<std::string> in)
+ref<std::string> decompress(const std::string & method, const std::string & in)
 {
     if (method == "none")
-        return in;
+        return make_ref<std::string>(in);
     else if (method == "xz")
-        return decompressXZ(*in);
+        return decompressXZ(in);
     else if (method == "bzip2")
-        return decompressBzip2(*in);
+        return decompressBzip2(in);
     else
         throw UnknownCompressionMethod(format("unknown compression method ‘%s’") % method);
 }
diff --git a/src/libutil/compression.hh b/src/libutil/compression.hh
index 33c465df84..ed3c463865 100644
--- a/src/libutil/compression.hh
+++ b/src/libutil/compression.hh
@@ -7,9 +7,9 @@
 
 namespace nix {
 
-ref<std::string> compress(const std::string & method, ref<std::string> in);
+ref<std::string> compress(const std::string & method, const std::string & in);
 
-ref<std::string> decompress(const std::string & method, ref<std::string> in);
+ref<std::string> decompress(const std::string & method, const std::string & in);
 
 MakeError(UnknownCompressionMethod, Error);