Skip to content

Commit

Permalink
pythongh-112026: Restore removed _PyDict_GetItemStringWithError() (py…
Browse files Browse the repository at this point in the history
…thon#112119)

Restore the removed _PyDict_GetItemStringWithError() function. It is
used by numpy.
  • Loading branch information
vstinner authored and Glyphack committed Jan 27, 2024
1 parent e158f79 commit 4c7e8fd
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 1 deletion.
2 changes: 1 addition & 1 deletion Include/cpython/dictobject.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ typedef struct {

PyAPI_FUNC(PyObject *) _PyDict_GetItem_KnownHash(PyObject *mp, PyObject *key,
Py_hash_t hash);

PyAPI_FUNC(PyObject *) _PyDict_GetItemStringWithError(PyObject *, const char *);
PyAPI_FUNC(PyObject *) PyDict_SetDefault(
PyObject *mp, PyObject *key, PyObject *defaultobj);

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Restore the removed ``_PyDict_GetItemStringWithError()`` function. It is
used by numpy. Patch by Victor Stinner.
14 changes: 14 additions & 0 deletions Objects/dictobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -1842,6 +1842,20 @@ _PyDict_GetItemIdWithError(PyObject *dp, _Py_Identifier *key)
return _PyDict_GetItem_KnownHash(dp, kv, hash); // borrowed reference
}

PyObject *
_PyDict_GetItemStringWithError(PyObject *v, const char *key)
{
PyObject *kv, *rv;
kv = PyUnicode_FromString(key);
if (kv == NULL) {
return NULL;
}
rv = PyDict_GetItemWithError(v, kv);
Py_DECREF(kv);
return rv;
}


/* Fast version of global value lookup (LOAD_GLOBAL).
* Lookup in globals, then builtins.
*
Expand Down

0 comments on commit 4c7e8fd

Please sign in to comment.