From 45e362d213ab4de8f5e08325a8a299468d316fe7 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Fri, 30 Mar 2012 12:01:18 +0000 Subject: [PATCH] specialize BufferIterator::operator++ to speed up Kakoune --- src/buffer_iterator.inl.hh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/buffer_iterator.inl.hh b/src/buffer_iterator.inl.hh index 1ad3e25f..034310b1 100644 --- a/src/buffer_iterator.inl.hh +++ b/src/buffer_iterator.inl.hh @@ -193,7 +193,15 @@ inline BufferIterator& BufferIterator::operator-=(BufferSize size) inline BufferIterator& BufferIterator::operator++() { - return (*this += 1); + if (column() < m_buffer->m_lines[line()].length() - 1) + ++m_coord.column; + else if (line() == m_buffer->line_count() - 1) + m_coord.column = m_buffer->m_lines.back().length(); + else + { + ++m_coord.line; + m_coord.column = 0; + } } inline BufferIterator& BufferIterator::operator--()