diff options
author | John Wiegley <johnw@newartisans.com> | 2004-08-05 23:51:20 -0400 |
---|---|---|
committer | John Wiegley <johnw@newartisans.com> | 2004-08-05 23:51:20 -0400 |
commit | 6048ae7c05622a83355ad0a87ab1ce512f00b3f3 (patch) | |
tree | d8467e4cafbd93edf7923f9431751563907ab2a9 /walk.h | |
parent | 5409bc04b8535ba2b52096475d759462c8cd9876 (diff) | |
download | fork-ledger-6048ae7c05622a83355ad0a87ab1ce512f00b3f3.tar.gz fork-ledger-6048ae7c05622a83355ad0a87ab1ce512f00b3f3.tar.bz2 fork-ledger-6048ae7c05622a83355ad0a87ab1ce512f00b3f3.zip |
fixed cache by clear transaction flags before writing
Diffstat (limited to 'walk.h')
-rw-r--r-- | walk.h | 25 |
1 files changed, 25 insertions, 0 deletions
@@ -165,6 +165,31 @@ void walk_entries(entries_list::iterator begin, } template <typename Function> +void walk_entries(entries_list::iterator begin, + entries_list::iterator end, Function functor) +{ + for (entries_list::iterator i = begin; i != end; i++) + for (transactions_list::iterator j = (*i)->transactions.begin(); + j != (*i)->transactions.end(); + j++) + functor(*j); +} + +class clear_flags +{ + public: + void operator()(transaction_t * xact) const { + xact->flags &= ~(TRANSACTION_HANDLED | TRANSACTION_DISPLAYED); + } +}; + +inline void clear_transaction_display_flags(entries_list::iterator begin, + entries_list::iterator end) +{ + walk_entries<clear_flags>(begin, end, clear_flags()); +} + +template <typename Function> void walk_transactions(transactions_list::iterator begin, transactions_list::iterator end, Function functor) { |