forked from lix-project/lix
Merge pull request #8260 from edolstra/lazy-trees-cherrypicks
lazy-trees cherrypicks
This commit is contained in:
commit
946fd29422
|
@ -625,7 +625,8 @@ string_t AttrCursor::getStringWithContext()
|
||||||
NixStringContext context;
|
NixStringContext context;
|
||||||
copyContext(v, context);
|
copyContext(v, context);
|
||||||
return {v.string.s, std::move(context)};
|
return {v.string.s, std::move(context)};
|
||||||
} else if (v.type() == nPath)
|
}
|
||||||
|
else if (v.type() == nPath)
|
||||||
return {v.path().to_string(), {}};
|
return {v.path().to_string(), {}};
|
||||||
else
|
else
|
||||||
root->state.error("'%s' is not a string but %s", getAttrPathStr()).debugThrow<TypeError>();
|
root->state.error("'%s' is not a string but %s", getAttrPathStr()).debugThrow<TypeError>();
|
||||||
|
|
|
@ -17,7 +17,7 @@ static ssize_t callback_read(struct archive * archive, void * _self, const void
|
||||||
*buffer = self->buffer.data();
|
*buffer = self->buffer.data();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
return self->source->read((char *) self->buffer.data(), 4096);
|
return self->source->read((char *) self->buffer.data(), self->buffer.size());
|
||||||
} catch (EndOfFile &) {
|
} catch (EndOfFile &) {
|
||||||
return 0;
|
return 0;
|
||||||
} catch (std::exception & err) {
|
} 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));
|
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->archive = archive_read_new();
|
||||||
this->source = &source;
|
this->source = &source;
|
||||||
|
|
|
@ -24,6 +24,7 @@ struct TarArchive {
|
||||||
|
|
||||||
~TarArchive();
|
~TarArchive();
|
||||||
};
|
};
|
||||||
|
|
||||||
void unpackTarfile(Source & source, const Path & destDir);
|
void unpackTarfile(Source & source, const Path & destDir);
|
||||||
|
|
||||||
void unpackTarfile(const Path & tarFile, const Path & destDir);
|
void unpackTarfile(const Path & tarFile, const Path & destDir);
|
||||||
|
|
|
@ -27,8 +27,10 @@ nlohmann::json builtPathsWithResultToJSON(const std::vector<BuiltPathWithResult>
|
||||||
std::visit([&](const auto & t) {
|
std::visit([&](const auto & t) {
|
||||||
auto j = t.toJSON(store);
|
auto j = t.toJSON(store);
|
||||||
if (b.result) {
|
if (b.result) {
|
||||||
j["startTime"] = b.result->startTime;
|
if (b.result->startTime)
|
||||||
j["stopTime"] = b.result->stopTime;
|
j["startTime"] = b.result->startTime;
|
||||||
|
if (b.result->stopTime)
|
||||||
|
j["stopTime"] = b.result->stopTime;
|
||||||
if (b.result->cpuUser)
|
if (b.result->cpuUser)
|
||||||
j["cpuUser"] = ((double) b.result->cpuUser->count()) / 1000000;
|
j["cpuUser"] = ((double) b.result->cpuUser->count()) / 1000000;
|
||||||
if (b.result->cpuSystem)
|
if (b.result->cpuSystem)
|
||||||
|
|
Loading…
Reference in a new issue