cpython/Objects
Sam Gross 4b63cd170e
gh-122527: Fix a crash on deallocation of `PyStructSequence` (GH-122577)
The `PyStructSequence` destructor would crash if it was deallocated after
its type's dictionary was cleared by the GC, because it couldn't compute
the "real size" of the instance. This could occur with relatively
straightforward code in the free-threaded build or with a reference
cycle involving the type in the default build, due to differing orders
in which `tp_clear()` was called.

Account for the non-sequence fields in `tp_basicsize` and use that,
along with `Py_SIZE()`, to compute the "real" size of a
`PyStructSequence` in the dealloc function. This avoids the accesses to
the type's dictionary during dealloc, which were unsafe.
2024-08-02 18:11:44 +02:00
..
clinic gh-121905: Consistently use "floating-point" instead of "floating point" (GH-121907) 2024-07-19 08:06:02 +00:00
mimalloc gh-121731: Fix mimalloc compile error on GNU/Hurd (#121732) 2024-07-14 12:50:25 -04:00
stringlib gh-121040: Use __attribute__((fallthrough)) (#121044) 2024-06-27 09:58:44 +00:00
README
abstract.c gh-95144: Improve error message of `... in None` (GH-119888) 2024-07-12 16:34:17 +00:00
boolobject.c
bytearrayobject.c Replace PyObject_Del with PyObject_Free (#122453) 2024-08-01 14:12:33 +02:00
bytes_methods.c gh-121165: protect macro expansion of `ADJUST_INDICES` with do-while(0) (#121166) 2024-07-02 16:27:51 +05:30
bytesobject.c Replace PyObject_Del with PyObject_Free (#122453) 2024-08-01 14:12:33 +02:00
call.c
capsule.c
cellobject.c gh-117323: Make `cell` thread-safe in free-threaded builds (#117330) 2024-03-29 13:35:43 -04:00
classobject.c gh-118362: Fix thread safety around lookups from the type cache in the face of concurrent mutators (#118454) 2024-05-06 10:50:35 -07:00
codeobject.c Replace PyObject_Del with PyObject_Free (#122453) 2024-08-01 14:12:33 +02:00
complexobject.c Replace PyObject_Del with PyObject_Free (#122453) 2024-08-01 14:12:33 +02:00
descrobject.c bpo-24766: doc= argument to subclasses of property not handled correctly (GH-2487) 2024-06-10 08:55:49 +00:00
dictnotes.txt
dictobject.c gh-120974: Make asyncio `swap_current_task` safe in free-threaded build (#122317) 2024-08-02 19:02:08 +05:30
enumobject.c
exceptions.c gh-121905: Consistently use "floating-point" instead of "floating point" (GH-121907) 2024-07-19 08:06:02 +00:00
fileobject.c Replace PyObject_Del with PyObject_Free (#122453) 2024-08-01 14:12:33 +02:00
floatobject.c gh-100240: Use a consistent implementation for freelists (#121934) 2024-07-22 12:08:27 -04:00
frameobject.c gh-120906: Support arbitrary hashable keys in FrameLocalsProxy (GH-122309) 2024-07-30 22:11:00 +00:00
funcobject.c gh-122229: Add missing `Py_DECREF` in `func_get_annotation_dict` (#122230) 2024-07-24 05:47:52 -07:00
genericaliasobject.c gh-119180: Add evaluate functions for type params and type aliases (#122212) 2024-07-27 17:24:10 +00:00
genobject.c GH-118093: Improve handling of short and mid-loop traces (GH-122252) 2024-07-29 14:49:17 -07:00
iterobject.c
listobject.c gh-100240: Use a consistent implementation for freelists (#121934) 2024-07-22 12:08:27 -04:00
listsort.txt GH-116939: Rewrite binarysort() (#116940) 2024-03-21 22:27:25 -05:00
lnotab_notes.txt Document the `co_lines` method on code objects (#113682) 2024-01-03 19:29:24 +00:00
longobject.c gh-121905: Consistently use "floating-point" instead of "floating point" (GH-121907) 2024-07-19 08:06:02 +00:00
memoryobject.c gh-120155: Fix copy/paste error in HAVE_SUBOFFSETS_IN_LAST_DIM() (#120228) 2024-06-07 17:58:21 +02:00
methodobject.c gh-113024: C API: Add PyObject_GenericHash() function (GH-113025) 2024-03-22 20:19:10 +02:00
moduleobject.c gh-116322: Fix typo in the #ifdef check (#122268) 2024-07-25 20:01:57 +05:30
namespaceobject.c gh-108191: Add support of positional argument in SimpleNamespace constructor (GH-108195) 2024-04-25 00:39:54 +03:00
object.c gh-116622: Fix testPyObjectPrintOSError on Android (#122487) 2024-07-31 08:21:43 +08:00
object_layout.md GH-115776: Embed the values array into the object, for "normal" Python objects. (GH-116115) 2024-04-02 11:59:21 +01:00
object_layout_312.gv GH-115776: Embed the values array into the object, for "normal" Python objects. (GH-116115) 2024-04-02 11:59:21 +01:00
object_layout_312.png GH-115776: Embed the values array into the object, for "normal" Python objects. (GH-116115) 2024-04-02 11:59:21 +01:00
object_layout_313.gv GH-115776: Embed the values array into the object, for "normal" Python objects. (GH-116115) 2024-04-02 11:59:21 +01:00
object_layout_313.png GH-115776: Embed the values array into the object, for "normal" Python objects. (GH-116115) 2024-04-02 11:59:21 +01:00
object_layout_full_312.gv
object_layout_full_312.png
object_layout_full_313.gv GH-115776: Embed the values array into the object, for "normal" Python objects. (GH-116115) 2024-04-02 11:59:21 +01:00
object_layout_full_313.png GH-115776: Embed the values array into the object, for "normal" Python objects. (GH-116115) 2024-04-02 11:59:21 +01:00
obmalloc.c gh-121460: Skip freeing unallocated arenas (gh-121491) 2024-07-10 10:40:55 -06:00
odictobject.c Replace PyObject_Del with PyObject_Free (#122453) 2024-08-01 14:12:33 +02:00
picklebufobject.c
rangeobject.c Replace PyObject_Del with PyObject_Free (#122453) 2024-08-01 14:12:33 +02:00
setobject.c gh-121795: Improve performance of set membership testing from set arguments (#121796) 2024-07-22 10:05:23 -05:00
sliceobject.c gh-100240: Use a consistent implementation for freelists (#121934) 2024-07-22 12:08:27 -04:00
structseq.c gh-122527: Fix a crash on deallocation of `PyStructSequence` (GH-122577) 2024-08-02 18:11:44 +02:00
tupleobject.c gh-100240: Use a consistent implementation for freelists (#121934) 2024-07-22 12:08:27 -04:00
typeobject.c Replace PyObject_Del with PyObject_Free (#122453) 2024-08-01 14:12:33 +02:00
typeslots.inc
typeslots.py
typevarobject.c gh-122361: Use proper `PyUnicodeWriter_*` API in `constevaluator_call` (#122362) 2024-07-27 21:33:38 +03:00
unicodectype.c
unicodeobject.c Replace PyObject_Del with PyObject_Free (#122453) 2024-08-01 14:12:33 +02:00
unicodetype_db.h gh-96954: Fix `make regen-unicodedata` in out-of-tree builds (#112118) 2023-11-15 16:42:17 +00:00
unionobject.c gh-119180: Add evaluate functions for type params and type aliases (#122212) 2024-07-27 17:24:10 +00:00
weakrefobject.c gh-121652: Handle `allocate_weakref` returning NULL (#121653) 2024-07-13 12:07:52 -04:00

README

Source files for various builtin objects