From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23480 invoked by alias); 23 Jan 2007 07:45:25 -0000 Received: (qmail 23466 invoked by uid 22791); 23 Jan 2007 07:45:24 -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; Tue, 23 Jan 2007 07:45:19 +0000 Received: from kahikatea.snap.net.nz (30.61.255.123.dynamic.snap.net.nz [123.255.61.30]) by viper.snap.net.nz (Postfix) with ESMTP id 66CFC3D8527 for ; Tue, 23 Jan 2007 20:45:16 +1300 (NZDT) Received: by kahikatea.snap.net.nz (Postfix, from userid 500) id C1AD04F720; Tue, 23 Jan 2007 20:45:15 +1300 (NZDT) From: Nick Roberts MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <17845.48393.877158.536969@kahikatea.snap.net.nz> Date: Tue, 23 Jan 2007 07:45:00 -0000 To: gdb-patches@sources.redhat.com Subject: [PATCH] MI: Free values when updating X-Mailer: VM 7.19 under Emacs 22.0.92.14 X-IsSubscribed: yes 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: 2007-01/txt/msg00460.txt.bz2 The recent changes to varobj.c have resulted in values computed with -var-update not being freed automatically. This makes computation longer and progressively so as currently free_all_values doesn't always get called. -- Nick http://www.inet.net.nz/~nickrob 2007-01-23 Nick Roberts * varobj.c (install_new_value): Don't call release_value when updating. *** varobj.c 16 Jan 2007 18:34:59 +1300 1.79 --- varobj.c 23 Jan 2007 18:26:57 +1300 *************** install_new_value (struct varobj *var, s *** 917,923 **** /* We are not interested in the address of references, and given that in C++ a reference is not rebindable, it cannot meaningfully change. So, get hold of the real value. */ ! if (value) { value = coerce_ref (value); release_value (value); --- 917,923 ---- /* We are not interested in the address of references, and given that in C++ a reference is not rebindable, it cannot meaningfully change. So, get hold of the real value. */ ! if (initial && value) { value = coerce_ref (value); release_value (value);