summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHai Shi <shihai1992@gmail.com>2019-10-21 06:31:46 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2019-10-21 06:31:46 (GMT)
commit06cd5b6acd98205adae1a3ea4223e88f38ad55ab (patch)
treed4885a7094f79264d7a714c3b5f8d4cad813d16f
parent74142078b3b78fea7b4cd791e5c577c0c0964eb7 (diff)
downloadcpython-06cd5b6acd98205adae1a3ea4223e88f38ad55ab.zip
cpython-06cd5b6acd98205adae1a3ea4223e88f38ad55ab.tar.gz
cpython-06cd5b6acd98205adae1a3ea4223e88f38ad55ab.tar.bz2
bpo-38465: Convert the type of exports counters to Py_ssize_t. (GH-16746)
-rw-r--r--Include/bytearrayobject.h9
-rw-r--r--Misc/NEWS.d/next/Core and Builtins/2019-10-19-12-44-13.bpo-38465.V1L8c4.rst1
-rw-r--r--Modules/arraymodule.c2
-rw-r--r--Modules/mmapmodule.c2
4 files changed, 7 insertions, 7 deletions
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 @@ extern "C" {
#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 @@ typedef struct arrayobject {
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 @@ typedef struct {
#else
off_t offset;
#endif
- int exports;
+ Py_ssize_t exports;
#ifdef MS_WINDOWS
HANDLE map_handle;