Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitae2f355

Browse files
erlend-aaslandvstinner
authored andcommitted
gh-85283: Add PyMem_RawMalloc() to the limited C API
Add PyMem_RawMalloc(), PyMem_RawCalloc(), PyMem_RawRealloc() andPyMem_RawFree() to the limited C API.These functions were added by Python 3.4 and are needed to portstdlib extensions to the limited C API, like grp and pwd.
1 parent2c23419 commitae2f355

File tree

8 files changed

+38
-6
lines changed

8 files changed

+38
-6
lines changed

‎Doc/data/stable_abi.dat

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎Doc/whatsnew/3.13.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -977,6 +977,10 @@ New Features
977977
references) now supports the:ref:`Limited API<limited-c-api>`.
978978
(Contributed by Victor Stinner in:gh:`108634`.)
979979

980+
* Add:c:func:`PyMem_RawMalloc`,:c:func:`PyMem_RawCalloc`,
981+
:c:func:`PyMem_RawRealloc` and:c:func:`PyMem_RawFree` to the limited C API.
982+
(Contributed by Victor Stinner in:gh:`85283`.)
983+
980984
Porting to Python 3.13
981985
----------------------
982986

‎Include/cpython/pymem.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,6 @@
22
# error "this header file must not be included directly"
33
#endif
44

5-
PyAPI_FUNC(void*)PyMem_RawMalloc(size_tsize);
6-
PyAPI_FUNC(void*)PyMem_RawCalloc(size_tnelem,size_telsize);
7-
PyAPI_FUNC(void*)PyMem_RawRealloc(void*ptr,size_tnew_size);
8-
PyAPI_FUNC(void)PyMem_RawFree(void*ptr);
9-
10-
115
typedefenum {
126
/* PyMem_RawMalloc(), PyMem_RawRealloc() and PyMem_RawFree() */
137
PYMEM_DOMAIN_RAW,

‎Include/pymem.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,17 @@ PyAPI_FUNC(void) PyMem_Free(void *ptr);
8787
#definePyMem_DEL(p) PyMem_Free((p))
8888

8989

90+
#if !defined(Py_LIMITED_API)||Py_LIMITED_API+0 >=0x030d0000
91+
// Memory allocator which doesn't require the GIL to be held.
92+
// Usually, it's just a thin wrapper to functions of the standard C library:
93+
// malloc(), calloc(), realloc() and free(). The difference is that
94+
// tracemalloc can track these memory allocations.
95+
PyAPI_FUNC(void*)PyMem_RawMalloc(size_tsize);
96+
PyAPI_FUNC(void*)PyMem_RawCalloc(size_tnelem,size_telsize);
97+
PyAPI_FUNC(void*)PyMem_RawRealloc(void*ptr,size_tnew_size);
98+
PyAPI_FUNC(void)PyMem_RawFree(void*ptr);
99+
#endif
100+
90101
#ifndefPy_LIMITED_API
91102
# definePy_CPYTHON_PYMEM_H
92103
# include"cpython/pymem.h"

‎Lib/test/test_stable_abi_ctypes.py

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Add:c:func:`PyMem_RawMalloc`,:c:func:`PyMem_RawCalloc`,
2+
:c:func:`PyMem_RawRealloc` and:c:func:`PyMem_RawFree` to the limited C API.
3+
Patch by Victor Stinner.

‎Misc/stable_abi.toml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2464,3 +2464,11 @@
24642464
added ='3.13'
24652465
[function.PyMapping_HasKeyStringWithError]
24662466
added ='3.13'
2467+
[function.PyMem_RawMalloc]
2468+
added ='3.13'
2469+
[function.PyMem_RawCalloc]
2470+
added ='3.13'
2471+
[function.PyMem_RawRealloc]
2472+
added ='3.13'
2473+
[function.PyMem_RawFree]
2474+
added ='3.13'

‎PC/python3dll.c

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp