bpo-38304: Add PyConfig.struct_size (GH-16451)
Add a new struct_size field to PyPreConfig and PyConfig structures to
allow to modify these structures in the future without breaking the
backward compatibility.
* Replace private _config_version field with public struct_size field
in PyPreConfig and PyConfig.
* Public PyPreConfig_InitIsolatedConfig() and
PyPreConfig_InitPythonConfig()
return type becomes PyStatus, instead of void.
* Internal _PyConfig_InitCompatConfig(),
_PyPreConfig_InitCompatConfig(), _PyPreConfig_InitFromConfig(),
_PyPreConfig_InitFromPreConfig() return type becomes PyStatus,
instead of void.
* Remove _Py_CONFIG_VERSION
* Update the Initialization Configuration documentation.
diff --git a/Python/pathconfig.c b/Python/pathconfig.c
index 8126145..6886ab7 100644
--- a/Python/pathconfig.c
+++ b/Python/pathconfig.c
@@ -434,7 +434,12 @@
{
PyStatus status;
PyConfig config;
- _PyConfig_InitCompatConfig(&config);
+ config.struct_size = sizeof(PyConfig);
+
+ status = _PyConfig_InitCompatConfig(&config);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto done;
+ }
/* Call _PyConfig_InitPathConfig() */
status = PyConfig_Read(&config);