From 7a63494a0df60cf71b9cf03c4eb8f24719d03e66 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Wed, 9 Nov 2016 14:53:58 +0000 Subject: [PATCH] gdb: Use vector::emplace_back Now that we require C++11, we can use vector::emplace_back to construct elements in place instead of constructing and then copying. gdb/ChangeLog: 2016-11-09 Pedro Alves * main.c (struct cmdarg): Add constructor. (captured_main_1): Use vector::emplace_back. * tracepoint.c (collection_list::add_memrange): Likewise. --- gdb/ChangeLog | 6 ++++++ gdb/main.c | 31 ++++++++++--------------------- gdb/tracepoint.c | 2 +- 3 files changed, 17 insertions(+), 22 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 2f0f3c2da44..4d16c38aa8f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2016-11-09 Pedro Alves + + * main.c (struct cmdarg): Add constructor. + (captured_main_1): Use vector::emplace_back. + * tracepoint.c (collection_list::add_memrange): Likewise. + 2016-11-09 Andreas Arnez * tui/tui-winsource.c (tui_alloc_source_buffer): Remove diff --git a/gdb/main.c b/gdb/main.c index ca6a81e804a..fe57bf8d442 100644 --- a/gdb/main.c +++ b/gdb/main.c @@ -444,7 +444,12 @@ enum cmdarg_kind }; /* Arguments of --command option and its counterpart. */ -struct cmdarg { +struct cmdarg +{ + cmdarg (cmdarg_kind type_, char *string_) + : type (type_), string (string_) + {} + /* Type of this option. */ enum cmdarg_kind type; @@ -745,32 +750,16 @@ captured_main_1 (struct captured_main_args *context) pidarg = optarg; break; case 'x': - { - struct cmdarg cmdarg = { CMDARG_FILE, optarg }; - - cmdarg_vec.push_back (cmdarg); - } + cmdarg_vec.emplace_back (CMDARG_FILE, optarg); break; case 'X': - { - struct cmdarg cmdarg = { CMDARG_COMMAND, optarg }; - - cmdarg_vec.push_back (cmdarg); - } + cmdarg_vec.emplace_back (CMDARG_COMMAND, optarg); break; case OPT_IX: - { - struct cmdarg cmdarg = { CMDARG_INIT_FILE, optarg }; - - cmdarg_vec.push_back (cmdarg); - } + cmdarg_vec.emplace_back (CMDARG_INIT_FILE, optarg); break; case OPT_IEX: - { - struct cmdarg cmdarg = { CMDARG_INIT_COMMAND, optarg }; - - cmdarg_vec.push_back (cmdarg); - } + cmdarg_vec.emplace_back (CMDARG_INIT_COMMAND, optarg); break; case 'B': batch_flag = batch_silent = 1; diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c index 3d28606eab1..2a40b167558 100644 --- a/gdb/tracepoint.c +++ b/gdb/tracepoint.c @@ -919,7 +919,7 @@ collection_list::add_memrange (int type, bfd_signed_vma base, /* type: memrange_absolute == memory, other n == basereg */ /* base: addr if memory, offset if reg relative. */ /* len: we actually save end (base + len) for convenience */ - m_memranges.push_back (memrange (type, base, base + len)); + m_memranges.emplace_back (type, base, base + len); if (type != memrange_absolute) /* Better collect the base register! */ add_register (type); -- 2.30.2