The only difference between Py_DECREF and Py_XDECREF is that the latter allows passing
in a NULL object, while the former prohibits it. Given that, it's natural to expect
the same from py_decref vs py_xdecref.
gdb/
2013-05-21 Pedro Alves <palves@redhat.com>
* python/py-prettyprint.c (apply_val_pretty_printer): Check
whether PRINTER is NULL before installing a Py_DECREF cleanup.
* python/py-utils.c (py_decref): Don't check for NULL before
calling Py_DECREF.
+2013-05-21 Pedro Alves <palves@redhat.com>
+
+ * python/py-prettyprint.c (apply_val_pretty_printer): Check
+ whether PRINTER is NULL before installing a Py_DECREF cleanup.
+ * python/py-utils.c (py_decref): Don't check for NULL before
+ calling Py_DECREF.
+
2013-05-21 Pedro Alves <palves@redhat.com>
* python/py-utils.c (py_decref): Remove extra braces.
/* Find the constructor. */
printer = find_pretty_printer (val_obj);
Py_DECREF (val_obj);
+
+ if (printer == NULL)
+ goto done;
+
make_cleanup_py_decref (printer);
- if (! printer || printer == Py_None)
+ if (printer == Py_None)
goto done;
/* If we are printing a map, we want some special formatting. */
{
PyObject *py = p;
- if (py)
- Py_DECREF (py);
+ Py_DECREF (py);
}
/* Return a new cleanup which will decrement the Python object's