mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-23 13:52:28 +00:00
Revert "Backport METH_FASTCALL from Python 3.7 (#328)"
This reverts commit cf73bbd678
.
This commit is contained in:
parent
e7611a8476
commit
2ea1dc405c
102 changed files with 3299 additions and 2894 deletions
23
third_party/python/Objects/dictobject.c
vendored
23
third_party/python/Objects/dictobject.c
vendored
|
@ -748,7 +748,7 @@ the <dummy> value.
|
|||
For both, when the key isn't found a DKIX_EMPTY is returned. hashpos returns
|
||||
where the key index should be inserted.
|
||||
*/
|
||||
static Py_ssize_t _Py_HOT_FUNCTION
|
||||
static Py_ssize_t
|
||||
lookdict(PyDictObject *mp, PyObject *key,
|
||||
Py_hash_t hash, PyObject ***value_addr, Py_ssize_t *hashpos)
|
||||
{
|
||||
|
@ -862,7 +862,7 @@ top:
|
|||
}
|
||||
|
||||
/* Specialized version for string-only keys */
|
||||
static Py_ssize_t _Py_HOT_FUNCTION
|
||||
static Py_ssize_t
|
||||
lookdict_unicode(PyDictObject *mp, PyObject *key,
|
||||
Py_hash_t hash, PyObject ***value_addr, Py_ssize_t *hashpos)
|
||||
{
|
||||
|
@ -936,7 +936,7 @@ lookdict_unicode(PyDictObject *mp, PyObject *key,
|
|||
|
||||
/* Faster version of lookdict_unicode when it is known that no <dummy> keys
|
||||
* will be present. */
|
||||
static Py_ssize_t _Py_HOT_FUNCTION
|
||||
static Py_ssize_t
|
||||
lookdict_unicode_nodummy(PyDictObject *restrict mp, PyObject *restrict key,
|
||||
Py_hash_t hash, PyObject ***value_addr,
|
||||
Py_ssize_t *hashpos)
|
||||
|
@ -1003,7 +1003,7 @@ lookdict_unicode_nodummy(PyDictObject *restrict mp, PyObject *restrict key,
|
|||
* Split tables only contain unicode keys and no dummy keys,
|
||||
* so algorithm is the same as lookdict_unicode_nodummy.
|
||||
*/
|
||||
static Py_ssize_t _Py_HOT_FUNCTION
|
||||
static Py_ssize_t
|
||||
lookdict_split(PyDictObject *mp, PyObject *key,
|
||||
Py_hash_t hash, PyObject ***value_addr, Py_ssize_t *hashpos)
|
||||
{
|
||||
|
@ -2911,7 +2911,7 @@ dict___contains__(PyDictObject *self, PyObject *key)
|
|||
}
|
||||
|
||||
static PyObject *
|
||||
dict_get(PyDictObject *mp, PyObject **args, Py_ssize_t nargs)
|
||||
dict_get(PyDictObject *mp, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *key;
|
||||
PyObject *failobj = Py_None;
|
||||
|
@ -2923,6 +2923,9 @@ dict_get(PyDictObject *mp, PyObject **args, Py_ssize_t nargs)
|
|||
if (!_PyArg_UnpackStack(args, nargs, "get", 1, 2, &key, &failobj))
|
||||
return NULL;
|
||||
|
||||
if (!_PyArg_NoStackKeywords("get", kwnames))
|
||||
return NULL;
|
||||
|
||||
if (!PyUnicode_CheckExact(key) ||
|
||||
(hash = ((PyASCIIObject *) key)->hash) == -1) {
|
||||
hash = PyObject_Hash(key);
|
||||
|
@ -3029,7 +3032,7 @@ PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *defaultobj)
|
|||
}
|
||||
|
||||
static PyObject *
|
||||
dict_setdefault(PyDictObject *mp, PyObject **args, Py_ssize_t nargs)
|
||||
dict_setdefault(PyDictObject *mp, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *key, *val;
|
||||
PyObject *defaultobj = Py_None;
|
||||
|
@ -3037,6 +3040,9 @@ dict_setdefault(PyDictObject *mp, PyObject **args, Py_ssize_t nargs)
|
|||
if (!_PyArg_UnpackStack(args, nargs, "setdefault", 1, 2, &key, &defaultobj))
|
||||
return NULL;
|
||||
|
||||
if(!_PyArg_NoStackKeywords("pop", kwnames))
|
||||
return NULL;
|
||||
|
||||
val = PyDict_SetDefault((PyObject *)mp, key, defaultobj);
|
||||
Py_XINCREF(val);
|
||||
return val;
|
||||
|
@ -3050,13 +3056,16 @@ dict_clear(PyDictObject *mp)
|
|||
}
|
||||
|
||||
static PyObject *
|
||||
dict_pop(PyDictObject *mp, PyObject **args, Py_ssize_t nargs)
|
||||
dict_pop(PyDictObject *mp, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
PyObject *key, *deflt = NULL;
|
||||
|
||||
if(!_PyArg_UnpackStack(args, nargs, "pop", 1, 2, &key, &deflt))
|
||||
return NULL;
|
||||
|
||||
if(!_PyArg_NoStackKeywords("pop", kwnames))
|
||||
return NULL;
|
||||
|
||||
return _PyDict_Pop((PyObject*)mp, key, deflt);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue