Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Address review: drop pysqlite_get_state_by_cls in favour of pysqlite_…
…get_state_by_type
  • Loading branch information
Erlend E. Aasland committed Oct 20, 2021
commit 7ac66b6e68ac616b500630c46c6b2c32153a4b07
21 changes: 5 additions & 16 deletions Modules/_sqlite/clinic/connection.c.h
Original file line number Diff line number Diff line change
Expand Up @@ -150,26 +150,15 @@ PyDoc_STRVAR(pysqlite_connection_close__doc__,
"Closes the connection.");

#define PYSQLITE_CONNECTION_CLOSE_METHODDEF \
{"close", (PyCFunction)(void(*)(void))pysqlite_connection_close, METH_METHOD|METH_FASTCALL|METH_KEYWORDS, pysqlite_connection_close__doc__},
{"close", (PyCFunction)pysqlite_connection_close, METH_NOARGS, pysqlite_connection_close__doc__},

static PyObject *
pysqlite_connection_close_impl(pysqlite_Connection *self, PyTypeObject *cls);
pysqlite_connection_close_impl(pysqlite_Connection *self);

static PyObject *
pysqlite_connection_close(pysqlite_Connection *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
pysqlite_connection_close(pysqlite_Connection *self, PyObject *Py_UNUSED(ignored))
{
PyObject *return_value = NULL;
static const char * const _keywords[] = { NULL};
static _PyArg_Parser _parser = {":close", _keywords, 0};

if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
)) {
goto exit;
}
return_value = pysqlite_connection_close_impl(self, cls);

exit:
return return_value;
return pysqlite_connection_close_impl(self);
}

PyDoc_STRVAR(pysqlite_connection_commit__doc__,
Expand Down Expand Up @@ -768,4 +757,4 @@ pysqlite_connection_exit(pysqlite_Connection *self, PyObject *const *args, Py_ss
#ifndef PYSQLITE_CONNECTION_LOAD_EXTENSION_METHODDEF
#define PYSQLITE_CONNECTION_LOAD_EXTENSION_METHODDEF
#endif /* !defined(PYSQLITE_CONNECTION_LOAD_EXTENSION_METHODDEF) */
/*[clinic end generated code: output=2cd6449f4a8f9a2a input=a9049054013a1b77]*/
/*[clinic end generated code: output=7567e5d716309258 input=a9049054013a1b77]*/
21 changes: 5 additions & 16 deletions Modules/_sqlite/clinic/cursor.c.h
Original file line number Diff line number Diff line change
Expand Up @@ -279,25 +279,14 @@ PyDoc_STRVAR(pysqlite_cursor_close__doc__,
"Closes the cursor.");

#define PYSQLITE_CURSOR_CLOSE_METHODDEF \
{"close", (PyCFunction)(void(*)(void))pysqlite_cursor_close, METH_METHOD|METH_FASTCALL|METH_KEYWORDS, pysqlite_cursor_close__doc__},
{"close", (PyCFunction)pysqlite_cursor_close, METH_NOARGS, pysqlite_cursor_close__doc__},

static PyObject *
pysqlite_cursor_close_impl(pysqlite_Cursor *self, PyTypeObject *cls);
pysqlite_cursor_close_impl(pysqlite_Cursor *self);

static PyObject *
pysqlite_cursor_close(pysqlite_Cursor *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
pysqlite_cursor_close(pysqlite_Cursor *self, PyObject *Py_UNUSED(ignored))
{
PyObject *return_value = NULL;
static const char * const _keywords[] = { NULL};
static _PyArg_Parser _parser = {":close", _keywords, 0};

if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser
)) {
goto exit;
}
return_value = pysqlite_cursor_close_impl(self, cls);

exit:
return return_value;
return pysqlite_cursor_close_impl(self);
}
/*[clinic end generated code: output=3b5328c1619b7626 input=a9049054013a1b77]*/
/*[clinic end generated code: output=514f6eb4e4974671 input=a9049054013a1b77]*/
9 changes: 4 additions & 5 deletions Modules/_sqlite/connection.c
Original file line number Diff line number Diff line change
Expand Up @@ -404,21 +404,20 @@ pysqlite_connection_cursor_impl(pysqlite_Connection *self, PyObject *factory)
/*[clinic input]
_sqlite3.Connection.close as pysqlite_connection_close

cls: defining_class

Closes the connection.
[clinic start generated code]*/

static PyObject *
pysqlite_connection_close_impl(pysqlite_Connection *self, PyTypeObject *cls)
/*[clinic end generated code: output=981f0a726752b78a input=16141a7506e49f33]*/
pysqlite_connection_close_impl(pysqlite_Connection *self)
/*[clinic end generated code: output=a546a0da212c9b97 input=3d58064bbffaa3d3]*/
{
if (!pysqlite_check_thread(self)) {
return NULL;
}

if (!self->initialized) {
pysqlite_state *state = pysqlite_get_state_by_cls(cls);
PyTypeObject *tp = Py_TYPE(self);
pysqlite_state *state = pysqlite_get_state_by_type(tp);
PyErr_SetString(state->ProgrammingError,
"Base Connection.__init__ not called.");
return NULL;
Expand Down
9 changes: 4 additions & 5 deletions Modules/_sqlite/cursor.c
Original file line number Diff line number Diff line change
Expand Up @@ -966,17 +966,16 @@ pysqlite_cursor_setoutputsize_impl(pysqlite_Cursor *self, PyObject *size,
/*[clinic input]
_sqlite3.Cursor.close as pysqlite_cursor_close

cls: defining_class

Closes the cursor.
[clinic start generated code]*/

static PyObject *
pysqlite_cursor_close_impl(pysqlite_Cursor *self, PyTypeObject *cls)
/*[clinic end generated code: output=a08ab3d772f45438 input=28ba9b532ab46ba0]*/
pysqlite_cursor_close_impl(pysqlite_Cursor *self)
/*[clinic end generated code: output=b6055e4ec6fe63b6 input=08b36552dbb9a986]*/
{
if (!self->connection) {
pysqlite_state *state = pysqlite_get_state_by_cls(cls);
PyTypeObject *tp = Py_TYPE(self);
pysqlite_state *state = pysqlite_get_state_by_type(tp);
PyErr_SetString(state->ProgrammingError,
"Base Cursor.__init__ not called.");
return NULL;
Expand Down
8 changes: 0 additions & 8 deletions Modules/_sqlite/module.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,14 +70,6 @@ pysqlite_get_state(PyObject *module)
return state;
}

static inline pysqlite_state *
pysqlite_get_state_by_cls(PyTypeObject *cls)
{
pysqlite_state *state = (pysqlite_state *)PyType_GetModuleState(cls);
assert(state != NULL);
return state;
}

struct PyModuleDef _sqlite3module;
Comment thread
erlend-aasland marked this conversation as resolved.
Outdated
static inline pysqlite_state *
pysqlite_get_state_by_type(PyTypeObject *tp)
Expand Down