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  <palves@redhat.com>

	* main.c (struct cmdarg): Add constructor.
	(captured_main_1): Use vector::emplace_back.
	* tracepoint.c (collection_list::add_memrange): Likewise.
This commit is contained in:
Pedro Alves 2016-11-09 14:53:58 +00:00
parent 8c84bffb45
commit 7a63494a0d
3 changed files with 17 additions and 22 deletions

View file

@ -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;