bpo-35452: Make PySys_HasWarnOptions() never raising an exception. (GH-11075)
(cherry picked from commit dffccc6b594951fc798973e521da205785823f0f)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index a048507..efe5b29 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -1823,7 +1823,8 @@
PySys_HasWarnOptions(void)
{
PyObject *warnoptions = _PySys_GetObjectId(&PyId_warnoptions);
- return (warnoptions != NULL && (PyList_Size(warnoptions) > 0)) ? 1 : 0;
+ return (warnoptions != NULL && PyList_Check(warnoptions)
+ && PyList_GET_SIZE(warnoptions) > 0);
}
static PyObject *