See also PyUnicode_KIND_SIZE(). */
#define PyUnicode_CHARACTER_SIZE(op) \
- (1 << (PyUnicode_KIND(op) - 1))
+ ((Py_ssize_t) (1 << (PyUnicode_KIND(op) - 1)))
/* Return pointers to the canonical representation cast to unsigned char,
Py_UCS2, or Py_UCS4 for direct character access.
The index is a character index, the result is a size in bytes.
See also PyUnicode_CHARACTER_SIZE(). */
-#define PyUnicode_KIND_SIZE(kind, index) ((index) << ((kind) - 1))
+#define PyUnicode_KIND_SIZE(kind, index) \
+ ((Py_ssize_t) ((index) << ((kind) - 1)))
/* In the access macros below, "kind" may be evaluated more than once.
All other macro parameters are evaluated exactly once, so it is safe
/* fill in a SubString from a pointer and length */
Py_LOCAL_INLINE(void)
-SubString_init(SubString *str, PyObject *s, int start, int end)
+SubString_init(SubString *str, PyObject *s, Py_ssize_t start, Py_ssize_t end)
{
str->str = s;
str->start = start;