diff options
author | Pedro Alves <palves@redhat.com> | 2013-05-21 20:53:21 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2013-05-21 20:53:21 +0000 |
commit | c8c735b96348ead98a7ddeb25a5eed4912586396 (patch) | |
tree | 7b60b5ecb7cedf471fa2f927fce6cea0a4e92693 | |
parent | 1915daebe6683fb1cdd42c87a6db5532a396bbc6 (diff) | |
download | fsf-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/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/python/py-prettyprint.c | 6 | ||||
-rw-r--r-- | gdb/python/py-utils.c | 3 |
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 |