cpython/Objects
Miss Islington (bot) 49da170709
[3.12] gh-116510: Fix a Crash Due to Shared Immortal Interned Strings (gh-125205)
Fix a crash caused by immortal interned strings being shared between
sub-interpreters that use basic single-phase init. In that case, the string
can be used by an interpreter that outlives the interpreter that created and
interned it. For interpreters that share obmalloc state, also share the
interned dict with the main interpreter.

This is an un-revert of gh-124646 that then addresses the Py_TRACE_REFS
failures identified by gh-124785 (i.e. backporting gh-125709 too).

(cherry picked from commit f2cb399470, AKA gh-124865)

Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
2024-12-03 10:26:25 -07:00
..
clinic [3.12] gh-121905: Consistently use "floating-point" instead of "floating point" (GH-121907) (GH-122013) 2024-07-19 09:08:33 +00:00
stringlib gh-99537: Use Py_SETREF() function in C code (#99657) 2022-11-22 13:39:11 +01:00
abstract.c GH-101291: Rearrange the size bits in PyLongObject (GH-102464) 2023-03-22 14:49:51 +00:00
boolobject.c [3.12] gh-122982: Extend the deprecation period for bool inversion by two years (GH-123306) (#123317) 2024-08-25 19:40:11 +00:00
bytearrayobject.c [3.12] gh-112625: Protect bytearray from being freed by misbehaving iterator inside bytearray.join (GH-112626) (GH-112693) 2023-12-04 08:46:40 +00:00
bytes_methods.c gh-84436: Implement Immortal Objects (gh-19474) 2023-04-22 13:39:37 -06:00
bytesobject.c [3.12] gh-105235: Prevent reading outside buffer during mmap.find() (GH-105252) (#106708) 2023-07-14 22:15:14 -04:00
call.c GH-103899: Provide a hint when accidentally calling a module (GH-103900) 2023-05-04 15:07:42 -07:00
capsule.c gh-99537: Use Py_SETREF() function in C code (#99657) 2022-11-22 13:39:11 +01:00
cellobject.c gh-99300: Use Py_NewRef() in Objects/ directory (#99332) 2022-11-10 16:27:32 +01:00
classobject.c [3.12] GH-106895: Raise a ValueError when attempting to disable events that cannot be disabled. (GH-107337) (GH-107351) 2023-07-28 10:53:33 +01:00
codeobject.c [3.12] gh-113993: Make interned strings mortal (GH-120520, GH-121364, GH-121903, GH-122303) (#123065) 2024-09-27 13:28:48 -07:00
complexobject.c [3.12] gh-113841: fix possible undefined division by 0 in _Py_c_pow() (GH-127211) (GH-127216) (GH-127530) 2024-12-02 19:47:42 +00:00
descrobject.c [3.12] bpo-24766: doc= argument to subclasses of property not handled correctly (GH-2487) (GH-120312) 2024-06-10 10:32:45 +00:00
dictnotes.txt
dictobject.c [3.12] gh-116938: Fix dict.update docstring and remove erraneous full stop from dict documentation (GH-125421) (#126151) 2024-10-29 23:22:20 +00:00
enumobject.c gh-99300: Use Py_NewRef() in Objects/ directory (#99335) 2022-11-10 22:22:02 +01:00
exception_handling_notes.txt gh-96455: update example in exception_handling_notes.txt to the 3.11RC bytecode (GH-96456) 2022-09-01 14:21:39 +01:00
exceptions.c [3.12] gh-123378: fix a crash in UnicodeError.__str__ (GH-124935) (#125098) 2024-10-08 11:56:18 +00:00
fileobject.c gh-99537: Use Py_SETREF(var, NULL) in C code (#99687) 2022-11-23 14:57:50 +01:00
floatobject.c [3.12] gh-121905: Consistently use "floating-point" instead of "floating point" (GH-121907) (GH-122013) 2024-07-19 09:08:33 +00:00
frame_layout.md GH-96421: Insert shim frame on entry to interpreter (GH-96319) 2022-11-10 12:34:57 +00:00
frameobject.c [3.12] GH-94438: Restore ability to jump over None tests (GH-111243) 2023-10-24 06:39:26 +00:00
funcobject.c [3.12] gh-106033: Get rid of PyDict_GetItem in _PyFunction_FromConstructor (GH-106044) (GH-106228) 2023-06-29 13:45:39 +03:00
genericaliasobject.c [3.12] gh-121660: Fix ga_getitem by explicitly checking for NULL result (GH-121661) (#121762) 2024-07-14 11:37:00 +00:00
genobject.c [3.12] gh-119897: Revert buggy optimization which was removed in 3.13 (#120467) 2024-06-18 10:45:40 +01:00
interpreteridobject.c [3.12] gh-101524: Only Use Public C-API in the _xxsubinterpreters Module (gh-105258) (gh-107303) 2023-07-27 13:15:47 -06:00
iterobject.c gh-101892: Fix SystemError when a callable iterator call exhausts the iterator (#101896) 2023-03-04 19:51:29 +05:30
listobject.c [3.12] gh-120384: Fix array-out-of-bounds crash in list_ass_subscript (GH-120442) (#120825) 2024-06-21 11:08:22 +00:00
listsort.txt
lnotab_notes.txt [3.12] Document the co_lines method on code objects (#113682) (#113686) 2024-01-03 20:09:15 +00:00
locations.md
longobject.c [3.12] gh-121905: Consistently use "floating-point" instead of "floating point" (GH-121907) (GH-122013) 2024-07-19 09:08:33 +00:00
memoryobject.c [3.12] gh-126341: add release check to __iter__ method of memoryview (GH-126759) (#126779) 2024-11-13 20:44:01 +02:00
methodobject.c gh-99300: Use Py_NewRef() in Objects/ directory (#99354) 2022-11-10 23:58:07 +01:00
moduleobject.c [3.12] gh-106719: Fix __annotations__ getter and setter in the type and module types (GH-106720) (GH-106848) 2023-07-18 10:01:22 +03:00
namespaceobject.c gh-99300: Replace Py_INCREF() with Py_NewRef() (#99530) 2022-11-16 18:34:24 +01:00
object.c [3.12] gh-116510: Fix a Crash Due to Shared Immortal Interned Strings (gh-125205) 2024-12-03 10:26:25 -07:00
object_layout.md [3.12] gh-106293: Fix typos in Objects/object_layout.md (GH-106294) (#114158) 2024-01-16 23:35:20 +00:00
object_layout_312.gv GH-96068: Document object layout (GH-96069) 2022-08-23 13:55:43 +01:00
object_layout_312.png GH-96068: Document object layout (GH-96069) 2022-08-23 13:55:43 +01:00
object_layout_full_312.gv GH-96068: Document object layout (GH-96069) 2022-08-23 13:55:43 +01:00
object_layout_full_312.png GH-96068: Document object layout (GH-96069) 2022-08-23 13:55:43 +01:00
obmalloc.c [3.12] gh-100227: Lock Around Modification of the Global Allocators State (gh-105516) (gh-105532) 2023-06-08 22:35:53 +00:00
odictobject.c [3.12] gh-119004: fix a crash in equality testing between OrderedDict (GH-121329) (#124508) 2024-09-27 11:33:44 -07:00
picklebufobject.c
rangeobject.c GH-101291: Rearrange the size bits in PyLongObject (GH-102464) 2023-03-22 14:49:51 +00:00
README
setobject.c [3.12] gh-113560: Improve docstrings for set.issubset() and set.issuperset() (GH-113562) (GH-114644) 2024-01-27 11:29:26 +00:00
sliceobject.c gh-84436: Implement Immortal Objects (gh-19474) 2023-04-22 13:39:37 -06:00
structseq.c [3.12] gh-122527: Fix a crash on deallocation of PyStructSequence (GH-122577) (#122626) 2024-09-06 15:46:56 +02:00
tupleobject.c [3.12] GH-121439: Allow PyTupleObjects with an ob_size of 20 in the free_list to be reused (gh-121428) (#121566) 2024-07-10 08:06:41 +00:00
typeobject.c [3.12] gh-126594: Fix typeobject.c wrap_buffer() cast (GH-126754) (#127005) 2024-11-19 08:33:18 +00:00
typeslots.inc
typeslots.py
typevarobject.c [3.12] gh-124498: Fix TypeAliasType not to be generic, when type_params=() (GH-124499) (#124604) 2024-09-26 14:46:29 +00:00
unicodectype.c
unicodeobject.c [3.12] gh-116510: Fix a Crash Due to Shared Immortal Interned Strings (gh-125205) 2024-12-03 10:26:25 -07:00
unicodetype_db.h bpo-47243: Duplicate entry in 'Objects/unicodetype_db.h' (GH-32376) 2022-09-28 06:57:14 -07:00
unionobject.c gh-104549: Set __module__ on TypeAliasType (#104550) 2023-05-18 15:56:15 -07:00
weakrefobject.c gh-94673: Properly Initialize and Finalize Static Builtin Types for Each Interpreter (gh-104072) 2023-05-01 19:36:00 -06:00

Source files for various builtin objects