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

Commitcc71cc9

Browse files
gh-85283: Add PyMem_RawMalloc() to the limited C API (#108570)
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.Co-authored-by: Erlend E. Aasland <erlend@python.org>
1 parentcf9c25c commitcc71cc9

File tree

8 files changed

+39
-6
lines changed

8 files changed

+39
-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: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1053,6 +1053,11 @@ New Features
10531053
parameter names.
10541054
(Contributed by Serhiy Storchaka in:gh:`110815`.)
10551055

1056+
* Add:c:func:`PyMem_RawMalloc`,:c:func:`PyMem_RawCalloc`,
1057+
:c:func:`PyMem_RawRealloc` and:c:func:`PyMem_RawFree` to the limited C API
1058+
(version 3.13).
1059+
(Contributed by Victor Stinner in:gh:`85283`.)
1060+
10561061
Porting to Python 3.13
10571062
----------------------
10581063

‎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
@@ -2466,3 +2466,11 @@
24662466
added ='3.13'
24672467
[function.PyUnicode_EqualToUTF8AndSize]
24682468
added ='3.13'
2469+
[function.PyMem_RawMalloc]
2470+
added ='3.13'
2471+
[function.PyMem_RawCalloc]
2472+
added ='3.13'
2473+
[function.PyMem_RawRealloc]
2474+
added ='3.13'
2475+
[function.PyMem_RawFree]
2476+
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