summaryrefslogtreecommitdiff
path: root/gdb/cp-support.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2019-07-13 12:09:51 -0600
committerTom Tromey <tom@tromey.com>2019-08-06 20:08:48 -0600
commitefba19b06a6f2baacb3920599f970d1333ffc358 (patch)
treef8ab8d8f5a212c00950b8fc67a180e4373017f01 /gdb/cp-support.c
parentf25102f7b100337923d2c81ecc12a64d428e98fe (diff)
downloadbinutils-gdb-efba19b06a6f2baacb3920599f970d1333ffc358.tar.gz
Add obstack_strdup overload taking a std::string
This adds an obstack_strdup overload that takes a std::string, and changes a few spots in gdb to use it. gdb/ChangeLog 2019-08-06 Tom Tromey <tom@tromey.com> * symfile.c (reread_symbols): Use obstack_strdup. * stabsread.c (read_type): Use obstack_strdup. * gdb_obstack.h (obstack_strdup): New overload. * dwarf2read.c (dwarf2_compute_name, create_dwo_unit_in_dwp_v1) (create_dwo_unit_in_dwp_v2, build_error_marker_type) (dwarf2_canonicalize_name): Use obstack_strdup. * dbxread.c (read_dbx_symtab): Use obstack_strdup. * cp-support.c (inspect_type, replace_typedefs_qualified_name): Use obstack_strdup.
Diffstat (limited to 'gdb/cp-support.c')
-rw-r--r--gdb/cp-support.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/gdb/cp-support.c b/gdb/cp-support.c
index 562c6f155c7..b8b0fcc0ae2 100644
--- a/gdb/cp-support.c
+++ b/gdb/cp-support.c
@@ -244,7 +244,7 @@ inspect_type (struct demangle_parse_info *info,
}
len = buf.size ();
- name = (char *) obstack_copy0 (&info->obstack, buf.c_str (), len);
+ name = obstack_strdup (&info->obstack, buf.string ());
/* Turn the result into a new tree. Note that this
tree will contain pointers into NAME, so NAME cannot
@@ -315,9 +315,7 @@ replace_typedefs_qualified_name (struct demangle_parse_info *info,
buf.write (d_left (comp)->u.s_name.s, d_left (comp)->u.s_name.len);
newobj.type = DEMANGLE_COMPONENT_NAME;
- newobj.u.s_name.s
- = (char *) obstack_copy0 (&info->obstack,
- buf.c_str (), buf.size ());
+ newobj.u.s_name.s = obstack_strdup (&info->obstack, buf.string ());
newobj.u.s_name.len = buf.size ();
if (inspect_type (info, &newobj, finder, data))
{
@@ -379,9 +377,7 @@ replace_typedefs_qualified_name (struct demangle_parse_info *info,
with a DEMANGLE_COMPONENT_NAME node containing the whole
name. */
ret_comp->type = DEMANGLE_COMPONENT_NAME;
- ret_comp->u.s_name.s
- = (char *) obstack_copy0 (&info->obstack,
- buf.c_str (), buf.size ());
+ ret_comp->u.s_name.s = obstack_strdup (&info->obstack, buf.string ());
ret_comp->u.s_name.len = buf.size ();
inspect_type (info, ret_comp, finder, data);
}