about summary refs log tree commit diff
path: root/src/libstore
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2017-03-06T18·03-0500
committerShea Levy <shea@shealevy.com>2017-03-06T18·03-0500
commit4fc30922cf00d79bd603ac46255fa73a3c2ee565 (patch)
tree3d485f060c3986e2074edb12b784d265e13458a7 /src/libstore
parent1cf480110879ffc8aee94b4b75999da405b71d7c (diff)
istringstream_nocopy: Implement in a standards-compliant way.
Fixes the problem mentioned in e6a61b8da788efbbbb0eb690c49434b6b5fc9741

See #1135
Diffstat (limited to 'src/libstore')
-rw-r--r--src/libstore/derivations.cc2
-rw-r--r--src/libstore/s3-binary-cache-store.cc13
2 files changed, 1 insertions, 14 deletions
diff --git a/src/libstore/derivations.cc b/src/libstore/derivations.cc
index ce1ac7d33229..38a87240c3ce 100644
--- a/src/libstore/derivations.cc
+++ b/src/libstore/derivations.cc
@@ -152,7 +152,7 @@ static StringSet parseStrings(std::istream & str, bool arePaths)
 static Derivation parseDerivation(const string & s)
 {
     Derivation drv;
-    std::istringstream str(s);
+    istringstream_nocopy str(s);
     expect(str, "Derive([");
 
     /* Parse the list of outputs. */
diff --git a/src/libstore/s3-binary-cache-store.cc b/src/libstore/s3-binary-cache-store.cc
index 041c68c6816f..1121b4d4cd06 100644
--- a/src/libstore/s3-binary-cache-store.cc
+++ b/src/libstore/s3-binary-cache-store.cc
@@ -117,17 +117,6 @@ S3Helper::DownloadResult S3Helper::getObject(
     return res;
 }
 
-#if __linux__
-
-struct istringstream_nocopy : public std::stringstream
-{
-    istringstream_nocopy(const std::string & s)
-    {
-        rdbuf()->pubsetbuf(
-            (char *) s.data(), s.size());
-    }
-};
-
 struct S3BinaryCacheStoreImpl : public S3BinaryCacheStore
 {
     std::string bucketName;
@@ -313,8 +302,6 @@ static RegisterStoreImplementation regStore([](
     return store;
 });
 
-#endif
-
 }
 
 #endif