This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 25/28] some py-frame.c changes to make the checker work better


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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]