From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1551) id B9678385742F; Fri, 17 Jun 2022 09:23:45 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B9678385742F Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Pedro Alves To: gdb-cvs@sourceware.org Subject: [binutils-gdb] Convert set_location_spec_string to a method X-Act-Checkin: binutils-gdb X-Git-Author: Pedro Alves X-Git-Refname: refs/heads/master X-Git-Oldrev: 709438c75abc52cdc4888e7eaa089c2709c75a07 X-Git-Newrev: dac9773e17261f905d51684fe35da036e82c69cd Message-Id: <20220617092345.B9678385742F@sourceware.org> Date: Fri, 17 Jun 2022 09:23:45 +0000 (GMT) X-BeenThere: gdb-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Jun 2022 09:23:45 -0000 https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3Ddac9773e1726= 1f905d51684fe35da036e82c69cd commit dac9773e17261f905d51684fe35da036e82c69cd Author: Pedro Alves Date: Fri May 27 16:53:49 2022 +0100 Convert set_location_spec_string to a method =20 This converts set_location_spec_string to a method of location_spec, and makes the location_spec::as_string field protected, renaming it to m_as_string along the way. =20 Change-Id: Iccfb1654e9fa7808d0512df89e775f9eacaeb9e0 Diff: --- gdb/linespec.c | 2 +- gdb/location.c | 13 ++----------- gdb/location.h | 31 ++++++++++++++++--------------- 3 files changed, 19 insertions(+), 27 deletions(-) diff --git a/gdb/linespec.c b/gdb/linespec.c index 5c75e2ec979..10dca95e767 100644 --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -2015,7 +2015,7 @@ canonicalize_linespec (struct linespec_state *state, = const linespec *ls) /* If this location originally came from a linespec, save a string representation of it for display and saving to file. */ if (state->is_linespec) - set_location_spec_string (explicit_loc, explicit_loc->to_linespec ()); + explicit_loc->set_string (explicit_loc->to_linespec ()); } =20 /* Given a line offset in LS, construct the relevant SALs. */ diff --git a/gdb/location.c b/gdb/location.c index e22ee414070..2b31baa4c85 100644 --- a/gdb/location.c +++ b/gdb/location.c @@ -60,7 +60,7 @@ probe_location_spec::empty_p () const =20 std::string probe_location_spec::compute_string () const { - return std::move (as_string); + return std::move (m_as_string); } =20 /* A "normal" linespec. */ @@ -131,7 +131,7 @@ address_location_spec::address_location_spec (CORE_ADDR= addr, address (addr) { if (addr_string !=3D nullptr) - as_string =3D std::string (addr_string, addr_string_len); + m_as_string =3D std::string (addr_string, addr_string_len); } =20 location_spec_up @@ -857,12 +857,3 @@ string_to_location_spec (const char **stringp, spec. */ return string_to_location_spec_basic (stringp, language, match_type); } - -/* See description in location.h. */ - -void -set_location_spec_string (struct location_spec *locspec, - std::string &&string) -{ - locspec->as_string =3D std::move (string); -} diff --git a/gdb/location.h b/gdb/location.h index cc9dfe4d7fa..fd0b320628d 100644 --- a/gdb/location.h +++ b/gdb/location.h @@ -91,11 +91,17 @@ struct location_spec The result is cached in the locspec. */ const char *to_string () const { - if (as_string.empty ()) - as_string =3D compute_string (); - if (as_string.empty ()) + if (m_as_string.empty ()) + m_as_string =3D compute_string (); + if (m_as_string.empty ()) return nullptr; - return as_string.c_str (); + return m_as_string.c_str (); + } + + /* Set this location spec's string representation. */ + void set_string (std::string &&string) + { + m_as_string =3D std::move (string); } =20 /* Return this location spec's type. */ @@ -104,10 +110,6 @@ struct location_spec return m_type; } =20 - /* Cached string representation of this location spec. This is - used, e.g., to save location specs to file. */ - mutable std::string as_string; - protected: =20 explicit location_spec (enum location_spec_type t) @@ -116,13 +118,13 @@ protected: } =20 location_spec (enum location_spec_type t, std::string &&str) - : as_string (std::move (str)), + : m_as_string (std::move (str)), m_type (t) { } =20 location_spec (const location_spec &other) - : as_string (other.as_string), + : m_as_string (other.m_as_string), m_type (other.m_type) { } @@ -131,6 +133,10 @@ protected: by to_string when needed. */ virtual std::string compute_string () const =3D 0; =20 + /* Cached string representation of this location spec. This is + used, e.g., to save location specs to file. */ + mutable std::string m_as_string; + private: /* The type of this location specification. */ enum location_spec_type m_type; @@ -361,9 +367,4 @@ extern location_spec_up const struct language_defn *language, explicit_completion_info *completion_info); =20 -/* Set the location specs's string representation. */ - -extern void set_location_spec_string (struct location_spec *locspec, - std::string &&string); - #endif /* LOCATION_H */