From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 37685 invoked by alias); 13 Oct 2016 21:18:00 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 37658 invoked by uid 89); 13 Oct 2016 21:17:59 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.3 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=no version=3.3.2 spammy=45,6, *context X-HELO: gproxy8-pub.mail.unifiedlayer.com Received: from gproxy8-pub.mail.unifiedlayer.com (HELO gproxy8-pub.mail.unifiedlayer.com) (67.222.33.93) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with SMTP; Thu, 13 Oct 2016 21:17:49 +0000 Received: (qmail 20337 invoked by uid 0); 13 Oct 2016 21:11:08 -0000 Received: from unknown (HELO cmgw4) (10.0.90.85) by gproxy8.mail.unifiedlayer.com with SMTP; 13 Oct 2016 21:11:08 -0000 Received: from box522.bluehost.com ([74.220.219.122]) by cmgw4 with id v9AS1t00D2f2jeq019AVz4; Thu, 13 Oct 2016 15:10:29 -0600 X-Authority-Analysis: v=2.1 cv=IecUBwaa c=1 sm=1 tr=0 a=GsOEXm/OWkKvwdLVJsfwcA==:117 a=GsOEXm/OWkKvwdLVJsfwcA==:17 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=CH0kA5CcgfcA:10 a=zstS-IiYAAAA:8 a=5phhhGxeNO1MmSaf6nIA:9 a=4G6NA9xxw8l3yy4pmD5M:22 Received: from 174-16-143-211.hlrn.qwest.net ([174.16.143.211]:42448 helo=bapiya.Home) by box522.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.86_1) (envelope-from ) id 1bunGj-00011Z-RU; Thu, 13 Oct 2016 15:10:25 -0600 From: Tom Tromey To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [RFA v2 17/17] Remove last cleanup from captured_main_1 Date: Thu, 13 Oct 2016 21:18:00 -0000 Message-Id: <1476393012-29987-18-git-send-email-tom@tromey.com> In-Reply-To: <1476393012-29987-1-git-send-email-tom@tromey.com> References: <1476393012-29987-1-git-send-email-tom@tromey.com> X-BWhitelist: no X-Exim-ID: 1bunGj-00011Z-RU X-Source-Sender: 174-16-143-211.hlrn.qwest.net (bapiya.Home) [174.16.143.211]:42448 X-Source-Auth: tom+tromey.com X-Email-Count: 18 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTIyLmJsdWVob3N0LmNvbQ== X-SW-Source: 2016-10/txt/msg00408.txt.bz2 An earlier patch split captured_main into two parts. This patch removes the last remaining cleanup from captured_main_1, and also replaces a second hand-rolled VEC-like array with a std::vector. 2016-10-11 Tom Tromey * main.c: Include . (cmdarg_s): Remove typedef. Don't define VEC. (captured_main_1): Use vector, not VEC. Remove cleanups. --- gdb/ChangeLog | 6 ++++ gdb/main.c | 93 +++++++++++++++++++++++++---------------------------------- 2 files changed, 46 insertions(+), 53 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 849adbb..5e23f32 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2016-10-11 Tom Tromey + + * main.c: Include . + (cmdarg_s): Remove typedef. Don't define VEC. + (captured_main_1): Use vector, not VEC. Remove cleanups. + 2016-09-26 Tom Tromey * dwarf2loc.c (struct dwarf_expr_context_funcs): Don't declare. diff --git a/gdb/main.c b/gdb/main.c index 420b4d3..280b7c5 100644 --- a/gdb/main.c +++ b/gdb/main.c @@ -45,6 +45,7 @@ #include "event-top.h" #include "infrun.h" #include "signals-state-save-restore.h" +#include /* The selected interpreter. This will be used as a set command variable, so it should always be malloc'ed - since @@ -429,17 +430,14 @@ enum cmdarg_kind }; /* Arguments of --command option and its counterpart. */ -typedef struct cmdarg { +struct cmdarg { /* Type of this option. */ enum cmdarg_kind type; /* Value of this option - filename or the GDB command itself. String memory is not owned by this structure despite it is 'const'. */ char *string; -} cmdarg_s; - -/* Define type VEC (cmdarg_s). */ -DEF_VEC_O (cmdarg_s); +}; static void captured_main_1 (struct captured_main_args *context) @@ -467,15 +465,10 @@ captured_main_1 (struct captured_main_args *context) static int print_configuration; /* Pointers to all arguments of --command option. */ - VEC (cmdarg_s) *cmdarg_vec = NULL; - struct cmdarg *cmdarg_p; + std::vector cmdarg_vec; - /* Indices of all arguments of --directory option. */ - char **dirarg; - /* Allocated size. */ - int dirsize; - /* Number of elements used. */ - int ndir; + /* All arguments of --directory option. */ + std::vector dirarg; /* gdb init files. */ const char *system_gdbinit; @@ -510,11 +503,6 @@ captured_main_1 (struct captured_main_args *context) notice_open_fds (); save_original_signals_state (); - chain = make_cleanup (VEC_cleanup (cmdarg_s), &cmdarg_vec); - dirsize = 1; - dirarg = (char **) xmalloc (dirsize * sizeof (*dirarg)); - ndir = 0; - saved_command_line = (char *) xstrdup (""); #ifdef __MINGW32__ @@ -746,28 +734,28 @@ captured_main_1 (struct captured_main_args *context) { struct cmdarg cmdarg = { CMDARG_FILE, optarg }; - VEC_safe_push (cmdarg_s, cmdarg_vec, &cmdarg); + cmdarg_vec.push_back (cmdarg); } break; case 'X': { struct cmdarg cmdarg = { CMDARG_COMMAND, optarg }; - VEC_safe_push (cmdarg_s, cmdarg_vec, &cmdarg); + cmdarg_vec.push_back (cmdarg); } break; case OPT_IX: { struct cmdarg cmdarg = { CMDARG_INIT_FILE, optarg }; - VEC_safe_push (cmdarg_s, cmdarg_vec, &cmdarg); + cmdarg_vec.push_back (cmdarg); } break; case OPT_IEX: { struct cmdarg cmdarg = { CMDARG_INIT_COMMAND, optarg }; - VEC_safe_push (cmdarg_s, cmdarg_vec, &cmdarg); + cmdarg_vec.push_back (cmdarg); } break; case 'B': @@ -809,13 +797,7 @@ captured_main_1 (struct captured_main_args *context) interpreter_p = xstrdup (optarg); break; case 'd': - dirarg[ndir++] = optarg; - if (ndir >= dirsize) - { - dirsize *= 2; - dirarg = (char **) xrealloc ((char *) dirarg, - dirsize * sizeof (*dirarg)); - } + dirarg.push_back (optarg); break; case 't': ttyarg = optarg; @@ -1006,17 +988,21 @@ captured_main_1 (struct captured_main_args *context) catch_command_errors_const (source_script, home_gdbinit, 0); /* Process '-ix' and '-iex' options early. */ - for (i = 0; VEC_iterate (cmdarg_s, cmdarg_vec, i, cmdarg_p); i++) - switch (cmdarg_p->type) + for (i = 0; i < cmdarg_vec.size (); i++) { - case CMDARG_INIT_FILE: - catch_command_errors_const (source_script, cmdarg_p->string, - !batch_flag); - break; - case CMDARG_INIT_COMMAND: - catch_command_errors (execute_command, cmdarg_p->string, - !batch_flag); - break; + const struct cmdarg &cmdarg_p = cmdarg_vec[i]; + + switch (cmdarg_p.type) + { + case CMDARG_INIT_FILE: + catch_command_errors_const (source_script, cmdarg_p.string, + !batch_flag); + break; + case CMDARG_INIT_COMMAND: + catch_command_errors (execute_command, cmdarg_p.string, + !batch_flag); + break; + } } /* Now perform all the actions indicated by the arguments. */ @@ -1025,9 +1011,8 @@ captured_main_1 (struct captured_main_args *context) catch_command_errors (cd_command, cdarg, 0); } - for (i = 0; i < ndir; i++) + for (i = 0; i < dirarg.size (); i++) catch_command_errors (directory_switch, dirarg[i], 0); - xfree (dirarg); /* Skip auto-loading section-specified scripts until we've sourced local_gdbinit (which is often used to augment the source search @@ -1116,17 +1101,21 @@ captured_main_1 (struct captured_main_args *context) load_auto_scripts_for_objfile (objfile); /* Process '-x' and '-ex' options. */ - for (i = 0; VEC_iterate (cmdarg_s, cmdarg_vec, i, cmdarg_p); i++) - switch (cmdarg_p->type) + for (i = 0; i < cmdarg_vec.size (); i++) { - case CMDARG_FILE: - catch_command_errors_const (source_script, cmdarg_p->string, - !batch_flag); - break; - case CMDARG_COMMAND: - catch_command_errors (execute_command, cmdarg_p->string, - !batch_flag); - break; + const struct cmdarg &cmdarg_p = cmdarg_vec[i]; + + switch (cmdarg_p.type) + { + case CMDARG_FILE: + catch_command_errors_const (source_script, cmdarg_p.string, + !batch_flag); + break; + case CMDARG_COMMAND: + catch_command_errors (execute_command, cmdarg_p.string, + !batch_flag); + break; + } } /* Read in the old history after all the command files have been @@ -1138,8 +1127,6 @@ captured_main_1 (struct captured_main_args *context) /* We have hit the end of the batch file. */ quit_force (NULL, 0); } - - do_cleanups (chain); } static void -- 2.7.4