diff options
Diffstat (limited to 'gdb/python/py-prettyprint.c')
-rw-r--r-- | gdb/python/py-prettyprint.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/gdb/python/py-prettyprint.c b/gdb/python/py-prettyprint.c index 434c8a593d..7aa83bce41 100644 --- a/gdb/python/py-prettyprint.c +++ b/gdb/python/py-prettyprint.c @@ -49,9 +49,20 @@ search_pp_list (PyObject *list, PyObject *value) return NULL; /* Skip if disabled. */ - if (PyObject_HasAttr (function, gdbpy_enabled_cst) - && ! PyObject_IsTrue (PyObject_GetAttr (function, gdbpy_enabled_cst))) - continue; + if (PyObject_HasAttr (function, gdbpy_enabled_cst)) + { + PyObject *attr = PyObject_GetAttr (function, gdbpy_enabled_cst); + int cmp; + + if (!attr) + return NULL; + cmp = PyObject_IsTrue (attr); + if (cmp == -1) + return NULL; + + if (!cmp) + continue; + } printer = PyObject_CallFunctionObjArgs (function, value, NULL); if (! printer) |