Use std::string in Rust code
This changes a couple of spots in the Rust support to use std::string. In one spot this removes some manual memory management; in the other spot this allows the removal of a call to xstrdup. 2017-02-02 Tom Tromey <tom@tromey.com> * rust-lang.h (rust_crate_for_block): Update. * rust-lang.c (rust_crate_for_block): Return std::string. (rust_get_disr_info): Use std:;string, not gdb::unique_xmalloc_ptr. * rust-exp.y (crate_name): Update.
This commit is contained in:
parent
73dceb99fa
commit
03c85b11b0
4 changed files with 20 additions and 16 deletions
|
@ -51,19 +51,17 @@ rust_last_path_segment (const char * path)
|
|||
return result + 1;
|
||||
}
|
||||
|
||||
/* Find the Rust crate for BLOCK. If no crate can be found, returns
|
||||
NULL. Otherwise, returns a newly allocated string that the caller
|
||||
is responsible for freeing. */
|
||||
/* See rust-lang.h. */
|
||||
|
||||
char *
|
||||
std::string
|
||||
rust_crate_for_block (const struct block *block)
|
||||
{
|
||||
const char *scope = block_scope (block);
|
||||
|
||||
if (scope[0] == '\0')
|
||||
return NULL;
|
||||
return std::string ();
|
||||
|
||||
return xstrndup (scope, cp_find_first_component (scope));
|
||||
return std::string (scope, cp_find_first_component (scope));
|
||||
}
|
||||
|
||||
/* Information about the discriminant/variant of an enum */
|
||||
|
@ -157,8 +155,8 @@ rust_get_disr_info (struct type *type, const gdb_byte *valaddr,
|
|||
/* Optimized enums have only one field. */
|
||||
member_type = TYPE_FIELD_TYPE (type, 0);
|
||||
|
||||
gdb::unique_xmalloc_ptr<char> name (xstrdup (TYPE_FIELD_NAME (type, 0)));
|
||||
tail = name.get () + strlen (RUST_ENUM_PREFIX);
|
||||
std::string name (TYPE_FIELD_NAME (type, 0));
|
||||
tail = &name[0] + strlen (RUST_ENUM_PREFIX);
|
||||
|
||||
/* The location of the value that doubles as a discriminant is
|
||||
stored in the name of the field, as
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue