aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Modules/_sqlite/row.c
diff options
context:
space:
mode:
Diffstat (limited to 'Modules/_sqlite/row.c')
-rw-r--r--Modules/_sqlite/row.c40
1 files changed, 27 insertions, 13 deletions
diff --git a/Modules/_sqlite/row.c b/Modules/_sqlite/row.c
index 14555076a7e..79660008b18 100644
--- a/Modules/_sqlite/row.c
+++ b/Modules/_sqlite/row.c
@@ -32,6 +32,8 @@
#include "clinic/row.c.h"
#undef clinic_state
+#define _pysqlite_Row_CAST(op) ((pysqlite_Row *)(op))
+
/*[clinic input]
module _sqlite3
class _sqlite3.Row "pysqlite_Row *" "clinic_state()->RowType"
@@ -39,16 +41,18 @@ class _sqlite3.Row "pysqlite_Row *" "clinic_state()->RowType"
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=966c53403d7f3a40]*/
static int
-row_clear(pysqlite_Row *self)
+row_clear(PyObject *op)
{
+ pysqlite_Row *self = _pysqlite_Row_CAST(op);
Py_CLEAR(self->data);
Py_CLEAR(self->description);
return 0;
}
static int
-row_traverse(pysqlite_Row *self, visitproc visit, void *arg)
+row_traverse(PyObject *op, visitproc visit, void *arg)
{
+ pysqlite_Row *self = _pysqlite_Row_CAST(op);
Py_VISIT(Py_TYPE(self));
Py_VISIT(self->data);
Py_VISIT(self->description);
@@ -60,7 +64,7 @@ pysqlite_row_dealloc(PyObject *self)
{
PyTypeObject *tp = Py_TYPE(self);
PyObject_GC_UnTrack(self);
- tp->tp_clear(self);
+ (void)tp->tp_clear(self);
tp->tp_free(self);
Py_DECREF(tp);
}
@@ -94,10 +98,12 @@ pysqlite_row_new_impl(PyTypeObject *type, pysqlite_Cursor *cursor,
return (PyObject *) self;
}
-PyObject* pysqlite_row_item(pysqlite_Row* self, Py_ssize_t idx)
+static PyObject *
+pysqlite_row_item(PyObject *op, Py_ssize_t idx)
{
- PyObject *item = PyTuple_GetItem(self->data, idx);
- return Py_XNewRef(item);
+ pysqlite_Row *self = _pysqlite_Row_CAST(op);
+ PyObject *item = PyTuple_GetItem(self->data, idx);
+ return Py_XNewRef(item);
}
static int
@@ -129,10 +135,11 @@ equal_ignore_case(PyObject *left, PyObject *right)
}
static PyObject *
-pysqlite_row_subscript(pysqlite_Row *self, PyObject *idx)
+pysqlite_row_subscript(PyObject *op, PyObject *idx)
{
Py_ssize_t _idx;
Py_ssize_t nitems, i;
+ pysqlite_Row *self = _pysqlite_Row_CAST(op);
if (PyLong_Check(idx)) {
_idx = PyNumber_AsSsize_t(idx, PyExc_IndexError);
@@ -174,8 +181,9 @@ pysqlite_row_subscript(pysqlite_Row *self, PyObject *idx)
}
static Py_ssize_t
-pysqlite_row_length(pysqlite_Row* self)
+pysqlite_row_length(PyObject *op)
{
+ pysqlite_Row *self = _pysqlite_Row_CAST(op);
return PyTuple_GET_SIZE(self->data);
}
@@ -208,24 +216,30 @@ pysqlite_row_keys_impl(pysqlite_Row *self)
return list;
}
-static PyObject* pysqlite_iter(pysqlite_Row* self)
+static PyObject *
+pysqlite_iter(PyObject *op)
{
+ pysqlite_Row *self = _pysqlite_Row_CAST(op);
return PyObject_GetIter(self->data);
}
-static Py_hash_t pysqlite_row_hash(pysqlite_Row *self)
+static Py_hash_t
+pysqlite_row_hash(PyObject *op)
{
+ pysqlite_Row *self = _pysqlite_Row_CAST(op);
return PyObject_Hash(self->description) ^ PyObject_Hash(self->data);
}
-static PyObject* pysqlite_row_richcompare(pysqlite_Row *self, PyObject *_other, int opid)
+static PyObject *
+pysqlite_row_richcompare(PyObject *op, PyObject *opother, int opid)
{
if (opid != Py_EQ && opid != Py_NE)
Py_RETURN_NOTIMPLEMENTED;
+ pysqlite_Row *self = _pysqlite_Row_CAST(op);
pysqlite_state *state = pysqlite_get_state_by_type(Py_TYPE(self));
- if (PyObject_TypeCheck(_other, state->RowType)) {
- pysqlite_Row *other = (pysqlite_Row *)_other;
+ if (PyObject_TypeCheck(opother, state->RowType)) {
+ pysqlite_Row *other = (pysqlite_Row *)opother;
int eq = PyObject_RichCompareBool(self->description, other->description, Py_EQ);
if (eq < 0) {
return NULL;