Sync-up lru_cache() C code with space saving feature in the Python version.

This commit is contained in:
Raymond Hettinger 2017-01-08 19:34:28 -08:00
parent 44844ccc06
commit 9d60b94427
1 changed files with 6 additions and 0 deletions

View File

@ -709,6 +709,12 @@ lru_cache_make_key(PyObject *args, PyObject *kwds, int typed)
/* short path, key will match args anyway, which is a tuple */
if (!typed && !kwds) {
if (PyTuple_GET_SIZE(args) == 1) {
/* Save space and improve speed by unwrapping 1-tuples */
key = PyTuple_GET_ITEM(args, 0);
Py_INCREF(key);
return key;
}
Py_INCREF(args);
return args;
}