* python/py-frame.c (frapy_older, frapy_newer, gdbpy_newest_frame)
authorTom Tromey <tromey@redhat.com>
Mon, 20 May 2013 20:37:06 +0000 (20:37 +0000)
committerTom Tromey <tromey@redhat.com>
Mon, 20 May 2013 20:37:06 +0000 (20:37 +0000)
(gdbpy_selected_frame): Move object-construction code
out of TRY_CATCH.

gdb/ChangeLog
gdb/python/py-frame.c

index 8804d8e65ddc336d52e985bea28b8b52e902c639..b388db28f80eb24c637bb2a224f516d7ba69675a 100644 (file)
@@ -1,3 +1,9 @@
+2013-05-20  Tom Tromey  <tromey@redhat.com>
+
+       * python/py-frame.c (frapy_older, frapy_newer, gdbpy_newest_frame)
+       (gdbpy_selected_frame): Move object-construction code
+       out of TRY_CATCH.
+
 2013-05-20  Tom Tromey  <tromey@redhat.com>
 
        * python/py-arch.c (gdbpy_initialize_arch): Use
index 8d7e1e4dd2b5b056c4cacf2b48964f6a4634baf8..cf7cc27726aaac1433d98006de110e336b3b39e5 100644 (file)
@@ -338,7 +338,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.  */
 
@@ -347,16 +347,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;
 }
 
@@ -367,7 +368,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.  */
 
@@ -376,16 +377,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;
 }
 
@@ -520,18 +522,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.
@@ -540,18 +540,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.