Fix fails in gdb.dwarf2/dynarr-ptr.exp
[deliverable/binutils-gdb.git] / gdb / python / py-param.c
index 9f56c3a744d97d8c7ccff64619d8735c19fbf1d7..06b9ae9c44ec84ead84bb896223dac041bf6cd40 100644 (file)
@@ -1,6 +1,6 @@
 /* GDB parameters implemented in Python
 
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2015 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,7 +20,6 @@
 
 #include "defs.h"
 #include "value.h"
-#include "exceptions.h"
 #include "python-internal.h"
 #include "charset.h"
 #include "gdbcmd.h"
@@ -89,7 +88,7 @@ struct parmpy_object
 
 typedef struct parmpy_object parmpy_object;
 
-static PyTypeObject parmpy_object_type
+extern PyTypeObject parmpy_object_type
     CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("parmpy_object");
 
 /* Some handy string constants.  */
@@ -134,7 +133,7 @@ set_parameter_value (parmpy_object *self, PyObject *value)
          && (self->type == var_filename
              || value != Py_None))
        {
-         PyErr_SetString (PyExc_RuntimeError, 
+         PyErr_SetString (PyExc_RuntimeError,
                           _("String required for filename."));
 
          return -1;
@@ -167,7 +166,7 @@ set_parameter_value (parmpy_object *self, PyObject *value)
 
        if (! gdbpy_is_string (value))
          {
-           PyErr_SetString (PyExc_RuntimeError, 
+           PyErr_SetString (PyExc_RuntimeError,
                             _("ENUM arguments must be a string."));
            return -1;
          }
@@ -192,12 +191,12 @@ set_parameter_value (parmpy_object *self, PyObject *value)
     case var_boolean:
       if (! PyBool_Check (value))
        {
-         PyErr_SetString (PyExc_RuntimeError, 
+         PyErr_SetString (PyExc_RuntimeError,
                           _("A boolean argument is required."));
          return -1;
        }
       cmp = PyObject_IsTrue (value);
-      if (cmp < 0) 
+      if (cmp < 0)
          return -1;
       self->value.intval = cmp;
       break;
@@ -216,10 +215,10 @@ set_parameter_value (parmpy_object *self, PyObject *value)
        {
          cmp = PyObject_IsTrue (value);
          if (cmp < 0 )
-           return -1;    
+           return -1;  
          if (cmp == 1)
            self->value.autoboolval = AUTO_BOOLEAN_TRUE;
-         else 
+         else
            self->value.autoboolval = AUTO_BOOLEAN_FALSE;
        }
       break;
@@ -233,7 +232,7 @@ set_parameter_value (parmpy_object *self, PyObject *value)
 
        if (! PyInt_Check (value))
          {
-           PyErr_SetString (PyExc_RuntimeError, 
+           PyErr_SetString (PyExc_RuntimeError,
                             _("The value must be integer."));
            return -1;
          }
@@ -258,7 +257,7 @@ set_parameter_value (parmpy_object *self, PyObject *value)
 
        if (! ok)
          {
-           PyErr_SetString (PyExc_RuntimeError, 
+           PyErr_SetString (PyExc_RuntimeError,
                             _("Range exceeded."));
            return -1;
          }
@@ -268,7 +267,7 @@ set_parameter_value (parmpy_object *self, PyObject *value)
       }
 
     default:
-      PyErr_SetString (PyExc_RuntimeError, 
+      PyErr_SetString (PyExc_RuntimeError,
                       _("Unhandled type in parameter value."));
       return -1;
     }
@@ -580,7 +579,7 @@ compute_enum_values (parmpy_object *self, PyObject *enum_values)
 
   if (! PySequence_Check (enum_values))
     {
-      PyErr_SetString (PyExc_RuntimeError, 
+      PyErr_SetString (PyExc_RuntimeError,
                       _("The enumeration is not a sequence."));
       return 0;
     }
@@ -590,7 +589,7 @@ compute_enum_values (parmpy_object *self, PyObject *enum_values)
     return 0;
   if (size == 0)
     {
-      PyErr_SetString (PyExc_RuntimeError, 
+      PyErr_SetString (PyExc_RuntimeError,
                       _("The enumeration is empty."));
       return 0;
     }
@@ -612,7 +611,7 @@ compute_enum_values (parmpy_object *self, PyObject *enum_values)
        {
          Py_DECREF (item);
          do_cleanups (back_to);
-         PyErr_SetString (PyExc_RuntimeError, 
+         PyErr_SetString (PyExc_RuntimeError,
                           _("The enumeration item not a string."));
          return 0;
        }
@@ -663,7 +662,6 @@ parmpy_init (PyObject *self, PyObject *args, PyObject *kwds)
   int parmclass, cmdtype;
   PyObject *enum_values = NULL;
   struct cmd_list_element **set_list, **show_list;
-  volatile struct gdb_exception except;
 
   if (! PyArg_ParseTuple (args, "sii|O", &name, &cmdtype, &parmclass,
                          &enum_values))
@@ -725,14 +723,14 @@ parmpy_init (PyObject *self, PyObject *args, PyObject *kwds)
 
   Py_INCREF (self);
 
-  TRY_CATCH (except, RETURN_MASK_ALL)
+  TRY
     {
       add_setshow_generic (parmclass, (enum command_class) cmdtype,
                           cmd_name, obj,
                           set_doc, show_doc,
                           doc, set_list, show_list);
     }
-  if (except.reason < 0)
+  CATCH (except, RETURN_MASK_ALL)
     {
       xfree (cmd_name);
       xfree (set_doc);
@@ -744,6 +742,8 @@ parmpy_init (PyObject *self, PyObject *args, PyObject *kwds)
                    "%s", except.message);
       return -1;
     }
+  END_CATCH
+
   return 0;
 }
 
@@ -780,7 +780,7 @@ gdbpy_initialize_parameters (void)
 
 \f
 
-static PyTypeObject parmpy_object_type =
+PyTypeObject parmpy_object_type =
 {
   PyVarObject_HEAD_INIT (NULL, 0)
   "gdb.Parameter",               /*tp_name*/
This page took 0.027066 seconds and 4 git commands to generate.