gdb: add string_file::release method
authorSimon Marchi <simon.marchi@polymtl.ca>
Tue, 25 Jan 2022 01:00:46 +0000 (20:00 -0500)
committerSimon Marchi <simon.marchi@polymtl.ca>
Wed, 26 Jan 2022 15:01:40 +0000 (10:01 -0500)
commit5d10a2041eb843fd321ce1d850cf3e0df7648bc7
treea1bd00ecbd780dc194da8d44b713b09f10446c0a
parentb583c328e71369f90f4042ac7973ce9edfdb44b3
gdb: add string_file::release method

A common pattern for string_file is to want to move out the internal
string buffer, because it is the result of the computation that we want
to return.  It is the reason why string_file::string returns a non-const
reference, as explained in the comment.  I think it would make sense to
have a dedicated method for that instead and make string_file::string
return a const reference.

This allows removing the explicit std::move in the typical case.  Note
that compile_program::compute was missing a move, meaning that the
resulting string was copied.  With the new version, it's not possible to
forget to move.

Change-Id: Ieaefa35b73daa7930b2f3a26988b6e3b4121bb79
17 files changed:
gdb/ada-lang.c
gdb/ada-valprint.c
gdb/ada-varobj.c
gdb/c-exp.y
gdb/cli/cli-setshow.c
gdb/compile/compile-c-support.c
gdb/guile/scm-type.c
gdb/location.c
gdb/maint-test-options.c
gdb/remote.c
gdb/tui/tui-disasm.c
gdb/tui/tui-regs.c
gdb/tui/tui-stack.c
gdb/typeprint.c
gdb/ui-file.h
gdb/utils.c
gdb/varobj.c