aboutsummaryrefslogtreecommitdiff
path: root/gdb/python/py-param.c
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@embecosm.com>2022-10-21 08:54:18 +0100
committerMaciej W. Rozycki <macro@embecosm.com>2022-10-21 08:54:18 +0100
commitc506be7d9be55721a44d38782309d8f7fcd5e99e (patch)
tree412252debb54d25d9cbfa7d660c145bbe99620eb /gdb/python/py-param.c
parente7e1f2034567207e5e01cb75ea2ffd568a64e84d (diff)
downloadgdb-c506be7d9be55721a44d38782309d8f7fcd5e99e.zip
gdb-c506be7d9be55721a44d38782309d8f7fcd5e99e.tar.gz
gdb-c506be7d9be55721a44d38782309d8f7fcd5e99e.tar.bz2
GDB/Python: Make `None' stand for `unlimited' in setting integer parameters
Similarly to booleans and following the fix for PR python/29217 make `gdb.parameter' accept `None' for `unlimited' with parameters of the PARAM_UINTEGER, PARAM_INTEGER, and PARAM_ZUINTEGER_UNLIMITED types, as `None' is already returned by parameters of the two former types, so one might expect to be able to feed it back. It also makes it possible to avoid the need to know what the internal integer representation is for the special setting of `unlimited'. Expand the testsuite accordingly. Approved-By: Simon Marchi <simon.marchi@polymtl.ca>
Diffstat (limited to 'gdb/python/py-param.c')
-rw-r--r--gdb/python/py-param.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/gdb/python/py-param.c b/gdb/python/py-param.c
index 5d509ba..cab0c56 100644
--- a/gdb/python/py-param.c
+++ b/gdb/python/py-param.c
@@ -243,14 +243,18 @@ set_parameter_value (parmpy_object *self, PyObject *value)
long l;
int ok;
- if (!PyLong_Check (value))
+ if (value == Py_None
+ && (self->type == var_uinteger || self->type == var_integer))
+ l = 0;
+ else if (value == Py_None && self->type == var_zuinteger_unlimited)
+ l = -1;
+ else if (!PyLong_Check (value))
{
PyErr_SetString (PyExc_RuntimeError,
_("The value must be integer."));
return -1;
}
-
- if (! gdb_py_int_as_long (value, &l))
+ else if (! gdb_py_int_as_long (value, &l))
return -1;
switch (self->type)