Python: Do some cleanup in nxt_python3_init_config().

This is a preparatory patch for future work and cleans up the code a
little in the Python 3.8+ variant of nxt_python3_init_config().

The main advantage being we no longer have calls to PyConfig_Clear() in
two different paths.

The variables have a little extra space in their declarations to allow
for the next patch which introduces a variable with a longer type name,
which will help reduce the size of the diff.

Reviewed-by: Alejandro Colomar <alx@nginx.com>
Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
This commit is contained in:
Andrew Clayton 2022-12-30 00:07:20 +00:00
parent 2596a89527
commit fcbb26e92a

View file

@ -75,8 +75,11 @@ static nxt_python_proto_t nxt_py_proto;
static nxt_int_t static nxt_int_t
nxt_python3_init_config(nxt_int_t pep405) nxt_python3_init_config(nxt_int_t pep405)
{ {
PyStatus status; PyConfig config;
PyConfig config; PyStatus status;
nxt_int_t ret;
ret = NXT_ERROR;
PyConfig_InitIsolatedConfig(&config); PyConfig_InitIsolatedConfig(&config);
@ -84,29 +87,28 @@ nxt_python3_init_config(nxt_int_t pep405)
status = PyConfig_SetString(&config, &config.program_name, status = PyConfig_SetString(&config, &config.program_name,
nxt_py_home); nxt_py_home);
if (PyStatus_Exception(status)) { if (PyStatus_Exception(status)) {
goto pyinit_exception; goto out_config_clear;
} }
} else { } else {
status =PyConfig_SetString(&config, &config.home, nxt_py_home); status = PyConfig_SetString(&config, &config.home, nxt_py_home);
if (PyStatus_Exception(status)) { if (PyStatus_Exception(status)) {
goto pyinit_exception; goto out_config_clear;
} }
} }
status = Py_InitializeFromConfig(&config); status = Py_InitializeFromConfig(&config);
if (PyStatus_Exception(status)) { if (PyStatus_Exception(status)) {
goto pyinit_exception; goto out_config_clear;
} }
PyConfig_Clear(&config);
return NXT_OK; ret = NXT_OK;
pyinit_exception: out_config_clear:
PyConfig_Clear(&config); PyConfig_Clear(&config);
return NXT_ERROR; return ret;
} }
#elif PY_MAJOR_VERSION == 3 #elif PY_MAJOR_VERSION == 3