aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2023-04-25 17:36:53 +0200
committerGitHub <noreply@github.com>2023-04-25 17:36:53 +0200
commit946fd29422361e8478425d6aaf9ccae23d7ddffb (patch)
tree0cda0ba20b1a1460e46c9dff2bc244bf48a7e009
parent249ce283320fc277ed2499df33df476508fb3b1b (diff)
parent87f676b3a0dcc990c795abd93411f5b179373e60 (diff)
Merge pull request #8260 from edolstra/lazy-trees-cherrypicks
lazy-trees cherrypicks
-rw-r--r--src/libexpr/eval-cache.cc3
-rw-r--r--src/libutil/tarfile.cc4
-rw-r--r--src/libutil/tarfile.hh1
-rw-r--r--src/nix/build.cc6
4 files changed, 9 insertions, 5 deletions
diff --git a/src/libexpr/eval-cache.cc b/src/libexpr/eval-cache.cc
index ac646af8a..9e734e654 100644
--- a/src/libexpr/eval-cache.cc
+++ b/src/libexpr/eval-cache.cc
@@ -625,7 +625,8 @@ string_t AttrCursor::getStringWithContext()
NixStringContext context;
copyContext(v, context);
return {v.string.s, std::move(context)};
- } else if (v.type() == nPath)
+ }
+ else if (v.type() == nPath)
return {v.path().to_string(), {}};
else
root->state.error("'%s' is not a string but %s", getAttrPathStr()).debugThrow<TypeError>();
diff --git a/src/libutil/tarfile.cc b/src/libutil/tarfile.cc
index 238d0a7a6..5060a8f24 100644
--- a/src/libutil/tarfile.cc
+++ b/src/libutil/tarfile.cc
@@ -17,7 +17,7 @@ static ssize_t callback_read(struct archive * archive, void * _self, const void
*buffer = self->buffer.data();
try {
- return self->source->read((char *) self->buffer.data(), 4096);
+ return self->source->read((char *) self->buffer.data(), self->buffer.size());
} catch (EndOfFile &) {
return 0;
} catch (std::exception & err) {
@@ -39,7 +39,7 @@ void TarArchive::check(int err, const std::string & reason)
throw Error(reason, archive_error_string(this->archive));
}
-TarArchive::TarArchive(Source & source, bool raw) : buffer(4096)
+TarArchive::TarArchive(Source & source, bool raw) : buffer(65536)
{
this->archive = archive_read_new();
this->source = &source;
diff --git a/src/libutil/tarfile.hh b/src/libutil/tarfile.hh
index 24afb710a..237d18c31 100644
--- a/src/libutil/tarfile.hh
+++ b/src/libutil/tarfile.hh
@@ -24,6 +24,7 @@ struct TarArchive {
~TarArchive();
};
+
void unpackTarfile(Source & source, const Path & destDir);
void unpackTarfile(const Path & tarFile, const Path & destDir);
diff --git a/src/nix/build.cc b/src/nix/build.cc
index 4e133e288..abf946214 100644
--- a/src/nix/build.cc
+++ b/src/nix/build.cc
@@ -27,8 +27,10 @@ nlohmann::json builtPathsWithResultToJSON(const std::vector<BuiltPathWithResult>
std::visit([&](const auto & t) {
auto j = t.toJSON(store);
if (b.result) {
- j["startTime"] = b.result->startTime;
- j["stopTime"] = b.result->stopTime;
+ if (b.result->startTime)
+ j["startTime"] = b.result->startTime;
+ if (b.result->stopTime)
+ j["stopTime"] = b.result->stopTime;
if (b.result->cpuUser)
j["cpuUser"] = ((double) b.result->cpuUser->count()) / 1000000;
if (b.result->cpuSystem)