bpo-42064: Offset arguments for PyObject_Vectorcall in the _sqlite module (GH-27931)

This allows e.g. methods to be called efficiently by providing
space for a "self" argument; see PY_VECTORCALL_ARGUMENTS_OFFSET docs.
This commit is contained in:
Petr Viktorin 2021-08-31 14:34:44 +02:00 committed by GitHub
parent 001ef4600f
commit 01dea5f12b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 10 deletions

View file

@ -462,9 +462,10 @@ error:
static PyObject *
get_statement_from_cache(pysqlite_Cursor *self, PyObject *operation)
{
PyObject *args[] = { operation, };
PyObject *args[] = { NULL, operation, }; // Borrowed ref.
PyObject *cache = self->connection->statement_cache;
return PyObject_Vectorcall(cache, args, 1, NULL);
size_t nargsf = 1 | PY_VECTORCALL_ARGUMENTS_OFFSET;
return PyObject_Vectorcall(cache, args + 1, nargsf, NULL);
}
static PyObject *