From ea3e92aa5e68e73fa95196332b739891bbf3f24f Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Mon, 12 May 2014 23:25:15 +0100 Subject: SelectionList know its buffer and timestamp --- src/dynamic_selection_list.cc | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) (limited to 'src/dynamic_selection_list.cc') diff --git a/src/dynamic_selection_list.cc b/src/dynamic_selection_list.cc index 2792da30..4087bb0c 100644 --- a/src/dynamic_selection_list.cc +++ b/src/dynamic_selection_list.cc @@ -3,10 +3,9 @@ namespace Kakoune { -DynamicSelectionList::DynamicSelectionList(Buffer& buffer, - SelectionList selections) +DynamicSelectionList::DynamicSelectionList(SelectionList selections) : SelectionList(std::move(selections)), - BufferChangeListener_AutoRegister(buffer) + BufferChangeListener_AutoRegister(const_cast(buffer())) { check_invariant(); } @@ -18,32 +17,16 @@ DynamicSelectionList& DynamicSelectionList::operator=(SelectionList selections) return *this; } -void DynamicSelectionList::check_invariant() const -{ -#ifdef KAK_DEBUG - SelectionList::check_invariant(); - const Buffer& buffer = registry(); - for (size_t i = 0; i < size(); ++i) - { - auto& sel = (*this)[i]; - kak_assert(buffer.is_valid(sel.anchor())); - kak_assert(buffer.is_valid(sel.cursor())); - kak_assert(not buffer.is_end(sel.anchor())); - kak_assert(not buffer.is_end(sel.cursor())); - kak_assert(utf8::is_character_start(buffer.iterator_at(sel.anchor()))); - kak_assert(utf8::is_character_start(buffer.iterator_at(sel.cursor()))); - } -#endif -} - void DynamicSelectionList::on_insert(const Buffer& buffer, ByteCoord begin, ByteCoord end, bool at_end) { update_insert(begin, end, at_end); + set_timestamp(buffer.timestamp()); } void DynamicSelectionList::on_erase(const Buffer& buffer, ByteCoord begin, ByteCoord end, bool at_end) { update_erase(begin, end, at_end); + set_timestamp(buffer.timestamp()); } } -- cgit v1.2.3