gh-152433: Windows: use GetFileSizeEx instead of GetFileSize - #152383
Conversation
This change is transparent: users won't notice anything different. |
chris-eibl
left a comment
There was a problem hiding this comment.
Thanks, LGTM. Even less code and works the same as before on all supported Windows platforms.
I'm on the fence regarding a news entry - leaving it up to @zooba
fb47fb6 to
8b9c4cb
Compare
zooba
left a comment
There was a problem hiding this comment.
Approved with an update to NEWS to mention that it affects mmap/memory-mapped files. I suggested a wording that's fine, but if you want to word it differently or reference specific functions, go ahead.
| @@ -0,0 +1 @@ | |||
| Replace ``GetFileSize()`` with ``GetFileSizeEx()``, which is UWP compatible. | |||
There was a problem hiding this comment.
| Replace ``GetFileSize()`` with ``GetFileSizeEx()``, which is UWP compatible. | |
| Use the Windows API ``GetFileSizeEx()`` for memory mapped files, rather than the older ``GetFileSize()``. |
2791f86 to
7952170
Compare
GetFileSizeEx is available in all supported Windows versions and has the advantage is also present in UWP, then allows build also in UWP with the same common code. It also simplifies error checking and makes handling files larger than 4GB easier.
7952170 to
bbf56b4
Compare
* main: (266 commits) pythongh-151626: Fix tests that fail when PYTHONPYCACHEPREFIX is set (pythonGH-151952) pythongh-152728: IDLE - move 3 toplevel fix_xyz functions to idlelb.util (python#152729) pythongh-152711: Add pythoninfo-build command to Platforms/Android (python#152713) pythongh-152715: Add pythoninfo-build command to Platforms/Apple (python#152716) pythongh-152433: Windows: enable mmapmodule for UWP (python#152473) pythongh-152433: Windows: use GetFileSizeEx instead of GetFileSize for memory mapped files (python#152383) pythonGH-81881: Raise `SpecialFileError` for sockets and devices in `shutil.copyfile` (python#142693) pythongh-152502: Detect the curses mouse interface and is_* methods portably (pythonGH-152705) pythongh-145857: Replace `DELETE_GLOBAL` with `PUSH_NULL; STORE_GLOBAL` (pythonGH-146314) pythongh-145854: Replace `DELETE_NAME` with `PUSH_NULL; STORE_NAME` (pythonGH-146006) pythongh-152680: Detect container/VM in test.pythoninfo (python#152668) pythongh-152682: Fix NULL dereference on OOM in `symtable_visit_type_param_bound_or_default` (python#152684) pythongh-151881: Skip tk_inactive negativity check on Windows (pythonGH-152683) pythongh-152546: Refactor `mappingproxy.__new__` to use `PyDictProxy_New` (python#152547) pythongh-151126: Fix a possible crash during the startup with no memory under `Py_STACKREF_DEBUG` (python#152478) pythongh-152635: Raise MemoryError when the lock allocation fails in `_interpchannels.create()` (python#152642) pythongh-151029: Fix `test_remote_exec_deleted_static_executable` on static installed builds (pythonGH-152653) pythongh-121249: Deprecate using F/D type codes in the struct module (python#152309) pythongh-152192: Fix JUMP_BACKWARD passing a truncated oparg to the jit tracer (pythonGH-152382) Don't require the `_test{internal}capi` modules in `test_monitoring.py` (python#152311) ...
…r memory mapped files (python#152383)

GetFileSizeEx is available in all supported Windows versions and has the advantage is also present in UWP, then allows build also in UWP with the same common code.
It also simplifies error checking and makes handling files larger than 4GB easier.
The ultimate goal is to upstream some of Kodi patches required to build Python for Xbox... This is just the first step.