| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2025-02-04 | Revert "WIP linked list shared strings" | Maxime Coste | |
| This got pushed by accident This reverts commit 2856b99e0914cc7a659977f2b33308cb5b4c9bb7. | |||
| 2025-01-22 | WIP linked list shared strings | Maxime Coste | |
| 2024-12-03 | Compact BufferIterator to avoid padding | Maxime Coste | |
| 2024-12-03 | Do not store buffer pointer in BufferIterator | Maxime Coste | |
| This makes BufferIterator smaller and trivially move/copyable | |||
| 2024-11-30 | Cache buffer lines ArrayView in BufferIterator | Maxime Coste | |
| The extra indirection of going through the buffer can be costly as the compiler does not know the buffer is not supposed to be mutated during iteration, so it has to actually reload the values which adds memory accesses in the Buffer instance which can be costly in say regex searches where memory access tends to dominate performance. Storing this in the BufferIterator lets the compiler put this info in registers and not reload it. | |||
| 2023-01-21 | Replace std::strong_ordering with auto return type to not require <compare> | Maxime Coste | |
| 2022-11-20 | Change BufferIterator comparison to assert same buffer | Maxime Coste | |
| Comparing iterators between buffers should never happen, and the only place we did was with default constructed BufferIterator which we replace by casting the iterator to bool. This should improve performance on iterator heavy code. | |||
| 2021-11-21 | Convert comparisons to spaceship operator | Maxime Coste | |
| 2018-11-01 | Use BufferCoord sentinel type for regex matching on BufferIterators | Maxime Coste | |
| BufferIterators are large-ish, and need to check the buffer pointer on comparison. Checking against a coord is just a 64 bit comparison. | |||
| 2018-10-30 | Buffer: Remove m_line_count field from BufferIterator | Maxime Coste | |
| 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. | |||
| 2017-06-12 | Simplify a bit buffer iteration functions | Maxime Coste | |
| Dont try to ensure the returned value is valid, incrementing past the end/decrementing before begin is the caller's error. | |||
| 2017-06-11 | Fix the Buffer::end() madness | Maxime Coste | |
| Until now, buffer had multiple recognized end coordinates, either { line_count, 0 } or { line_count - 1, line[line_count - 1].length }. Now the only correct end coord is { line_count, 0 }, removing the need for various special cases. | |||
| 2017-06-07 | noexept-ify BufferIterator methods | Maxime Coste | |
| 2017-02-20 | Fix performance of word completion with many different selections | Maxime Coste | |
| Fixes #1228 | |||
| 2016-10-01 | Support codepoints of variable width | Maxime Coste | |
| Add a ColumnCount type and use it in place of CharCount whenever more appropriate, take column size of codepoints into account for vertical movements and docstring wrapping. Fixes #811 | |||
| 2016-07-15 | Make buffer iterator iteration/dereference faster | Maxime Coste | |
| 2016-04-27 | Make use of strongly typed number to size_t conversion | Maxime Coste | |
| 2016-04-21 | Allow equality comparison between buffer iterators from differnt buffers | Maxime Coste | |
| 2016-03-09 | It can happen during an undo/redo that the buffer be temporarily empty | Maxime Coste | |
| Fix is_end in that case. | |||
| 2016-01-27 | Make BufferIterator::operator* return a const ref to be more compatible | Maxime Coste | |
| 2015-12-12 | Fix Buffer::changes_since if we get passed an invalid timestamp | Maxime Coste | |
| 2015-11-12 | Faster BufferIterator::operator++/-- | Maxime Coste | |
| 2015-11-10 | Remove useless checks, buffer has always at list one line | Maxime Coste | |
| 2015-11-07 | Optimize BufferIterator to avoid a lot of pointer chasing | Maxime Coste | |
| 2015-11-04 | Rework Buffer::distance implementation | Maxime Coste | |
| 2015-06-24 | Style tweak | Maxime Coste | |
| 2015-03-09 | ArrayView content is not const anymore | Maxime Coste | |
| As in upcoming std c++ array_view, ArrayView<T> points to mutable data, use ArrayView<const T> or alias ConstArrayView<T> for const data. | |||
| 2015-02-26 | Tweak BufferIterator::{+=,-=} implementation | Maxime Coste | |
| 2015-01-06 | Rename memoryview to ArrayView | Maxime Coste | |
| 2014-10-28 | Fix invalid memory access when applying modifications on an empty buffer | Maxime Coste | |
| That can happen when undoing/redoing accross a buffer reload boundary. | |||
| 2014-08-17 | Always inline a few more methods | Maxime Coste | |
| 2014-07-19 | Add some more force inlines to some buffer methods | Maxime Coste | |
| 2014-05-24 | Remove use of 'offset' in buffer iterators, lines are just String | Maxime Coste | |
| No need to maintain line offsets anymore. | |||
| 2014-05-17 | Remove per lines timestamp in Buffer | Maxime Coste | |
| 2014-05-13 | negative coordinates are invalid | Maxime Coste | |
| 2014-05-12 | Maintain an append-only list of changes in Buffer | Maxime Coste | |
| 2014-05-07 | Refactor LineAndColumn coordinates | Maxime Coste | |
| BufferCoord -> ByteCoord DisplayCoord -> CharCoord Moved their definition along with LineAndColumn into coord.hh | |||
| 2014-04-01 | Minor formatting changes | Maxime Coste | |
| 2014-01-12 | rename buffer_iterator.inl.hh as buffer.inl.hh and inline some more methods | Maxime Coste | |
