From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 116537 invoked by alias); 12 Sep 2017 18:57:47 -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 116441 invoked by uid 89); 12 Sep 2017 18:57:46 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.2 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_PASS autolearn=ham version=3.3.2 spammy= 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 ESMTP; Tue, 12 Sep 2017 18:57:45 +0000 Received: from cmgw3 (unknown [10.0.90.84]) by gproxy8.mail.unifiedlayer.com (Postfix) with ESMTP id E09A41AB047 for ; Tue, 12 Sep 2017 12:57:43 -0600 (MDT) Received: from box522.bluehost.com ([74.220.219.122]) by cmgw3 with id 8ixg1w00o2f2jeq01ixjrK; Tue, 12 Sep 2017 12:57:43 -0600 X-Authority-Analysis: v=2.2 cv=K/VSJ2eI c=1 sm=1 tr=0 a=GsOEXm/OWkKvwdLVJsfwcA==:117 a=GsOEXm/OWkKvwdLVJsfwcA==:17 a=2JCJgTwv5E4A:10 a=zstS-IiYAAAA:8 a=PNZAfDkjkDPywCe3BjMA:9 a=bqYGVBqLvuE3Sxd2:21 a=BhU1OiRsJtNyVcqu:21 a=4G6NA9xxw8l3yy4pmD5M:22 Received: from 75-166-76-94.hlrn.qwest.net ([75.166.76.94]:46142 helo=bapiya.Home) by box522.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.87) (envelope-from ) id 1drqNQ-001eRR-K5; Tue, 12 Sep 2017 12:57:40 -0600 From: Tom Tromey To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [RFA 02/11] Remove cleanups from mi_cmd_break_insert_1 Date: Tue, 12 Sep 2017 18:57:00 -0000 Message-Id: <20170912185736.20436-3-tom@tromey.com> In-Reply-To: <20170912185736.20436-1-tom@tromey.com> References: <20170912185736.20436-1-tom@tromey.com> X-BWhitelist: no X-Exim-ID: 1drqNQ-001eRR-K5 X-Source-Sender: 75-166-76-94.hlrn.qwest.net (bapiya.Home) [75.166.76.94]:46142 X-Source-Auth: tom+tromey.com X-Email-Count: 3 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTIyLmJsdWVob3N0LmNvbQ== X-Local-Domain: yes X-SW-Source: 2017-09/txt/msg00346.txt.bz2 This changes mi_argv_to_format to return a string, allowing the removal of some cleanups. ChangeLog 2017-09-12 Tom Tromey * mi/mi-cmd-break.c (mi_argv_to_format): Return std::string. (mi_cmd_break_insert_1): Update. --- gdb/ChangeLog | 5 +++++ gdb/mi/mi-cmd-break.c | 17 +++++------------ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index b71f23b..15a19bb8 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2017-09-12 Tom Tromey + * mi/mi-cmd-break.c (mi_argv_to_format): Return std::string. + (mi_cmd_break_insert_1): Update. + +2017-09-12 Tom Tromey + * target.h (make_scoped_defer_target_commit_resume): Update. * target.c (make_scoped_defer_target_commit_resume): Rename from make_cleanup_defer_target_commit_resume. Return a diff --git a/gdb/mi/mi-cmd-break.c b/gdb/mi/mi-cmd-break.c index bae8711..4cd134c 100644 --- a/gdb/mi/mi-cmd-break.c +++ b/gdb/mi/mi-cmd-break.c @@ -86,12 +86,11 @@ setup_breakpoint_reporting (void) /* Convert arguments in ARGV to the string in "format",argv,argv... and return it. */ -static char * +static std::string mi_argv_to_format (char **argv, int argc) { int i; - struct obstack obstack; - char *ret; + auto_obstack obstack; obstack_init (&obstack); @@ -152,10 +151,7 @@ mi_argv_to_format (char **argv, int argc) } obstack_1grow (&obstack, '\0'); - ret = xstrdup ((const char *) obstack_finish (&obstack)); - obstack_free (&obstack, NULL); - - return ret; + return (const char *) obstack_finish (&obstack); } /* Insert breakpoint. @@ -174,13 +170,12 @@ mi_cmd_break_insert_1 (int dprintf, const char *command, char **argv, int argc) int pending = 0; int enabled = 1; int tracepoint = 0; - struct cleanup *back_to = make_cleanup (null_cleanup, NULL); enum bptype type_wanted; event_location_up location; struct breakpoint_ops *ops; int is_explicit = 0; struct explicit_location explicit_loc; - char *extra_string = NULL; + std::string extra_string; enum opt { @@ -278,7 +273,6 @@ mi_cmd_break_insert_1 (int dprintf, const char *command, char **argv, int argc) error (_("-dprintf-insert: Missing ")); extra_string = mi_argv_to_format (argv + format_num, argc - format_num); - make_cleanup (xfree, extra_string); address = argv[oind]; } else @@ -343,13 +337,12 @@ mi_cmd_break_insert_1 (int dprintf, const char *command, char **argv, int argc) } create_breakpoint (get_current_arch (), location.get (), condition, thread, - extra_string, + extra_string.c_str (), 0 /* condition and thread are valid. */, temp_p, type_wanted, ignore_count, pending ? AUTO_BOOLEAN_TRUE : AUTO_BOOLEAN_FALSE, ops, 0, enabled, 0, 0); - do_cleanups (back_to); } /* Implements the -break-insert command. -- 2.9.4