From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8296 invoked by alias); 12 Oct 2010 19:55:33 -0000 Received: (qmail 8288 invoked by uid 22791); 12 Oct 2010 19:55:33 -0000 X-SWARE-Spam-Status: No, hits=-6.2 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 12 Oct 2010 19:55:27 +0000 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o9CJtOP0024539 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 12 Oct 2010 15:55:24 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id o9CJtNeM020086; Tue, 12 Oct 2010 15:55:23 -0400 Received: from opsy.redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id o9CJtNCq019044; Tue, 12 Oct 2010 15:55:23 -0400 Received: by opsy.redhat.com (Postfix, from userid 500) id B9DB33780FB; Tue, 12 Oct 2010 13:55:22 -0600 (MDT) From: Tom Tromey To: Jan Kratochvil Cc: Doug Evans , gdb-patches@sourceware.org Subject: Re: [patch] python: save/restore/fix error state References: <20101008191154.GA13058@host1.dyn.jankratochvil.net> <20101009203945.GA12979@host1.dyn.jankratochvil.net> Date: Tue, 12 Oct 2010 19:55:00 -0000 In-Reply-To: <20101009203945.GA12979@host1.dyn.jankratochvil.net> (Jan Kratochvil's message of "Sat, 9 Oct 2010 22:39:45 +0200") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii 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: 2010-10/txt/msg00201.txt.bz2 Jan> - docstring = python_string_to_host_string (ds_obj); Jan> + { Jan> + docstring = python_string_to_host_string (ds_obj); Jan> + if (docstring == NULL) Jan> + { Jan> + xfree (cmd_name); Jan> + xfree (pfx_name); Jan> + return -1; It seems to me that inability to convert the docstring shouldn't be a fatal problem for command registration. We can just fall back to the no-docstring code. This occurs a couple of times. Jan> - self->value.stringval = python_string_to_host_string (value); Jan> + { Jan> + self->value.stringval = python_string_to_host_string (value); Jan> + if (self->value.stringval == NULL) Jan> + return -1; Jan> + } I think this should probably convert to a temporary variable before assigning to self->value. The rest looks good to me. Thanks for doing this. We were recently kicking around the idea of using Cython to write this layer. It has one nice advantage over doing it by hand: it handles reference counting and error checking automatically. It isn't clear it can be made to work for gdb, though :( Tom