Mercurial > cpython-lru_cache-weakref
diff Python/ceval.c @ 75959:c67f3681e032
Issue #14383: Add _PyDict_GetItemId() and _PyDict_SetItemId() functions
These functions simplify the usage of static constant Unicode strings.
Generalize the usage of _Py_Identifier in ceval.c and typeobject.c.
| author | Victor Stinner <victor.stinner@gmail.com> |
|---|---|
| date | Mon, 26 Mar 2012 22:10:51 +0200 |
| parents | 5fae5be91849 |
| children | bac033e488b4 |
line wrap: on
line diff
--- a/Python/ceval.c Mon Mar 26 22:08:02 2012 +0200 +++ b/Python/ceval.c Mon Mar 26 22:10:51 2012 +0200 @@ -822,6 +822,8 @@ PyObject *names; PyObject *consts; + _Py_IDENTIFIER(__ltrace__); + /* Computed GOTOs, or the-optimization-commonly-but-improperly-known-as-"threaded code" using gcc's labels-as-values extension @@ -1198,7 +1200,7 @@ } #ifdef LLTRACE - lltrace = PyDict_GetItemString(f->f_globals, "__lltrace__") != NULL; + lltrace = _PyDict_GetItemId(f->f_globals, &PyId___ltrace__) != NULL; #endif why = WHY_NOT; @@ -1926,8 +1928,9 @@ break; TARGET(LOAD_BUILD_CLASS) - x = PyDict_GetItemString(f->f_builtins, - "__build_class__"); + { + _Py_IDENTIFIER(__build_class__); + x = _PyDict_GetItemId(f->f_builtins, &PyId___build_class__); if (x == NULL) { PyErr_SetString(PyExc_ImportError, "__build_class__ not found"); @@ -1936,6 +1939,7 @@ Py_INCREF(x); PUSH(x); break; + } TARGET(STORE_NAME) w = GETITEM(names, oparg); @@ -2283,8 +2287,10 @@ DISPATCH(); TARGET(IMPORT_NAME) + { + _Py_IDENTIFIER(__import__); w = GETITEM(names, oparg); - x = PyDict_GetItemString(f->f_builtins, "__import__"); + x = _PyDict_GetItemId(f->f_builtins, &PyId___import__); if (x == NULL) { PyErr_SetString(PyExc_ImportError, "__import__ not found"); @@ -2325,6 +2331,7 @@ SET_TOP(x); if (x != NULL) DISPATCH(); break; + } TARGET(IMPORT_STAR) v = POP();
