From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8972 invoked by alias); 8 Dec 2006 02:10:28 -0000 Received: (qmail 8957 invoked by uid 22791); 8 Dec 2006 02:10:26 -0000 X-Spam-Check-By: sourceware.org Received: from viper.snap.net.nz (HELO viper.snap.net.nz) (202.37.101.8) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 08 Dec 2006 02:10:21 +0000 Received: from kahikatea.snap.net.nz (p202-124-120-148.snap.net.nz [202.124.120.148]) by viper.snap.net.nz (Postfix) with ESMTP id 87AD53DA846 for ; Fri, 8 Dec 2006 15:11:22 +1300 (NZDT) Received: by kahikatea.snap.net.nz (Postfix, from userid 500) id 3E50CBE3D2; Fri, 8 Dec 2006 15:05:52 +1300 (NZDT) From: Nick Roberts MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <17784.51326.623302.154956@kahikatea.snap.net.nz> Date: Fri, 08 Dec 2006 02:10:00 -0000 To: gdb-patches@sources.redhat.com Subject: [PATCH] Fix small memory leak in mi-cmd-var.c X-Mailer: VM 7.19 under Emacs 22.0.91.13 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 X-SW-Source: 2006-12/txt/msg00110.txt.bz2 This patch fixes a small memory leak (sizeof (struct varobj *) = 4) that occurs each time -var-update is issued when rootcount = 0. -- Nick http://www.inet.net.nz/~nickrob 2006-12-08 Nick Roberts * mi/mi-cmd-var.c (mi_cmd_var_update): Fix memory leak. *** mi-cmd-var.c 30 Nov 2006 11:45:31 +1300 1.26 --- mi-cmd-var.c 08 Dec 2006 15:04:16 +1300 *************** mi_cmd_var_update (char *command, char * *** 500,509 **** if ((*name == '*') && (*(name + 1) == '\0')) { nv = varobj_list (&rootlist); if (mi_version (uiout) <= 1) ! cleanup = make_cleanup_ui_out_tuple_begin_end (uiout, "changelist"); else ! cleanup = make_cleanup_ui_out_list_begin_end (uiout, "changelist"); if (nv <= 0) { do_cleanups (cleanup); --- 500,510 ---- if ((*name == '*') && (*(name + 1) == '\0')) { nv = varobj_list (&rootlist); + cleanup = make_cleanup (xfree, rootlist); if (mi_version (uiout) <= 1) ! make_cleanup_ui_out_tuple_begin_end (uiout, "changelist"); else ! make_cleanup_ui_out_list_begin_end (uiout, "changelist"); if (nv <= 0) { do_cleanups (cleanup); *************** mi_cmd_var_update (char *command, char * *** 515,521 **** varobj_update_one (*cr, print_values); cr++; } - xfree (rootlist); do_cleanups (cleanup); } else --- 516,521 ----