bpo-11717: fix ssize_t redefinition error when targeting 32bit Window… · python/cpython@c994ffe (original) (raw)

File tree

5 files changed

lines changed

5 files changed

lines changed

Original file line number Diff line number Diff line change
@@ -101,7 +101,9 @@ typedef intptr_t Py_intptr_t;
101 101 * sizeof(size_t). C99 doesn't define such a thing directly (size_t is an
102 102 * unsigned integral type). See PEP 353 for details.
103 103 */
104 -#ifdef HAVE_SSIZE_T
104 +#ifdef HAVE_PY_SSIZE_T
105 +
106 +#elif HAVE_SSIZE_T
105 107 typedef ssize_t Py_ssize_t;
106 108 #elif SIZEOF_VOID_P == SIZEOF_SIZE_T
107 109 typedef Py_intptr_t Py_ssize_t;
Original file line number Diff line number Diff line change
@@ -24,7 +24,7 @@ _Py_IDENTIFIER(n_sequence_fields);
24 24 _Py_IDENTIFIER(n_fields);
25 25 _Py_IDENTIFIER(n_unnamed_fields);
26 26
27 -static ssize_t
27 +static Py_ssize_t
28 28 get_type_attr_as_size(PyTypeObject *tp, _Py_Identifier *id)
29 29 {
30 30 PyObject *name = _PyUnicode_FromId(id);
Original file line number Diff line number Diff line change
@@ -165,11 +165,11 @@ WIN32 is still required for the locale module.
165 165
166 166 /* Define like size_t, omitting the "unsigned" */
167 167 #ifdef MS_WIN64
168 -typedef __int64 ssize_t;
168 +typedef __int64 Py_ssize_t;
169 169 #else
170 -typedef _W64 int ssize_t;
170 +typedef _W64 int Py_ssize_t;
171 171 #endif
172 -#define HAVE_SSIZE_T 1
172 +#define HAVE_PY_SSIZE_T 1
173 173
174 174 #if defined(MS_WIN32) && !defined(MS_WIN64)
175 175 #if defined(_M_IX86)