DisplayBuffer: check_invariant method to assert atoms consistency
This commit is contained in:
parent
e659ea2dab
commit
834e2d2fe3
|
@ -1,6 +1,6 @@
|
|||
#include "display_buffer.hh"
|
||||
|
||||
#include "assert.h"
|
||||
#include "assert.hh"
|
||||
|
||||
namespace Kakoune
|
||||
{
|
||||
|
@ -22,4 +22,14 @@ DisplayBuffer::iterator DisplayBuffer::split(iterator atom, size_t pos_in_atom)
|
|||
return insert(atom, std::move(new_atom));
|
||||
}
|
||||
|
||||
void DisplayBuffer::check_invariant() const
|
||||
{
|
||||
for (size_t i = 0; i < m_atoms.size(); ++i)
|
||||
{
|
||||
assert(m_atoms[i].end > m_atoms[i].begin);
|
||||
if (i > 0)
|
||||
assert(m_atoms[i-1].end == m_atoms[i].begin);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -75,6 +75,8 @@ public:
|
|||
|
||||
const_iterator begin() const { return m_atoms.begin(); }
|
||||
const_iterator end() const { return m_atoms.end(); }
|
||||
|
||||
void check_invariant() const;
|
||||
private:
|
||||
AtomList m_atoms;
|
||||
};
|
||||
|
|
|
@ -309,7 +309,10 @@ void Window::update_display_buffer()
|
|||
m_display_buffer.append(DisplayAtom(begin, end, m_buffer.string(begin, end)));
|
||||
|
||||
for (auto& filter : m_filters)
|
||||
{
|
||||
filter(m_display_buffer);
|
||||
m_display_buffer.check_invariant();
|
||||
}
|
||||
}
|
||||
|
||||
void Window::set_dimensions(const WindowCoord& dimensions)
|
||||
|
|
Loading…
Reference in New Issue
Block a user