summaryrefslogtreecommitdiff
path: root/src/account.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/account.cc')
-rw-r--r--src/account.cc13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/account.cc b/src/account.cc
index 40ddf70b..d772368c 100644
--- a/src/account.cc
+++ b/src/account.cc
@@ -89,9 +89,13 @@ account_t * account_t::find_account(const string& acct_name,
if (has_flags(ACCOUNT_GENERATED))
account->add_flags(ACCOUNT_GENERATED);
- std::pair<accounts_map::iterator, bool> result
- = accounts.insert(accounts_map::value_type(first, account));
+#if defined(DEBUG_ON)
+ std::pair<accounts_map::iterator, bool> result =
+#endif
+ accounts.insert(accounts_map::value_type(first, account));
+#if defined(DEBUG_ON)
assert(result.second);
+#endif
} else {
account = (*i).second;
}
@@ -137,7 +141,10 @@ void account_t::add_post(post_t * post)
bool account_t::remove_post(post_t * post)
{
- assert(! posts.empty());
+ // It's possible that 'post' wasn't yet in this account, but try to
+ // remove it anyway. This can happen if there is an error during
+ // parsing, when the posting knows what it's account is, but
+ // xact_t::finalize has not yet added that posting to the account.
posts.remove(post);
post->account = NULL;
return true;