Use std::string in maybe_expand
This patch changes maybe_expand to use std::string rather than an explicit malloc and a cleanup. 2018-02-08 Tom Tromey <tom@tromey.com> * macroexp.c (maybe_expand): Use std::string.
This commit is contained in:
parent
1739cf248f
commit
0354904bda
2 changed files with 10 additions and 14 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
2018-02-08 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
|
* macroexp.c (maybe_expand): Use std::string.
|
||||||
|
|
||||||
2018-02-08 Tom Tromey <tom@tromey.com>
|
2018-02-08 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
* macroexp.c (struct macro_buffer): Add initializers for some
|
* macroexp.c (struct macro_buffer): Add initializers for some
|
||||||
|
|
|
@ -1347,28 +1347,20 @@ maybe_expand (struct macro_buffer *dest,
|
||||||
{
|
{
|
||||||
/* Make a null-terminated copy of it, since that's what our
|
/* Make a null-terminated copy of it, since that's what our
|
||||||
lookup function expects. */
|
lookup function expects. */
|
||||||
char *id = (char *) xmalloc (src_first->len + 1);
|
std::string id (src_first->text, src_first->len);
|
||||||
struct cleanup *back_to = make_cleanup (xfree, id);
|
|
||||||
|
|
||||||
memcpy (id, src_first->text, src_first->len);
|
|
||||||
id[src_first->len] = 0;
|
|
||||||
|
|
||||||
/* If we're currently re-scanning the result of expanding
|
/* If we're currently re-scanning the result of expanding
|
||||||
this macro, don't expand it again. */
|
this macro, don't expand it again. */
|
||||||
if (! currently_rescanning (no_loop, id))
|
if (! currently_rescanning (no_loop, id.c_str ()))
|
||||||
{
|
{
|
||||||
/* Does this identifier have a macro definition in scope? */
|
/* Does this identifier have a macro definition in scope? */
|
||||||
struct macro_definition *def = lookup_func (id, lookup_baton);
|
struct macro_definition *def = lookup_func (id.c_str (),
|
||||||
|
lookup_baton);
|
||||||
|
|
||||||
if (def && expand (id, def, dest, src_rest, no_loop,
|
if (def && expand (id.c_str (), def, dest, src_rest, no_loop,
|
||||||
lookup_func, lookup_baton))
|
lookup_func, lookup_baton))
|
||||||
{
|
return 1;
|
||||||
do_cleanups (back_to);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
do_cleanups (back_to);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue