[Python-checkins] GH-100227: cleanup initialization of global interned dict (#102682)
kumaraditya303
webhook-mailer at python.org
Tue Mar 14 04:52:29 EDT 2023
https://github.com/python/cpython/commit/3d872a74c8c16d4a077c2223f678b1f8f7e0e988
commit: 3d872a74c8c16d4a077c2223f678b1f8f7e0e988
branch: main
author: Kumar Aditya <59607654+kumaraditya303 at users.noreply.github.com>
committer: kumaraditya303 <59607654+kumaraditya303 at users.noreply.github.com>
date: 2023-03-14T14:22:21+05:30
summary:
GH-100227: cleanup initialization of global interned dict (#102682)
files:
M Objects/unicodeobject.c
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 2d50f9c340f2..b9fb53147b9b 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -14533,6 +14533,15 @@ _PyUnicode_InitGlobalObjects(PyInterpreterState *interp)
return _PyStatus_OK();
}
+ // Initialize the global interned dict
+ PyObject *interned = PyDict_New();
+ if (interned == NULL) {
+ PyErr_Clear();
+ return _PyStatus_ERR("failed to create interned dict");
+ }
+
+ set_interned_dict(interned);
+
/* Intern statically allocated string identifiers and deepfreeze strings.
* This must be done before any module initialization so that statically
* allocated string identifiers are used instead of heap allocated strings.
@@ -14600,14 +14609,7 @@ PyUnicode_InternInPlace(PyObject **p)
}
PyObject *interned = get_interned_dict();
- if (interned == NULL) {
- interned = PyDict_New();
- if (interned == NULL) {
- PyErr_Clear(); /* Don't leave an exception */
- return;
- }
- set_interned_dict(interned);
- }
+ assert(interned != NULL);
PyObject *t = PyDict_SetDefault(interned, s, s);
if (t == NULL) {
More information about the Python-checkins
mailing list