summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--balance.h6
-rw-r--r--valexpr.cc2
2 files changed, 8 insertions, 0 deletions
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;