aboutsummaryrefslogtreecommitdiff
path: root/src/libstore
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2017-03-06 13:03:02 -0500
committerShea Levy <shea@shealevy.com>2017-03-06 13:03:02 -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 ce1ac7d33..38a87240c 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 041c68c68..1121b4d4c 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