From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26805 invoked by alias); 26 Oct 2013 03:58:02 -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 26791 invoked by uid 89); 26 Oct 2013 03:58:01 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.2 X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 26 Oct 2013 03:58:00 +0000 Received: from svr-orw-fem-01.mgc.mentorg.com ([147.34.98.93]) by relay1.mentorg.com with esmtp id 1VZv0f-0000sp-I6 from Yao_Qi@mentor.com for gdb-patches@sourceware.org; Fri, 25 Oct 2013 20:57:57 -0700 Received: from SVR-ORW-FEM-04.mgc.mentorg.com ([147.34.97.41]) by svr-orw-fem-01.mgc.mentorg.com over TLS secured channel with Microsoft SMTPSVC(6.0.3790.4675); Fri, 25 Oct 2013 20:57:57 -0700 Received: from qiyao.dyndns.org.dyndns.org (147.34.91.1) by svr-orw-fem-04.mgc.mentorg.com (147.34.97.41) with Microsoft SMTP Server id 14.2.247.3; Fri, 25 Oct 2013 20:57:57 -0700 From: Yao Qi To: Subject: [PATCH] Fix ada inferior-data cleanup Date: Sat, 26 Oct 2013 03:58:00 -0000 Message-ID: <1382759789-777-1-git-send-email-yao@codesourcery.com> MIME-Version: 1.0 Content-Type: text/plain X-IsSubscribed: yes X-SW-Source: 2013-10/txt/msg00838.txt.bz2 Hi, 'struct ada_inferior_data' is registered to per-inferior-data with cleanup ada_inferior_data_cleanup, which means the data will be destroyed when the inferior exits. It is unnecessary to call observer_attach_inferior_exit to do cleanups again. Regression tested by "make check RUNTESTFLAGS='--directory=gdb.ada'" on x86 Fedora 16 linux. gdb: 2013-10-26 Yao Qi * ada-lang.c (ada_inferior_data_cleanup): Don't get data from inferior_data. Don't check NULL. Free 'arg'. (ada_inferior_exit): Remove. (_initialize_ada_language): Don't call observer_attach_inferior_exit. --- gdb/ada-lang.c | 17 +---------------- 1 files changed, 1 insertions(+), 16 deletions(-) diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index 75f9fe8..600f835 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -336,11 +336,7 @@ static const struct inferior_data *ada_inferior_data; static void ada_inferior_data_cleanup (struct inferior *inf, void *arg) { - struct ada_inferior_data *data; - - data = inferior_data (inf, ada_inferior_data); - if (data != NULL) - xfree (data); + xfree (arg); } /* Return our inferior data for the given inferior (INF). @@ -366,16 +362,6 @@ get_ada_inferior_data (struct inferior *inf) return data; } -/* Perform all necessary cleanups regarding our module's inferior data - that is required after the inferior INF just exited. */ - -static void -ada_inferior_exit (struct inferior *inf) -{ - ada_inferior_data_cleanup (inf, NULL); - set_inferior_data (inf, ada_inferior_data, NULL); -} - /* Utilities */ /* If TYPE is a TYPE_CODE_TYPEDEF type, return the target type after @@ -12958,7 +12944,6 @@ With an argument, catch only exceptions with the given name."), NULL, xcalloc, xfree); /* Setup per-inferior data. */ - observer_attach_inferior_exit (ada_inferior_exit); ada_inferior_data = register_inferior_data_with_cleanup (NULL, ada_inferior_data_cleanup); } -- 1.7.7.6