bpo-38465: Convert the type of exports counters to Py_ssize_t. (GH-16746)
diff --git a/Include/bytearrayobject.h b/Include/bytearrayobject.h
index a757b88..647a17a 100644
--- a/Include/bytearrayobject.h
+++ b/Include/bytearrayobject.h
@@ -22,11 +22,10 @@
#ifndef Py_LIMITED_API
typedef struct {
PyObject_VAR_HEAD
- Py_ssize_t ob_alloc; /* How many bytes allocated in ob_bytes */
- char *ob_bytes; /* Physical backing buffer */
- char *ob_start; /* Logical start inside ob_bytes */
- /* XXX(nnorwitz): should ob_exports be Py_ssize_t? */
- int ob_exports; /* How many buffer exports */
+ Py_ssize_t ob_alloc; /* How many bytes allocated in ob_bytes */
+ char *ob_bytes; /* Physical backing buffer */
+ char *ob_start; /* Logical start inside ob_bytes */
+ Py_ssize_t ob_exports; /* How many buffer exports */
} PyByteArrayObject;
#endif
diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-10-19-12-44-13.bpo-38465.V1L8c4.rst b/Misc/NEWS.d/next/Core and Builtins/2019-10-19-12-44-13.bpo-38465.V1L8c4.rst
new file mode 100644
index 0000000..4f77ebb
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2019-10-19-12-44-13.bpo-38465.V1L8c4.rst
@@ -0,0 +1 @@
+:class:`bytearray`, :class:`~array.array` and :class:`~mmap.mmap` objects allow now to export more than 2**31 buffers at a time.
\ No newline at end of file
diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c
index 6aa981d..5ba2618 100644
--- a/Modules/arraymodule.c
+++ b/Modules/arraymodule.c
@@ -43,7 +43,7 @@
Py_ssize_t allocated;
const struct arraydescr *ob_descr;
PyObject *weakreflist; /* List of weak references */
- int ob_exports; /* Number of exported buffers */
+ Py_ssize_t ob_exports; /* Number of exported buffers */
} arrayobject;
static PyTypeObject Arraytype;
diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c
index a3b9e4d..a5c0ae0 100644
--- a/Modules/mmapmodule.c
+++ b/Modules/mmapmodule.c
@@ -97,7 +97,7 @@
#else
off_t offset;
#endif
- int exports;
+ Py_ssize_t exports;
#ifdef MS_WINDOWS
HANDLE map_handle;