From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1627 invoked by alias); 17 Nov 2006 10:40:50 -0000 Received: (qmail 1618 invoked by uid 22791); 17 Nov 2006 10:40:48 -0000 X-Spam-Check-By: sourceware.org Received: from smtp-vbr11.xs4all.nl (HELO smtp-vbr11.xs4all.nl) (194.109.24.31) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 17 Nov 2006 10:40:39 +0000 Received: from webmail.xs4all.nl (dovemail9.xs4all.nl [194.109.26.11]) by smtp-vbr11.xs4all.nl (8.13.8/8.13.8) with ESMTP id kAHAeQVB002731; Fri, 17 Nov 2006 11:40:30 +0100 (CET) (envelope-from mark.kettenis@xs4all.nl) Received: from 192.87.1.22 (SquirrelMail authenticated user sibelius) by webmail.xs4all.nl with HTTP; Fri, 17 Nov 2006 11:40:30 +0100 (CET) Message-ID: <20275.192.87.1.22.1163760030.squirrel@webmail.xs4all.nl> In-Reply-To: References: <200611141643.25053.vladimir@codesourcery.com> <20061114204721.GA11963@nevyn.them.org> <20061115162454.GA29310@nevyn.them.org> Date: Fri, 17 Nov 2006 10:40:00 -0000 Subject: Re: Variable objects laziness From: "Mark Kettenis" To: "Vladimir Prus" Cc: gdb-patches@sources.redhat.com User-Agent: SquirrelMail/1.4.8 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2006-11/txt/msg00163.txt.bz2 > Daniel Jacobowitz wrote: > > > Sorry, you're right! > > > > When you're ready, please repost. Might want to finish talking with > > Nick first. As Nick indicated, I'm not sure whether the removal of my_value_equal is ok. The whole point of my_value_equal is to check equality of values without error()ing out if we can't read a value. Your replacement code doesn't seem to take that possibility into account. Or is it that your new code no longer needs to do this comparison? If that's the case, do watchpoints still work? > - Volodya > > Fetch values from memory in a single place, > and only fetch the values that are really needed. > * varobj.c (struct varobj): Clarify comment. > (my_value_equal): Remove. > (install_new_value): New function. > (type_of_child): Remove. > (varobj_create): Use install_new_value. > (varobj_set_value): Use value_contents_equal, not > my_value_equal. > (varobj_update): Use install_new_value. > (create_child): Likewise. Inline type_of_child here. > (value_of_child): Don't fetch the value. > (c_value_of_root): Likewise. > (c_value_of_variable): Likewise. > (type_changeable): Improve comments.