* 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:
Eelco Dolstra 2011-10-27 19:06:23 +00:00
parent 00b41e46ed
commit a12095d3be

View file

@ -171,7 +171,7 @@ EvalState::EvalState()
#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";
} }