cpython/Modules
Victor Stinner b11a384dc7
gh-98724: Fix Py_CLEAR() macro side effects (#99100) (#100070)
The Py_CLEAR(), Py_SETREF() and Py_XSETREF() macros now only evaluate
their arguments once. If an argument has side effects, these side
effects are no longer duplicated.

Use temporary variables to avoid duplicating side effects of macro
arguments. If available, use _Py_TYPEOF() to avoid type punning.
Otherwise, use memcpy() for the assignment to prevent a
miscompilation with strict aliasing caused by type punning.

Add _Py_TYPEOF() macro: __typeof__() on GCC and clang.

Add test_py_clear() and test_py_setref() unit tests to _testcapi.
2022-12-07 15:22:38 +01:00
..
_blake2 gh-90928: Improve static initialization of keywords tuple in AC (#95907) 2022-08-13 12:09:40 +02:00
_ctypes gh-99337: Fix compile errors with gcc 12 on macOS (#99470) 2022-11-21 10:50:20 +01:00
_decimal gh-99845: Use size_t type in __sizeof__() methods (#99846) 2022-11-30 17:22:52 +01:00
_io bpo-15999: Accept arbitrary values for boolean parameters. (#15609) 2022-12-03 11:52:21 -08:00
_multiprocessing bpo-15999: Accept arbitrary values for boolean parameters. (#15609) 2022-12-03 11:52:21 -08:00
_sha3 gh-90928: Improve static initialization of keywords tuple in AC (#95907) 2022-08-13 12:09:40 +02:00
_sqlite bpo-15999: Accept arbitrary values for boolean parameters. (#15609) 2022-12-03 11:52:21 -08:00
_sre gh-99300: Use Py_NewRef() in Modules/ directory (#99468) 2022-11-14 13:44:56 +01:00
_ssl gh-99300: Use Py_NewRef() in Modules/ directory (#99468) 2022-11-14 13:44:56 +01:00
_testcapi GH-91054: Reset static events counts in code watchers tests (#99978) 2022-12-04 12:38:21 +00:00
_xxtestfuzz gh-73691: Increase size limits in _xxtestfuzz (#99070) 2022-11-03 14:41:20 -07:00
cjkcodecs bpo-15999: Accept arbitrary values for boolean parameters. (#15609) 2022-12-03 11:52:21 -08:00
clinic gh-93453: No longer create an event loop in get_event_loop() (#98440) 2022-12-06 18:42:12 +01:00
expat gh-98739: Update libexpat from 2.4.9 to 2.5.0 (#98742) 2022-10-27 13:45:12 -07:00
_abc.c gh-99537: Use Py_SETREF(var, NULL) in C code (#99687) 2022-11-23 14:57:50 +01:00
_asynciomodule.c gh-93453: No longer create an event loop in get_event_loop() (#98440) 2022-12-06 18:42:12 +01:00
_bisectmodule.c gh-96538: Fix refleak in _bisectmodule.c (gh-96619) 2022-09-06 19:37:18 -04:00
_bz2module.c gh-94401: Remove unneeded bz2 module state (#94402) 2022-06-29 17:51:36 +02:00
_codecsmodule.c bpo-15999: Accept arbitrary values for boolean parameters. (#15609) 2022-12-03 11:52:21 -08:00
_collectionsmodule.c gh-99845: Use size_t type in __sizeof__() methods (#99846) 2022-11-30 17:22:52 +01:00
_contextvarsmodule.c
_cryptmodule.c
_csv.c gh-99300: Use Py_NewRef() in Modules/ directory (#99466) 2022-11-14 13:08:15 +01:00
_curses_panel.c gh-98724: Fix warnings on Py_SETREF() usage (#99781) 2022-11-26 00:30:37 +01:00
_cursesmodule.c bpo-15999: Accept arbitrary values for boolean parameters. (#15609) 2022-12-03 11:52:21 -08:00
_datetimemodule.c gh-99537: Use Py_SETREF(var, NULL) in C code (#99687) 2022-11-23 14:57:50 +01:00
_dbmmodule.c gh-99300: Use Py_NewRef() in Modules/ directory (#99466) 2022-11-14 13:08:15 +01:00
_elementtree.c gh-99845: Use size_t type in __sizeof__() methods (#99846) 2022-11-30 17:22:52 +01:00
_functoolsmodule.c gh-99537: Use Py_SETREF() function in C code (#99656) 2022-11-22 14:22:22 +01:00
_gdbmmodule.c gh-99426: Use PyUnicode_FromFormat() and PyErr_Format() instead of sprintf (GH-99427) 2022-11-14 15:25:34 +02:00
_hashopenssl.c DOC: correct bytesarray -> bytearray in comments (GH-92410) 2022-06-21 22:04:03 +02:00
_heapqmodule.c gh-99300: Use Py_NewRef() in Modules/ directory (#99466) 2022-11-14 13:08:15 +01:00
_json.c bpo-15999: Accept arbitrary values for boolean parameters. (#15609) 2022-12-03 11:52:21 -08:00
_localemodule.c bpo-47000: Add locale.getencoding() (GH-32068) 2022-04-09 09:54:54 +09:00
_lsprof.c bpo-15999: Accept arbitrary values for boolean parameters. (#15609) 2022-12-03 11:52:21 -08:00
_lzmamodule.c bpo-46541: Remove usage of _Py_IDENTIFIER from lzma module (GH-31683) 2022-03-05 01:38:56 +09:00
_math.h bpo-45548: Remove _math.c workarounds for pre-C99 libm (GH-29179) 2021-10-25 01:25:27 -07:00
_opcode.c gh-94216: add pseudo instructions to the dis/opcodes modules (GH-94241) 2022-07-01 15:33:35 +01:00
_operator.c gh-99300: Use Py_NewRef() in Modules/ directory (#99467) 2022-11-14 13:08:43 +01:00
_pickle.c gh-99845: Use size_t type in __sizeof__() methods (#99846) 2022-11-30 17:22:52 +01:00
_posixsubprocess.c bpo-15999: Accept arbitrary values for boolean parameters. (#15609) 2022-12-03 11:52:21 -08:00
_queuemodule.c bpo-46613: Add PyType_GetModuleByDef to the public API (GH-31081) 2022-02-11 17:22:11 +01:00
_randommodule.c gh-90928: Statically Initialize the Keywords Tuple in Clinic-Generated Code (gh-95860) 2022-08-11 15:25:49 -06:00
_scproxy.c gh-99537: Use Py_SETREF(var, NULL) in C code (#99687) 2022-11-23 14:57:50 +01:00
_ssl.c bpo-15999: Accept arbitrary values for boolean parameters. (#15609) 2022-12-03 11:52:21 -08:00
_ssl.h bpo-46541: remove usage of _Py_IDENTIFIER from _ssl module (GH-31599) 2022-03-02 00:38:21 +09:00
_ssl_data.h
_ssl_data_111.h
_ssl_data_300.h
_stat.c
_statisticsmodule.c Statistics inv_cdf sync with corresponding random module normal distributions (#95265) 2022-07-26 02:23:33 -05:00
_struct.c gh-98248: Normalizing the error messages in function struct.pack (GH-98252) 2022-12-04 20:24:18 +00:00
_testbuffer.c gh-99300: Replace Py_INCREF() with Py_NewRef() (#99513) 2022-11-16 10:39:47 +01:00
_testcapi_feature_macros.inc gh-91324: List feature macros in the stable ABI manifest, improve tests (GH-32415) 2022-04-28 16:30:28 +02:00
_testcapimodule.c gh-98724: Fix Py_CLEAR() macro side effects (#99100) (#100070) 2022-12-07 15:22:38 +01:00
_testclinic.c gh-64490: Fix bugs in argument clinic varargs processing (#32092) 2022-11-24 20:56:50 +01:00
_testimportmultiple.c
_testinternalcapi.c gh-99537: Use Py_SETREF() function in C code (#99656) 2022-11-22 14:22:22 +01:00
_testmultiphase.c gh-99300: Use Py_NewRef() in Modules/ directory (#99440) 2022-11-13 16:04:33 +01:00
_testsinglephase.c gh-98627: Add the _testsinglephase Module (gh-99039) 2022-11-08 09:58:11 -07:00
_threadmodule.c bpo-15999: Accept arbitrary values for boolean parameters. (#15609) 2022-12-03 11:52:21 -08:00
_tkinter.c bpo-15999: Accept arbitrary values for boolean parameters. (#15609) 2022-12-03 11:52:21 -08:00
_tracemalloc.c gh-81057: Move Globals in Core Code to _PyRuntimeState (gh-99496) 2022-11-15 09:45:11 -07:00
_typingmodule.c gh-99300: Use Py_NewRef() in Modules/ directory (#99468) 2022-11-14 13:44:56 +01:00
_uuidmodule.c bpo-45847: Port _uuid to PY_STDLIB_MOD (GH-29741) 2021-11-24 10:20:37 +01:00
_weakref.c bpo-46937: convert remaining functions to AC in _weakref (GH-31705) 2022-03-07 18:57:45 +09:00
_winapi.c bpo-15999: Accept arbitrary values for boolean parameters. (#15609) 2022-12-03 11:52:21 -08:00
_xxsubinterpretersmodule.c gh-99984: Fix Compiler Warnings (#100036) 2022-12-05 14:41:06 -07:00
_zoneinfo.c gh-99537: Use Py_SETREF(var, NULL) in C code (#99687) 2022-11-23 14:57:50 +01:00
addrinfo.h gh-95174: WASI: skip missing sockets functions (GH-95179) 2022-07-27 08:19:23 +02:00
arraymodule.c gh-99845: Use size_t type in __sizeof__() methods (#99846) 2022-11-30 17:22:52 +01:00
atexitmodule.c fixes gh-96292: Fix Trivial Typo in cpython/Modules/atexitmodule.c (#96327) 2022-08-26 22:33:29 -07:00
audioop.c gh-99537: Use Py_SETREF() function in C code (#99656) 2022-11-22 14:22:22 +01:00
binascii.c bpo-15999: Accept arbitrary values for boolean parameters. (#15609) 2022-12-03 11:52:21 -08:00
cmathmodule.c bpo-46656: Remove Py_NO_NAN macro (GH-31160) 2022-02-25 01:32:57 +01:00
config.c.in
errnomodule.c gh-96005: Handle WASI ENOTCAPABLE in getpath (GH-96006) 2022-08-16 20:20:15 +02:00
faulthandler.c bpo-15999: Accept arbitrary values for boolean parameters. (#15609) 2022-12-03 11:52:21 -08:00
fcntlmodule.c gh-93475: Expose FICLONE and FICLONERANGE constants in fcntl (#93478) 2022-06-06 23:21:58 +02:00
gc_weakref.txt Fix links to old SF bugs (#95648) 2022-08-04 18:12:35 +02:00
gcmodule.c gh-99845: Clean up _PyObject_VAR_SIZE() usage (#99847) 2022-11-29 12:15:21 +01:00
getaddrinfo.c gh-95174: WASI: skip missing sockets functions (GH-95179) 2022-07-27 08:19:23 +02:00
getbuildinfo.c gh-81057: Move Globals in Core Code to _PyRuntimeState (gh-99496) 2022-11-15 09:45:11 -07:00
getnameinfo.c gh-95174: WASI: skip missing sockets functions (GH-95179) 2022-07-27 08:19:23 +02:00
getpath.c gh-99300: Use Py_NewRef() in Modules/ directory (#99469) 2022-11-14 16:21:23 +01:00
getpath.py gh-99370: Calculate zip path from prefix when in a venv (GH-99371) 2022-11-14 15:05:14 +00:00
getpath_noop.c bpo-45582: Port getpath[p].c to Python (GH-29041) 2021-12-03 00:08:42 +00:00
grpmodule.c
hashlib.h hashlib: Fix old message about unicode objects. (GH-28653) 2021-10-01 14:38:49 +02:00
itertoolsmodule.c gh-60203: Revert changes in cycle.__setstate__ (#99982) 2022-12-05 17:27:40 +01:00
ld_so_aix.in
main.c gh-81057: Move More Globals in Core Code to _PyRuntimeState (gh-99516) 2022-11-16 09:37:14 -07:00
makesetup gh-96269: static and shared ext need different deps (#96316) 2022-11-16 14:03:35 +01:00
makexp_aix
mathmodule.c gh-99537: Use Py_SETREF(var, NULL) in C code (#99687) 2022-11-23 14:57:50 +01:00
md5module.c bpo-43974: Move Py_BUILD_CORE_MODULE into module code (GH-29157) 2021-10-22 15:36:28 +02:00
mmapmodule.c gh-99845: Use size_t type in __sizeof__() methods (#99846) 2022-11-30 17:22:52 +01:00
nismodule.c gh-99537: Use Py_SETREF(var, NULL) in C code (#99687) 2022-11-23 14:57:50 +01:00
ossaudiodev.c bpo-15999: Accept arbitrary values for boolean parameters. (#15609) 2022-12-03 11:52:21 -08:00
overlapped.c gh-99300: Use Py_NewRef() in Modules/ directory (#99469) 2022-11-14 16:21:23 +01:00
posixmodule.c bpo-15999: Accept arbitrary values for boolean parameters. (#15609) 2022-12-03 11:52:21 -08:00
posixmodule.h bpo-41498: Fix build on platforms without sigset_t (GH-29770) 2021-11-25 12:28:41 +01:00
pwdmodule.c bpo-46670: Remove unused macros in the Modules directory (GH-31194) 2022-02-07 16:21:31 +01:00
pyexpat.c bpo-15999: Accept arbitrary values for boolean parameters. (#15609) 2022-12-03 11:52:21 -08:00
readline.c gh-99300: Use Py_NewRef() in Modules/ directory (#99469) 2022-11-14 16:21:23 +01:00
README
resource.c gh-94512: Fix forced arg format in AC-processed resource (GH-94515) 2022-07-29 12:48:11 +01:00
rotatingtree.c
rotatingtree.h
selectmodule.c gh-99300: Replace Py_INCREF() with Py_NewRef() (#99513) 2022-11-16 10:39:47 +01:00
Setup gh-98627: Add the _testsinglephase Module (gh-99039) 2022-11-08 09:58:11 -07:00
Setup.bootstrap.in bpo-47152: Move sources of the _sre module into a subdirectory (GH-32290) 2022-04-04 10:53:26 +03:00
Setup.stdlib.in gh-47146: Soft-deprecate structmember.h, expose its contents via Python.h (GH-99014) 2022-11-22 08:25:43 +01:00
sha1module.c bpo-43974: Move Py_BUILD_CORE_MODULE into module code (GH-29157) 2021-10-22 15:36:28 +02:00
sha256module.c bpo-43974: Move Py_BUILD_CORE_MODULE into module code (GH-29157) 2021-10-22 15:36:28 +02:00
sha512module.c bpo-43974: Move Py_BUILD_CORE_MODULE into module code (GH-29157) 2021-10-22 15:36:28 +02:00
signalmodule.c gh-98930: improve the docstring of signal.strsignal (#99290) 2022-11-13 11:41:23 -08:00
socketmodule.c bpo-15999: Accept arbitrary values for boolean parameters. (#15609) 2022-12-03 11:52:21 -08:00
socketmodule.h gh-92658: AF_HYPERV is only supported on Windows (#93192) 2022-05-25 04:44:57 +02:00
spwdmodule.c gh-91217: deprecate spwd (#91846) 2022-04-23 14:48:17 -07:00
symtablemodule.c gh-99300: Use Py_NewRef() in Modules/ directory (#99473) 2022-11-14 16:21:40 +01:00
syslogmodule.c gh-99127: Allow some features of syslog to the main interpreter only (gh-99128) 2022-11-30 07:58:20 +09:00
termios.c GH-97001: Release GIL in termios extension (#99503) 2022-11-22 11:14:23 +01:00
timemodule.c gh-93741: Add private C API _PyImport_GetModuleAttrString() (GH-93742) 2022-06-14 07:15:26 +03:00
tkappinit.c
tkinter.h
unicodedata.c gh-99300: Use Py_NewRef() in Modules/ directory (#99473) 2022-11-14 16:21:40 +01:00
unicodedata_db.h closes gh-96734: Update to Unicode 15.0.0. (GH-96809) 2022-09-13 15:45:12 -07:00
unicodename_db.h closes gh-96734: Update to Unicode 15.0.0. (GH-96809) 2022-09-13 15:45:12 -07:00
winreparse.h
xxlimited.c gh-99300: Use Py_NewRef() in Modules/ directory (#99473) 2022-11-14 16:21:40 +01:00
xxlimited_35.c gh-99300: Use Py_NewRef() in Modules/ directory (#99473) 2022-11-14 16:21:40 +01:00
xxmodule.c gh-99300: Use Py_NewRef() in Modules/ directory (#99473) 2022-11-14 16:21:40 +01:00
xxsubtype.c gh-99300: Use Py_NewRef() in Modules/ directory (#99473) 2022-11-14 16:21:40 +01:00
zlibmodule.c gh-99300: Use Py_NewRef() in Modules/ directory (#99473) 2022-11-14 16:21:40 +01:00

Source files for standard library extension modules,
and former extension modules that are now builtin modules.