summaryrefslogtreecommitdiff
path: root/src/changes.hh
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2017-11-07 20:00:45 +0800
committerMaxime Coste <mawww@kakoune.org>2017-11-07 20:00:45 +0800
commit80ce768994c75952b75cf31bef3c67871e5e5723 (patch)
tree91bf809e21069e4d7b690333fbf3b9c1a3065a0f /src/changes.hh
parentd6b5240bdfcb1a991e60fa3fd531e72cc8263ae9 (diff)
Slight code cleanup in change update functions
Diffstat (limited to 'src/changes.hh')
-rw-r--r--src/changes.hh20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/changes.hh b/src/changes.hh
index c89ea529..ffae651a 100644
--- a/src/changes.hh
+++ b/src/changes.hh
@@ -32,11 +32,10 @@ template<typename RangeContainer>
void update_forward(ConstArrayView<Buffer::Change> changes, RangeContainer& ranges)
{
ForwardChangesTracker changes_tracker;
-
- auto change_it = changes.begin();
- auto advance_while_relevant = [&](const BufferCoord& pos) mutable {
- while (change_it != changes.end() and changes_tracker.relevant(*change_it, pos))
- changes_tracker.update(*change_it++);
+ auto advance_while_relevant = [&, it = changes.begin()]
+ (const BufferCoord& pos) mutable {
+ while (it != changes.end() and changes_tracker.relevant(*it, pos))
+ changes_tracker.update(*it++);
};
for (auto& range : ranges)
@@ -55,14 +54,13 @@ template<typename RangeContainer>
void update_backward(ConstArrayView<Buffer::Change> changes, RangeContainer& ranges)
{
ForwardChangesTracker changes_tracker;
-
- auto advance_while_relevant = [&, it = changes.rbegin(), end = changes.rend()]
+ auto advance_while_relevant = [&, it = changes.rbegin()]
(const BufferCoord& pos) mutable {
- while (it != end)
+ while (it != changes.rend())
{
- auto change = *it;
- change.begin = changes_tracker.get_new_coord(change.begin);
- change.end = changes_tracker.get_new_coord(change.end);
+ const Buffer::Change change{it->type,
+ changes_tracker.get_new_coord(it->begin),
+ changes_tracker.get_new_coord(it->end)};
if (not changes_tracker.relevant(change, pos))
break;
changes_tracker.update(change);