summaryrefslogtreecommitdiff
path: root/src/buffer.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2014-09-22 19:19:34 +0100
committerMaxime Coste <frrrwww@gmail.com>2014-09-22 19:19:34 +0100
commite440adbcf440ca59c68a65bad9213c313b9a0f7d (patch)
treec131c201ca5fe7dfa9929b0429a0e7006bedd6c3 /src/buffer.cc
parent1296b5d46acc7d4e2951b794b9986c08479f1100 (diff)
add a 'buffers' debug command to get info on alive buffers
Diffstat (limited to 'src/buffer.cc')
-rw-r--r--src/buffer.cc29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/buffer.cc b/src/buffer.cc
index e22a29cb..7c7a4e63 100644
--- a/src/buffer.cc
+++ b/src/buffer.cc
@@ -519,4 +519,33 @@ ByteCoord Buffer::last_modification_coord() const
return m_history.back().back().coord;
}
+String Buffer::debug_description() const
+{
+ String res = display_name() + "\n";
+
+ res += " Flags: ";
+ if (m_flags & Flags::File)
+ res += "File (" + name() + ") ";
+ if (m_flags & Flags::New)
+ res += "New ";
+ if (m_flags & Flags::Fifo)
+ res += "Fifo ";
+ if (m_flags & Flags::NoUndo)
+ res += "NoUndo ";
+ res += "\n";
+
+ size_t content_size = 0;
+ for (auto& line : m_lines)
+ content_size += (int)line.length();
+
+ size_t additional_size = 0;
+ for (auto& undo_group : m_history)
+ additional_size += undo_group.size() * sizeof(Modification);
+ additional_size += m_changes.size() * sizeof(Change);
+
+ res += " Used mem: content=" + to_string(content_size) +
+ " additional=" + to_string(additional_size) + "\n";
+ return res;
+}
+
}