From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4499 invoked by alias); 22 Apr 2006 12:23:49 -0000 Received: (qmail 4485 invoked by uid 22791); 22 Apr 2006 12:23:48 -0000 X-Spam-Check-By: sourceware.org Received: from mail.artimi.com (HELO mail.artimi.com) (217.40.213.68) by sourceware.org (qpsmtpd/0.31) with ESMTP; Sat, 22 Apr 2006 12:23:47 +0000 Received: from mail.artimi.com ([192.168.1.3]) by mail.artimi.com with Microsoft SMTPSVC(6.0.3790.1830); Sat, 22 Apr 2006 13:23:44 +0100 Received: from rainbow ([192.168.1.165]) by mail.artimi.com with Microsoft SMTPSVC(6.0.3790.1830); Sat, 22 Apr 2006 13:23:44 +0100 From: "Dave Korn" To: "'Greg Law'" , Subject: RE: decode_variable's use of not_found_ptr Date: Sat, 22 Apr 2006 16:32:00 -0000 Message-ID: <02e201c66607$98e13ca0$a501a8c0@CAM.ARTIMI.COM> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: <4449E3F8.3020408@greglaw.net> Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2006-04/txt/msg00288.txt.bz2 On 22 April 2006 09:06, Greg Law wrote: > but at the bottom of the function it says: > > > if (not_found_ptr) > *not_found_ptr = 1; > throw_error (NOT_FOUND_ERROR, _("Function \"%s\" not defined."), copy); > > > Now, I must confess gdb's internal exception mechanism is deeply > mysterious to me, but that code looks to me like it doesn't do what the > comment claims. i.e. if not_found_ptr is non-NULL, it still issues the > error message. > > What's wrong - my reading of the code, or the code? Well, the code doesn't do what the comment says, that's true. You can try putting an 'else' between those lines, but don't forget that you'll now have to add a return statement for when the error isn't thrown, and you'll have to return NULL since the lookup has failed, and there may be some call sites that aren't expecting to receive a NULL return because they've never had to before because the error was previously always being thrown, so there may be knock-on effects.... You could also try looking at the history of the file in CVS, see if that comment was ever accurate; it's the sort of error that can easily creep in during minor code tidyups. cheers, DaveK -- Can't think of a witty .sigline today....