forked from lix-project/lix
* In printValueAsXML, handle the case where a "type" attribute is not
a string. This happens in the NixOS option system. * Remove a bogus comparison of a unsigned integer with -1.
This commit is contained in:
parent
00b41e46ed
commit
a12095d3be
|
@ -170,8 +170,8 @@ EvalState::EvalState()
|
||||||
size_t size = 32 * 1024 * 1024;
|
size_t size = 32 * 1024 * 1024;
|
||||||
#if HAVE_SYSCONF && defined(_SC_PAGESIZE) && defined(_SC_PHYS_PAGES)
|
#if HAVE_SYSCONF && defined(_SC_PAGESIZE) && defined(_SC_PHYS_PAGES)
|
||||||
long pageSize = sysconf(_SC_PAGESIZE);
|
long pageSize = sysconf(_SC_PAGESIZE);
|
||||||
long pages = sysconf (_SC_PHYS_PAGES);
|
long pages = sysconf(_SC_PHYS_PAGES);
|
||||||
if (pageSize != -1 && size != -1)
|
if (pageSize != -1)
|
||||||
size = (pageSize * pages) / 4; // 25% of RAM
|
size = (pageSize * pages) / 4; // 25% of RAM
|
||||||
if (size > maxSize) size = maxSize;
|
if (size > maxSize) size = maxSize;
|
||||||
#endif
|
#endif
|
||||||
|
@ -1108,7 +1108,10 @@ bool EvalState::isDerivation(Value & v)
|
||||||
{
|
{
|
||||||
if (v.type != tAttrs) return false;
|
if (v.type != tAttrs) return false;
|
||||||
Bindings::iterator i = v.attrs->find(sType);
|
Bindings::iterator i = v.attrs->find(sType);
|
||||||
return i != v.attrs->end() && forceStringNoCtx(*i->value) == "derivation";
|
if (i == v.attrs->end()) return false;
|
||||||
|
forceValue(*i->value);
|
||||||
|
if (i->value->type != tString) return false;
|
||||||
|
return forceStringNoCtx(*i->value) == "derivation";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue