diff options
author | Tom Tromey <tom@tromey.com> | 2018-02-06 12:11:21 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2018-02-08 11:46:56 -0700 |
commit | 0354904bdacb9bf1ebdf3ebdf3723f8a550bcdab (patch) | |
tree | aded66019a133a97c2526f1a0566e97ed77f7f4a /gdb/macroexp.c | |
parent | 1739cf248ff21b21271d1e9d5f77a12589c3856c (diff) | |
download | gdb-0354904bdacb9bf1ebdf3ebdf3723f8a550bcdab.zip gdb-0354904bdacb9bf1ebdf3ebdf3723f8a550bcdab.tar.gz gdb-0354904bdacb9bf1ebdf3ebdf3723f8a550bcdab.tar.bz2 |
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.
Diffstat (limited to 'gdb/macroexp.c')
-rw-r--r-- | gdb/macroexp.c | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/gdb/macroexp.c b/gdb/macroexp.c index 02cf26f..1fa37d2 100644 --- a/gdb/macroexp.c +++ b/gdb/macroexp.c @@ -1347,28 +1347,20 @@ maybe_expand (struct macro_buffer *dest, { /* Make a null-terminated copy of it, since that's what our lookup function expects. */ - char *id = (char *) xmalloc (src_first->len + 1); - struct cleanup *back_to = make_cleanup (xfree, id); + std::string id (src_first->text, src_first->len); - memcpy (id, src_first->text, src_first->len); - id[src_first->len] = 0; - /* If we're currently re-scanning the result of expanding 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? */ - 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)) - { - do_cleanups (back_to); - return 1; - } + return 1; } - - do_cleanups (back_to); } return 0; |