Comments (7)
from cpython.
Andrew, I'm not sure if you can review patches for Windows, but since it's your module, I'd like you to have a look at this first. Tim should get it next.
from cpython.
The patches look OK, particularly the fixing of the seek()
method. I'm not sure why various casts are changed from (long) to (int), and wonder if those casts could simply be removed, but that's not a problem.
from cpython.
Best I can tell, this has already been checked in!
So marking Closed, and assigning back to AMK. Andrew, scream at me if I done wrong here.
from cpython.
I confirm that, to the best of my knowledge and belief, this
contribution is free of any claims of third parties under
copyright, patent or other rights or interests ("claims"). To
the extent that I have any such claims, I hereby grant to CNRI a
nonexclusive, irrevocable, royalty-free, worldwide license to
reproduce, distribute, perform and/or display publicly, prepare
derivative versions, and otherwise use this contribution as part
of the Python software and its related documentation, or any
derivative versions thereof, at no cost to CNRI or its licensed
users, and to authorize others to do so.
I acknowledge that CNRI may, at its sole discretion, decide
whether or not to incorporate this contribution in the Python
software and its related documentation. I further grant CNRI
permission to use my name and other identifying information
provided to CNRI by me for use in connection with the Python
software and its related documentation.
from cpython.
This patch fixes some issues in the mmap module. The changes are:
-
The use of HFILE for Win32 is no longer appropriate for Win32/64,
all of the associated system calls use a pointer length integer, hence HFILE
is replaced with INT_PTR (a Windows world typedef for this) -
Do proper bounds checking limiting the length of a mmap'd file to [0,
INT_MAX] (see _GetMapSize()). INT_MAX is chosen because this is the current
restriction on the length of Python objects and a mmap'd file larger than
this cannot be used effectively anyway. For instance a mmap'd file longer
than INT_MAX cannot be sliced beyond INT_MAX, or indexed, etc. Until the
limit on the size of Python objects increases then there is little use in
having larger mmap'd files. -
The mmap_seek is fairly significantly broken (seeking from the current
position or from the end are both borken, IIRC). This patch fixes that,
checks for possible out of range seek values, and extends test_mmap.py to
test this stuff. -
Use a C int for variables associated with the length field of Python
objects, this is what it is and the distinction matters on Linux64, for
example. -
Use safe number literals. (some unsigned)0xFFFFFFFF -> (some unsigned)-1
The former does not give the intended result iff 'some unsigned' is >
32-bits.
from cpython.
Some of the casts were changed from (long) to (int) because 'int' was the size being returned (for example in the length value to PyString_FromStringAndSize, or the mmap find method is specified to return an int and not a long, note that sizeof(int) != sizeof(long) on Linux64.
Note that this has already been checked in:
http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/python/dist/src/Modules/mmapmodule.c.diff?cvsroot=python&r1=2.12&r2=2.13&f=H
...and in the actual checkin the first cast to (int) was dropped anyway :). Maybe you did that yourself, Andrew.
from cpython.
Related Issues (20)
- PGO: compiler warnings for source files with no profile data HOT 4
- mimetypes raises UnicodeDecodeError when map files are not unicode encoded
- `ctypes.Structure` fields initialises incorrectly with `\x00`-containing bytes HOT 3
- Don't call `lookdict_index` in `delitemif_lock_held` HOT 2
- QueueListener never starts when configuring logging using dictConfig.
- zippapp/ macOS: .DS_Store files should be excluded from the generated archives HOT 6
- itertools.starmap can fail to construct a proper iterator HOT 10
- argparse: fix inconsistency in `add_argument()` API when using positional argument with `dest=` parameter
- I've made a simple patch.
- Regression in tricky __dict__ use. HOT 5
- Stalling of Multiprocessing.Pool HOT 2
- Shlex docs: improper syntax highlighting in code snippet HOT 1
- Builtin function for `ntpath.lexists` HOT 1
- readline module fails to build against recent libedit HOT 5
- TypeError in bisect when called with key argument HOT 4
- email.message: header value parser get_msg_id throws IndexError on some invalid RFC822 Message-ID HOT 4
- asyncgen.athrow() checks args on asyncgen.athrow().send() but should check them on asyncgen.athrow() HOT 1
- 递归错误 HOT 2
- Make `posix.getcwd()` as fast as `nt.getcwd()` HOT 4
- unittest.mock.patch('path') neither forwards or backwards compatible starting from Python >= v3.11 HOT 13
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cpython.