Fix off-by-one in call to vector::reserve
authorTom Tromey <tromey@adacore.com>
Fri, 18 Aug 2023 13:55:30 +0000 (07:55 -0600)
committerTom Tromey <tromey@adacore.com>
Fri, 18 Aug 2023 19:03:23 +0000 (13:03 -0600)
commit28bb48114db4de4ba0a72940af1c30728b6e82f2
treebf9575a160fd24478332921ed20dff7fc3aa1e65
parentb7cadd86197e55698db85441b2792ca330a71a75
Fix off-by-one in call to vector::reserve

While looking at a bug, I noticed what I think is an off-by-one
mistake in a call to vector::reserve.  This code:

      new_args.reserve (args.size ());
      new_args.push_back
(value_from_pointer (lookup_pointer_type (values_type), struct_addr));
      new_args.insert (new_args.end (), args.begin (), args.end ());

... reserves 'size()' entries, but then proceeds to push one extra
one.

This shouldn't have any really bad effects, as insert will grow the
vector.  Still, it seems better to use the correct size if we're going
to bother calling reserve.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30780
Reviewed-by: John Baldwin <jhb@FreeBSD.org>
gdb/infcall.c