From 9fec1b3fafe4a9a3126e203ee01045ed4ae15aba Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Tue, 30 Oct 2018 23:18:41 +1100 Subject: Buffer: Remove m_line_count field from BufferIterator It seems unlikely this would give performance gain, as buffer lines are always accessed when we read that field, leading to all the necessary data already being in memory. Removing it reduces the size of a BufferIterator, which are already pretty hefty objects. --- src/buffer.hh | 1 - src/buffer.inl.hh | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) (limited to 'src') diff --git a/src/buffer.hh b/src/buffer.hh index 0cdb8209..3114e861 100644 --- a/src/buffer.hh +++ b/src/buffer.hh @@ -92,7 +92,6 @@ public: private: SafePtr m_buffer; BufferCoord m_coord; - LineCount m_line_count; StringView m_line; }; diff --git a/src/buffer.inl.hh b/src/buffer.inl.hh index 6816e818..e7538694 100644 --- a/src/buffer.inl.hh +++ b/src/buffer.inl.hh @@ -100,7 +100,6 @@ inline BufferCoord Buffer::end_coord() const inline BufferIterator::BufferIterator(const Buffer& buffer, BufferCoord coord) noexcept : m_buffer{&buffer}, m_coord{coord}, - m_line_count{buffer.line_count()}, m_line{coord.line < buffer.line_count() ? (*m_buffer)[coord.line] : StringView{}} {} inline bool BufferIterator::operator==(const BufferIterator& iterator) const noexcept @@ -183,7 +182,7 @@ inline BufferIterator& BufferIterator::operator++() { if (++m_coord.column == m_line.length()) { - m_line = (++m_coord.line < m_line_count) ? + m_line = (++m_coord.line < m_buffer->line_count()) ? (*m_buffer)[m_coord.line] : StringView{}; m_coord.column = 0; } -- cgit v1.2.3