aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2023-04-26 18:15:56 +0200
committerTom de Vries <tdevries@suse.de>2023-04-26 18:15:56 +0200
commit17f091b31eb2ad8a838bf3ab21201afd2eaf1636 (patch)
tree8449bf016ad577eec994afbeb20b5fc8d97e1548
parent3ad6c165ca098a0fa4491893a75b4b1581698484 (diff)
downloadgdb-17f091b31eb2ad8a838bf3ab21201afd2eaf1636.zip
gdb-17f091b31eb2ad8a838bf3ab21201afd2eaf1636.tar.gz
gdb-17f091b31eb2ad8a838bf3ab21201afd2eaf1636.tar.bz2
[gdb/tui] Fix length of status line string
In commit 5d10a2041eb ("gdb: add string_file::release method") this was added: ... + std::string string_val = string.release (); ... without updating subsequent uses of string.size (), which returns 0 after the string.release () call. Fix this by: - using string_val.size () instead of string.size (), and - adding an assert that would have caught this regression. Tested on x86_64-linux. Reviewed-By: Simon Marchi <simon.marchi@efficios.com> PR tui/30389 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30389
-rw-r--r--gdb/tui/tui-stack.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c
index 0a75018..76b8f06 100644
--- a/gdb/tui/tui-stack.c
+++ b/gdb/tui/tui-stack.c
@@ -183,10 +183,13 @@ tui_locator_window::make_status_line () const
std::string string_val = string.release ();
- if (string.size () < status_size)
- string_val.append (status_size - string.size (), ' ');
- else if (string.size () > status_size)
- string_val.erase (status_size, string.size ());
+ size_t len = string_val.size ();
+ if (len < status_size)
+ string_val.append (status_size - len, ' ');
+ else if (len > status_size)
+ string_val.erase (status_size, len);
+
+ gdb_assert (string_val.size () == status_size);
return string_val;
}