}
else if (likely(value.size() == 32))
{
- if (likely(value.find_first_not_of("0123456789abcdefABCDEF") == string::npos))
- return MD5SumValue(value);
+ MD5SumValue sumvalue;
+ if (sumvalue.Set(value))
+ return sumvalue;
+
_error->Error("Malformed Description-md5 line; includes invalid character '%s'", value.c_str());
return MD5SumValue();
}
// Skip whitespace
for (;I != Stop && isspace_ascii(*I) != 0; I++);
- if (ParseArchFlags == true)
+ if (unlikely(ParseArchFlags == true))
{
string const arch = _config->Find("APT::Architecture");
APT::CacheFilter::PackageArchitectureMatchesSpecification matchesArch(arch, false);
for (;I != Stop && isspace_ascii(*I) != 0; I++);
}
- if (ParseRestrictionsList == true)
+ if (unlikely(ParseRestrictionsList == true))
{
// Parse a restrictions formula which is in disjunctive normal form:
// (foo AND bar) OR (blub AND bla)