aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2013-05-21 20:53:21 +0000
committerPedro Alves <palves@redhat.com>2013-05-21 20:53:21 +0000
commitc8c735b96348ead98a7ddeb25a5eed4912586396 (patch)
tree7b60b5ecb7cedf471fa2f927fce6cea0a4e92693
parent1915daebe6683fb1cdd42c87a6db5532a396bbc6 (diff)
downloadfsf-binutils-gdb-c8c735b96348ead98a7ddeb25a5eed4912586396.zip
fsf-binutils-gdb-c8c735b96348ead98a7ddeb25a5eed4912586396.tar.gz
fsf-binutils-gdb-c8c735b96348ead98a7ddeb25a5eed4912586396.tar.bz2
py_decref: Don't check for NULL before calling Py_DECREF.
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.
-rw-r--r--gdb/ChangeLog7
-rw-r--r--gdb/python/py-prettyprint.c6
-rw-r--r--gdb/python/py-utils.c3
3 files changed, 13 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 32c5558..24e5eb4 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,12 @@
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.
(gdb_pymodule_addobject): Remove extra braces.
* python-internal.h (gdb_Py_DECREF): New static inline function.
diff --git a/gdb/python/py-prettyprint.c b/gdb/python/py-prettyprint.c
index 8c45cd6..8fa2f42 100644
--- a/gdb/python/py-prettyprint.c
+++ b/gdb/python/py-prettyprint.c
@@ -735,8 +735,12 @@ apply_val_pretty_printer (struct type *type, const gdb_byte *valaddr,
/* 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. */
diff --git a/gdb/python/py-utils.c b/gdb/python/py-utils.c
index 80bacf7..7c7c5ca 100644
--- a/gdb/python/py-utils.c
+++ b/gdb/python/py-utils.c
@@ -31,8 +31,7 @@ py_decref (void *p)
{
PyObject *py = p;
- if (py)
- Py_DECREF (py);
+ Py_DECREF (py);
}
/* Return a new cleanup which will decrement the Python object's