summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--amount.cc24
1 files changed, 14 insertions, 10 deletions
diff --git a/amount.cc b/amount.cc
index 1f8aa6d1..9de94b9b 100644
--- a/amount.cc
+++ b/amount.cc
@@ -509,7 +509,7 @@ amount_t::operator bool() const
} else {
mpz_set(temp, MPZ(quantity));
if (commodity_)
- mpz_ui_pow_ui(divisor, 10, quantity->prec - commodity_->precision);
+ mpz_ui_pow_ui(divisor, 10, quantity->prec - commodity().precision);
else
mpz_ui_pow_ui(divisor, 10, quantity->prec);
mpz_tdiv_q(temp, temp, divisor);
@@ -685,8 +685,8 @@ std::ostream& operator<<(std::ostream& _out, const amount_t& amt)
if (amt.commodity().larger) {
amount_t last(amt);
while (last.commodity().larger) {
- last /= *last.commodity_->larger;
- last.commodity_ = last.commodity_->larger->commodity_;
+ last /= *last.commodity().larger;
+ last.commodity_ = last.commodity().larger->commodity_;
if (ledger::abs(last) < 1)
break;
base = last;
@@ -945,7 +945,7 @@ void amount_t::parse(std::istream& in, unsigned short flags)
quantity->prec = quant.length() - last_comma - 1;
}
else if (last_period != std::string::npos &&
- ! (commodity_->flags & COMMODITY_STYLE_EUROPEAN)) {
+ ! (commodity().flags & COMMODITY_STYLE_EUROPEAN)) {
quantity->prec = quant.length() - last_period - 1;
}
else {
@@ -955,9 +955,9 @@ void amount_t::parse(std::istream& in, unsigned short flags)
// Set the commodity's flags and precision accordingly
if (newly_created || ! (flags & AMOUNT_PARSE_NO_MIGRATE)) {
- commodity_->flags |= comm_flags;
- if (quantity->prec > commodity_->precision)
- commodity_->precision = quantity->prec;
+ commodity().flags |= comm_flags;
+ if (quantity->prec > commodity().precision)
+ commodity().precision = quantity->prec;
}
// Now we have the final number. Remove commas and periods, if
@@ -991,9 +991,9 @@ void amount_t::parse(std::istream& in, unsigned short flags)
void amount_t::reduce()
{
- while (commodity_ && commodity_->smaller) {
- *this *= *commodity_->smaller;
- commodity_ = commodity_->smaller->commodity_;
+ while (commodity_ && commodity().smaller) {
+ *this *= *commodity().smaller;
+ commodity_ = commodity().smaller->commodity_;
}
}
@@ -1137,8 +1137,12 @@ void amount_t::write_quantity(std::ostream& out) const
bool amount_t::valid() const
{
if (quantity) {
+#if 0
+ // jww (2006-02-24): It's OK for commodity_ to be null here, it
+ // just means to use the null_commodity
if (! commodity_)
return false;
+#endif
if (quantity->ref == 0)
return false;