From 0d23e3d4f6ea4e9ec9a70211abb892383b80188e Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Mon, 14 Apr 2014 11:08:26 -0500 Subject: Apply any outstanding deferred postings at the end of parsing --- src/account.cc | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/account.cc') diff --git a/src/account.cc b/src/account.cc index a702cf11..216b15bd 100644 --- a/src/account.cc +++ b/src/account.cc @@ -154,6 +154,21 @@ void account_t::add_deferred_post(const string& uuid, post_t * post) } } +void account_t::apply_deferred_posts() +{ + if (deferred_posts) { + foreach (deferred_posts_map_t::value_type& pair, *deferred_posts) { + foreach (post_t * post, pair.second) + post->account->add_post(post); + } + deferred_posts = none; + } + + // Also apply in child accounts + foreach (const accounts_map::value_type& pair, accounts) + pair.second->apply_deferred_posts(); +} + bool account_t::remove_post(post_t * post) { // It's possible that 'post' wasn't yet in this account, but try to -- cgit v1.2.3