Skip to content

Commit 8948ed8

Browse files
fix flush
1 parent ff5b964 commit 8948ed8

File tree

2 files changed

+22
-44
lines changed

2 files changed

+22
-44
lines changed

Modules/clinic/mmapmodule.c.h

Lines changed: 10 additions & 40 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Modules/mmapmodule.c

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1022,18 +1022,26 @@ mmap_mmap_tell_impl(mmap_object *self)
10221022
mmap.mmap.flush
10231023
10241024
offset: Py_ssize_t = 0
1025-
size: Py_ssize_t = -1
1025+
size as size_obj: object = None
10261026
/
10271027
10281028
[clinic start generated code]*/
10291029

10301030
static PyObject *
1031-
mmap_mmap_flush_impl(mmap_object *self, Py_ssize_t offset, Py_ssize_t size)
1032-
/*[clinic end generated code: output=956ced67466149cf input=c50b893bc69520ec]*/
1031+
mmap_mmap_flush_impl(mmap_object *self, Py_ssize_t offset,
1032+
PyObject *size_obj)
1033+
/*[clinic end generated code: output=41a10c349ed1608a input=7e6bb8f9462f53e6]*/
10331034
{
1034-
mmap_object *self = mmap_object_CAST(op);
1035+
Py_ssize_t size = self->size;
10351036
CHECK_VALID(NULL);
10361037

1038+
if (size_obj != Py_None) {
1039+
size = _As_Py_ssize_t(size_obj);
1040+
if (size == -1 && PyErr_Occurred()) {
1041+
return NULL;
1042+
}
1043+
}
1044+
10371045
if (size < 0 || offset < 0 || self->size - offset < size) {
10381046
PyErr_SetString(PyExc_ValueError, "flush values out of range");
10391047
return NULL;

0 commit comments

Comments
 (0)