Corrects to code that compares balances to zero

This commit is contained in:
John Wiegley 2009-02-23 14:46:30 -04:00
parent 4ab50df564
commit f96daf5fde

View file

@ -788,19 +788,19 @@ bool value_t::is_less_than(const value_t& val) const
case BALANCE: case BALANCE:
switch (val.type()) { switch (val.type()) {
case INTEGER: case INTEGER:
if (val.as_long() != 0) case AMOUNT: {
break;
// fall through...
case AMOUNT:
if (val.is_nonzero()) if (val.is_nonzero())
break; break;
bool no_amounts = true;
foreach (const balance_t::amounts_map::value_type& pair, foreach (const balance_t::amounts_map::value_type& pair,
as_balance().amounts) { as_balance().amounts) {
if (pair.second > 0L) if (pair.second >= 0L)
return false; return false;
no_amounts = false;
}
return ! no_amounts;
} }
return true;
default: default:
break; break;
} }
@ -858,19 +858,19 @@ bool value_t::is_greater_than(const value_t& val) const
case BALANCE: case BALANCE:
switch (val.type()) { switch (val.type()) {
case INTEGER: case INTEGER:
if (val.as_long() != 0) case AMOUNT: {
break;
// fall through...
case AMOUNT:
if (val.is_nonzero()) if (val.is_nonzero())
break; break;
bool no_amounts = true;
foreach (const balance_t::amounts_map::value_type& pair, foreach (const balance_t::amounts_map::value_type& pair,
as_balance().amounts) { as_balance().amounts) {
if (pair.second < 0L) if (pair.second <= 0L)
return false; return false;
no_amounts = false;
}
return ! no_amounts;
} }
return true;
default: default:
break; break;
} }