aboutsummaryrefslogtreecommitdiff
path: root/gdb/python/python-value.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/python/python-value.c')
-rw-r--r--gdb/python/python-value.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/gdb/python/python-value.c b/gdb/python/python-value.c
index c4217d5..3d88aa3 100644
--- a/gdb/python/python-value.c
+++ b/gdb/python/python-value.c
@@ -693,7 +693,10 @@ valpy_richcompare (PyObject *self, PyObject *other, int op)
{
value_other = convert_value_from_python (other);
if (value_other == NULL)
- return NULL;
+ {
+ result = -1;
+ break;
+ }
switch (op) {
case Py_LT:
@@ -720,11 +723,16 @@ valpy_richcompare (PyObject *self, PyObject *other, int op)
/* Can't happen. */
PyErr_SetString (PyExc_NotImplementedError,
"Invalid operation on gdb.Value.");
- return NULL;
+ result = -1;
+ break;
}
}
GDB_PY_HANDLE_EXCEPTION (except);
+ /* In this case, the Python exception has already been set. */
+ if (result < 0)
+ return NULL;
+
if (result == 1)
Py_RETURN_TRUE;