summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2023-06-14 05:04:22 (GMT)
committerGitHub <noreply@github.com>2023-06-14 05:04:22 (GMT)
commit0a9346d3d8b52e585a43ee6c7708e5a639fa9fed (patch)
treed1f39137337cb04bdd7f8b00924889243129fbfc
parentbc997b38b66cd61ab2ba9697546c39472cb93ee3 (diff)
downloadcpython-0a9346d3d8b52e585a43ee6c7708e5a639fa9fed.zip
cpython-0a9346d3d8b52e585a43ee6c7708e5a639fa9fed.tar.gz
cpython-0a9346d3d8b52e585a43ee6c7708e5a639fa9fed.tar.bz2
[3.12] gh-105587: Remove assertion from `_PyStaticObject_CheckRefcnt` (GH-105638) (#105769)
gh-105587: Remove assertion from `_PyStaticObject_CheckRefcnt` (GH-105638) (cherry picked from commit 6199fe3b3236748033a7ce2559aeddb5a91bbbd9) Co-authored-by: Eddie Elizondo <eduardo.elizondorueda@gmail.com>
-rw-r--r--Include/internal/pycore_global_objects_fini_generated.h5
-rw-r--r--Misc/NEWS.d/next/Core and Builtins/2023-06-10-21-38-49.gh-issue-105587.rL3rzv.rst3
2 files changed, 5 insertions, 3 deletions
diff --git a/Include/internal/pycore_global_objects_fini_generated.h b/Include/internal/pycore_global_objects_fini_generated.h
index d5819fc..439f47a 100644
--- a/Include/internal/pycore_global_objects_fini_generated.h
+++ b/Include/internal/pycore_global_objects_fini_generated.h
@@ -12,9 +12,8 @@ extern "C" {
static inline void
_PyStaticObject_CheckRefcnt(PyObject *obj) {
if (Py_REFCNT(obj) < _Py_IMMORTAL_REFCNT) {
- _PyObject_ASSERT_FAILED_MSG(obj,
- "immortal object has less refcnt than expected "
- "_Py_IMMORTAL_REFCNT");
+ fprintf(stderr, "Immortal Object has less refcnt than expected.\n");
+ _PyObject_Dump(obj);
}
}
#endif
diff --git a/Misc/NEWS.d/next/Core and Builtins/2023-06-10-21-38-49.gh-issue-105587.rL3rzv.rst b/Misc/NEWS.d/next/Core and Builtins/2023-06-10-21-38-49.gh-issue-105587.rL3rzv.rst
new file mode 100644
index 0000000..488f82c
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2023-06-10-21-38-49.gh-issue-105587.rL3rzv.rst
@@ -0,0 +1,3 @@
+The runtime can't guarantee that immortal objects will not be mutated by
+Extensions. Thus, this modifies _PyStaticObject_CheckRefcnt to warn
+instead of asserting.