[1/2] Make ada-lang.c::add_angle_brackets return an std::string

Message ID 20180820015051.31574-1-simon.marchi@polymtl.ca
State New, archived
Headers

Commit Message

Simon Marchi Aug. 20, 2018, 1:50 a.m. UTC
  This removes the need for manual memory management.  It may also be a
bit more efficient, since the returned string can be moved all the way
into the destination, in ada_lookup_name_info::matches.

gdb/ChangeLog:

	* ada-lang.c (add_angle_brackets): Return std::string.
---
 gdb/ada-lang.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)
  

Comments

Simon Marchi Aug. 26, 2018, 4:43 p.m. UTC | #1
On 2018-08-19 9:50 p.m., Simon Marchi wrote:
> This removes the need for manual memory management.  It may also be a
> bit more efficient, since the returned string can be moved all the way
> into the destination, in ada_lookup_name_info::matches.
> 
> gdb/ChangeLog:
> 
> 	* ada-lang.c (add_angle_brackets): Return std::string.
> ---
>  gdb/ada-lang.c | 11 +++--------
>  1 file changed, 3 insertions(+), 8 deletions(-)
> 
> diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
> index db5334dd1e00..d9d3087642bc 100644
> --- a/gdb/ada-lang.c
> +++ b/gdb/ada-lang.c
> @@ -541,17 +541,12 @@ ada_unqualified_name (const char *decoded_name)
>    return result;
>  }
>  
> -/* Return a string starting with '<', followed by STR, and '>'.
> -   The result is good until the next call.  */
> +/* Return a string starting with '<', followed by STR, and '>'.  */
>  
> -static char *
> +static std::string
>  add_angle_brackets (const char *str)
>  {
> -  static char *result = NULL;
> -
> -  xfree (result);
> -  result = xstrprintf ("<%s>", str);
> -  return result;
> +  return string_printf ("<%s>", str);
>  }
>  
>  static const char *
> 

I pushed these two patches.

Simon
  

Patch

diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index db5334dd1e00..d9d3087642bc 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -541,17 +541,12 @@  ada_unqualified_name (const char *decoded_name)
   return result;
 }
 
-/* Return a string starting with '<', followed by STR, and '>'.
-   The result is good until the next call.  */
+/* Return a string starting with '<', followed by STR, and '>'.  */
 
-static char *
+static std::string
 add_angle_brackets (const char *str)
 {
-  static char *result = NULL;
-
-  xfree (result);
-  result = xstrprintf ("<%s>", str);
-  return result;
+  return string_printf ("<%s>", str);
 }
 
 static const char *