From d5ecabca706d405ec71eef3be1281f20b5710392 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Fri, 19 Jun 2020 21:08:14 +0200 Subject: [PATCH 06/21] python: simplify get_logger_object (#44287) --- bindings/python/wrapper_top.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/bindings/python/wrapper_top.c b/bindings/python/wrapper_top.c index 5a7fd8c3..67502918 100644 --- a/bindings/python/wrapper_top.c +++ b/bindings/python/wrapper_top.c @@ -676,27 +676,27 @@ set_object_field(GObject **a_gobject_ptr, PyGObjectPtr *a_pygobject) { static PyObject *get_logger_object(const char *domain) { static PyObject *_logger_object = NULL; + PyObject *lasso_module = NULL; + PyObject *logging_module = NULL; - PyObject *logging_module = PyImport_ImportModule("lasso"); - - if (logging_module) { - _logger_object = PyObject_GetAttrString(logging_module, "logger"); - Py_DECREF(logging_module); + lasso_module = PyImport_ImportModule("lasso"); + if (lasso_module && PyObject_HasAttrString(lasso_module, "logger")) { + _logger_object = PyObject_GetAttrString(lasso_module, "logger"); if (_logger_object) goto exit; } - /* XXX: needed so that PyImport_ImportModule("logging") always works */ - logging_module = PyImport_ImportModule("sys"); + + logging_module = PyImport_ImportModule("logging"); if (logging_module) { - Py_DECREF(logging_module); + _logger_object = PyObject_CallMethod(logging_module, "getLogger", "s", domain); + } +exit: + if (lasso_module) { + Py_DECREF(lasso_module); } - logging_module = PyImport_ImportModule("logging"); if (logging_module) { - _logger_object = PyObject_CallMethod(logging_module, "getLogger", - "s#", domain, strlen(domain)); Py_DECREF(logging_module); } -exit: if (_logger_object == Py_None) { Py_DECREF(_logger_object); _logger_object = NULL; -- 2.26.2