From 2dc822291f3ecef34eb0ef2920c395b0e056fbda Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Mon, 9 Aug 2004 16:30:00 -0400 Subject: fixed < bug --- balance.h | 6 ++++++ valexpr.cc | 2 ++ 2 files changed, 8 insertions(+) diff --git a/balance.h b/balance.h index a41bcf6f..7fd3a770 100644 --- a/balance.h +++ b/balance.h @@ -217,6 +217,9 @@ class balance_t if (! ((*i).second < bal.amount((*i).first))) return false; + if (bal.amounts.size() == 0 && amounts.size() == 0) + return false; + return true; } bool operator<=(const balance_t& bal) const { @@ -254,6 +257,9 @@ class balance_t if (! ((*i).second > bal.amount((*i).first))) return false; + if (bal.amounts.size() == 0 && amounts.size() == 0) + return false; + return true; } bool operator>=(const balance_t& bal) const { diff --git a/valexpr.cc b/valexpr.cc index 2889c602..6a3ccde7 100644 --- a/valexpr.cc +++ b/valexpr.cc @@ -269,6 +269,7 @@ void node_t::compute(balance_t& result, const details_t& details) const assert(right); left->compute(result, details); balance_t temp = result; + result = 0; right->compute(result, details); switch (type) { case O_EQ: result = temp == result; break; @@ -289,6 +290,7 @@ void node_t::compute(balance_t& result, const details_t& details) const assert(right); right->compute(result, details); balance_t temp = result; + result = 0; left->compute(result, details); switch (type) { case O_ADD: result += temp; break; -- cgit v1.2.3