Mercurial > public > mercurial-scm > hg
comparison mercurial/util.py @ 51846:f5c46c3518a5
util: make buffer readonly
There is no use of writable buffers anywhere in the code, and this helps us
make sure we don't get into unsound territory when sharing memory with Rust.
This `toreadonly` method was not available in Python 3.6, but we dropped the
support for it earlier that week, so no need for any compatibility code.
author | Rapha?l Gom?s <rgomes@octobus.net> |
---|---|
date | Tue, 26 Mar 2024 15:51:31 +0000 |
parents | 62806be5cbda |
children | f4733654f144 |
comparison
equal
deleted
inserted
replaced
51845:4dc1fc2b2f3a | 51846:f5c46c3518a5 |
---|---|
331 buffer = buffer # pytype: disable=name-error | 331 buffer = buffer # pytype: disable=name-error |
332 except NameError: | 332 except NameError: |
333 | 333 |
334 def buffer(sliceable, offset=0, length=None): | 334 def buffer(sliceable, offset=0, length=None): |
335 if length is not None: | 335 if length is not None: |
336 return memoryview(sliceable)[offset : offset + length] | 336 view = memoryview(sliceable)[offset : offset + length] |
337 return memoryview(sliceable)[offset:] | 337 else: |
338 view = memoryview(sliceable)[offset:] | |
339 return view.toreadonly() | |
338 | 340 |
339 | 341 |
340 _chunksize = 4096 | 342 _chunksize = 4096 |
341 | 343 |
342 | 344 |