From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24075 invoked by alias); 19 Apr 2013 14:43:10 -0000 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 Received: (qmail 24066 invoked by uid 89); 19 Apr 2013 14:43:09 -0000 X-Spam-SWARE-Status: No, score=-6.8 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,RCVD_IN_DNSWL_HI,RCVD_IN_HOSTKARMA_W,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.1 Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Fri, 19 Apr 2013 14:43:09 +0000 Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r3JEh8Ie017547 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 19 Apr 2013 10:43:08 -0400 Received: from barimba (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id r3JEh6Ws030724 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Fri, 19 Apr 2013 10:43:07 -0400 From: Tom Tromey To: gdb-patches@sourceware.org Subject: [PATCH 25/28] some py-frame.c changes to make the checker work better References: <87ehe638ww.fsf@fleche.redhat.com> Date: Fri, 19 Apr 2013 17:49:00 -0000 In-Reply-To: <87ehe638ww.fsf@fleche.redhat.com> (Tom Tromey's message of "Fri, 19 Apr 2013 08:13:51 -0600") Message-ID: <871ua6y41x.fsf@fleche.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SW-Source: 2013-04/txt/msg00609.txt.bz2 The checker complained about some code in py-frame.c that was simple to refactor into a digestible form. * python/py-frame.c (frapy_older, frapy_newer, gdbpy_newest_frame) (gdbpy_selected_frame): Move object-construction code out of TRY_CATCH. --- gdb/python/py-frame.c | 46 ++++++++++++++++++++++------------------------ 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/gdb/python/py-frame.c b/gdb/python/py-frame.c index 435eb50..a18ec1f 100644 --- a/gdb/python/py-frame.c +++ b/gdb/python/py-frame.c @@ -342,7 +342,7 @@ frame_info_to_frame_object (struct frame_info *frame) static PyObject * frapy_older (PyObject *self, PyObject *args) { - struct frame_info *frame, *prev; + struct frame_info *frame, *prev = NULL; volatile struct gdb_exception except; PyObject *prev_obj = NULL; /* Initialize to appease gcc warning. */ @@ -351,16 +351,17 @@ frapy_older (PyObject *self, PyObject *args) FRAPY_REQUIRE_VALID (self, frame); prev = get_prev_frame (frame); - if (prev) - prev_obj = (PyObject *) frame_info_to_frame_object (prev); - else - { - Py_INCREF (Py_None); - prev_obj = Py_None; - } } GDB_PY_HANDLE_EXCEPTION (except); + if (prev) + prev_obj = (PyObject *) frame_info_to_frame_object (prev); + else + { + Py_INCREF (Py_None); + prev_obj = Py_None; + } + return prev_obj; } @@ -371,7 +372,7 @@ frapy_older (PyObject *self, PyObject *args) static PyObject * frapy_newer (PyObject *self, PyObject *args) { - struct frame_info *frame, *next; + struct frame_info *frame, *next = NULL; volatile struct gdb_exception except; PyObject *next_obj = NULL; /* Initialize to appease gcc warning. */ @@ -380,16 +381,17 @@ frapy_newer (PyObject *self, PyObject *args) FRAPY_REQUIRE_VALID (self, frame); next = get_next_frame (frame); - if (next) - next_obj = (PyObject *) frame_info_to_frame_object (next); - else - { - Py_INCREF (Py_None); - next_obj = Py_None; - } } GDB_PY_HANDLE_EXCEPTION (except); + if (next) + next_obj = (PyObject *) frame_info_to_frame_object (next); + else + { + Py_INCREF (Py_None); + next_obj = Py_None; + } + return next_obj; } @@ -524,18 +526,16 @@ frapy_select (PyObject *self, PyObject *args) PyObject * gdbpy_newest_frame (PyObject *self, PyObject *args) { - struct frame_info *frame; - PyObject *frame_obj = NULL; /* Initialize to appease gcc warning. */ + struct frame_info *frame = NULL; volatile struct gdb_exception except; TRY_CATCH (except, RETURN_MASK_ALL) { frame = get_current_frame (); - frame_obj = frame_info_to_frame_object (frame); } GDB_PY_HANDLE_EXCEPTION (except); - return frame_obj; + return frame_info_to_frame_object (frame); } /* Implementation of gdb.selected_frame () -> gdb.Frame. @@ -544,18 +544,16 @@ gdbpy_newest_frame (PyObject *self, PyObject *args) PyObject * gdbpy_selected_frame (PyObject *self, PyObject *args) { - struct frame_info *frame; - PyObject *frame_obj = NULL; /* Initialize to appease gcc warning. */ + struct frame_info *frame = NULL; volatile struct gdb_exception except; TRY_CATCH (except, RETURN_MASK_ALL) { frame = get_selected_frame ("No frame is currently selected."); - frame_obj = frame_info_to_frame_object (frame); } GDB_PY_HANDLE_EXCEPTION (except); - return frame_obj; + return frame_info_to_frame_object (frame); } /* Implementation of gdb.stop_reason_string (Integer) -> String. -- 1.8.1.4