diff options
author | Shea Levy <shea@shealevy.com> | 2017-03-06T18·03-0500 |
---|---|---|
committer | Shea Levy <shea@shealevy.com> | 2017-03-06T18·03-0500 |
commit | 4fc30922cf00d79bd603ac46255fa73a3c2ee565 (patch) | |
tree | 3d485f060c3986e2074edb12b784d265e13458a7 /src/libstore | |
parent | 1cf480110879ffc8aee94b4b75999da405b71d7c (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.cc | 2 | ||||
-rw-r--r-- | src/libstore/s3-binary-cache-store.cc | 13 |
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 |