aboutsummaryrefslogtreecommitdiff
path: root/gdb/python/py-evtregistry.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2022-06-03 07:59:49 -0600
committerTom Tromey <tromey@adacore.com>2022-07-05 10:28:39 -0600
commit3acd9a692ddaf8f24d6d34cb5ccb7c26d057e9b3 (patch)
tree19216ecf8b1235823b9251f84710982be599e5f8 /gdb/python/py-evtregistry.c
parent736918239b16cc2ff57bfc64a982f2f0afc8c0f6 (diff)
downloadbinutils-3acd9a692ddaf8f24d6d34cb5ccb7c26d057e9b3.zip
binutils-3acd9a692ddaf8f24d6d34cb5ccb7c26d057e9b3.tar.gz
binutils-3acd9a692ddaf8f24d6d34cb5ccb7c26d057e9b3.tar.bz2
Make 'import gdb.events' work
Pierre-Marie noticed that, while gdb.events is a Python module, it can't be imported. This patch changes how this module is created, so that it can be imported, while also ensuring that the module is always visible, just as it was in the past. This new approach required one non-obvious change -- when running gdb.base/warning.exp, where --data-directory is intentionally not found, the event registries can now be nullptr. Consequently, this patch probably also requires https://sourceware.org/pipermail/gdb-patches/2022-June/189796.html Note that this patch obsoletes https://sourceware.org/pipermail/gdb-patches/2022-June/189797.html
Diffstat (limited to 'gdb/python/py-evtregistry.c')
-rw-r--r--gdb/python/py-evtregistry.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gdb/python/py-evtregistry.c b/gdb/python/py-evtregistry.c
index ef96c48..f3a7f0c 100644
--- a/gdb/python/py-evtregistry.c
+++ b/gdb/python/py-evtregistry.c
@@ -118,7 +118,9 @@ gdbpy_initialize_eventregistry (void)
bool
evregpy_no_listeners_p (eventregistry_object *registry)
{
- return PyList_Size (registry->callbacks) == 0;
+ /* REGISTRY can be nullptr if gdb failed to find the data directory
+ at startup. */
+ return registry == nullptr || PyList_Size (registry->callbacks) == 0;
}
static PyMethodDef eventregistry_object_methods[] =