summaryrefslogtreecommitdiff
path: root/src/display_buffer.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2011-10-07 14:19:58 +0000
committerMaxime Coste <frrrwww@gmail.com>2011-10-07 14:19:58 +0000
commit10106e8c8e5cd6a5bd52c2068e3dd06d353a66b8 (patch)
tree67b5569f24fc709454d628a28cd9dc37f05afe6a /src/display_buffer.cc
parenta19f4f059d3e76210cfefdbb2881255d7fbc7879 (diff)
DisplayBuffer: do not store content in atom, begin and end are sufficient
Diffstat (limited to 'src/display_buffer.cc')
-rw-r--r--src/display_buffer.cc12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/display_buffer.cc b/src/display_buffer.cc
index 8a8eb09e..f36527be 100644
--- a/src/display_buffer.cc
+++ b/src/display_buffer.cc
@@ -9,17 +9,15 @@ DisplayBuffer::DisplayBuffer()
{
}
-DisplayBuffer::iterator DisplayBuffer::split(iterator atom, size_t pos_in_atom)
+DisplayBuffer::iterator DisplayBuffer::split(iterator atom, const BufferIterator& pos)
{
assert(atom < end());
- assert(pos_in_atom > 0);
- assert(pos_in_atom < atom->content.length());
- DisplayAtom new_atom(atom->begin, atom->begin + pos_in_atom,
- atom->content.substr(0, pos_in_atom),
+ assert(pos > atom->begin);
+ assert(pos < atom->end);
+ DisplayAtom new_atom(atom->begin, pos,
atom->fg_color, atom->bg_color, atom->attribute);
- atom->begin = atom->begin + pos_in_atom;
- atom->content = atom->content.substr(pos_in_atom);
+ atom->begin = pos;
return insert(atom, std::move(new_atom));
}