gh-152433: Windows: use GetFileSizeEx instead of GetFileSize#152383
Conversation
|
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the |
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
|
Thanks @thexai! Since you have more PRs in the pipeline: per our devguide please do not force-push (this makes reviewing harder, we finally squash-merge the PR anyway) or merge with main without a good reason. TiA. |
* 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) ...
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.