This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] Remove a cleanup from call_function_by_hand_dummy


On 2018-02-17 11:11, Tom Tromey wrote:
This removes a cleanup from call_function_by_hand_dummy, replacing
manual allocation with std::vector.

Regression tested by the buildbot.

gdb/ChangeLog
2018-02-16  Tom Tromey  <tom@tromey.com>

	* infcall.c (call_function_by_hand_dummy): Use std::vector.
---
 gdb/ChangeLog |  4 ++++
 gdb/infcall.c | 14 ++++----------
 2 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/gdb/infcall.c b/gdb/infcall.c
index 8b75297251..6ff725a815 100644
--- a/gdb/infcall.c
+++ b/gdb/infcall.c
@@ -732,7 +732,6 @@ call_function_by_hand_dummy (struct value *function,
   struct type *ftype = check_typedef (value_type (function));
   CORE_ADDR bp_addr;
   struct frame_id dummy_id;
-  struct cleanup *args_cleanup;
   struct frame_info *frame;
   struct gdbarch *gdbarch;
   struct cleanup *terminate_bp_cleanup;
@@ -1054,21 +1053,18 @@ call_function_by_hand_dummy (struct value *function,
 	}
     }

+  std::vector<struct value *> new_args;
   if (hidden_first_param_p)
     {
-      struct value **new_args;
-
       /* Add the new argument to the front of the argument list.  */
-      new_args = XNEWVEC (struct value *, nargs + 1);
+      new_args.reserve (nargs + 1);

This should probably be resize instead of reserve. When you call reserve, it doesn't change the actual length of the vector. You could then use a def_vector to avoid unneeded zero-initialization by the resize operation.

Other than that, LGTM.

Simon


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]