diff options
author | John Wiegley <johnw@newartisans.com> | 2004-08-26 14:31:50 -0400 |
---|---|---|
committer | John Wiegley <johnw@newartisans.com> | 2004-08-26 14:31:50 -0400 |
commit | 942943323ea1cef85b08935c98fb84b378519d3e (patch) | |
tree | 2b22049e784a1eb3a1ac78a6ac408af9b4f66992 | |
parent | 5f30c790dbc4a3ff469eb350e98817edd38d5de8 (diff) | |
download | fork-ledger-942943323ea1cef85b08935c98fb84b378519d3e.tar.gz fork-ledger-942943323ea1cef85b08935c98fb84b378519d3e.tar.bz2 fork-ledger-942943323ea1cef85b08935c98fb84b378519d3e.zip |
don't placement new() amount_t in binary.cc when it isn't necessary
-rw-r--r-- | amount.cc | 10 | ||||
-rw-r--r-- | binary.cc | 1 |
2 files changed, 4 insertions, 7 deletions
@@ -906,15 +906,13 @@ void amount_t::write_quantity(std::ostream& out) const void amount_t::read_quantity(std::istream& in) { - assert(! quantity); - char byte; in.read(&byte, sizeof(byte)); - if (byte == 0) - return; - - if (byte == 1) { + if (byte == 0) { + quantity = NULL; + } + else if (byte == 1) { quantity = new(bigints_next++) bigint_t; quantity->flags |= BIGINT_BULK_ALLOC; @@ -128,7 +128,6 @@ inline void read_binary_transaction(std::istream& in, transaction_t * xact, xact->account = accounts[read_binary_number<account_t::ident_t>(in) - 1]; xact->account->add_transaction(xact); - new ((amount_t *) &xact->amount) amount_t; read_binary_amount(in, xact->amount); if (read_binary_number<char>(in) == 1) { |