DBM *di_dbm;
} dbmobject;
+#define dbmobject_CAST(op) ((dbmobject *)(op))
+
#include "clinic/_dbmmodule.c.h"
#define check_dbmobject_open(v, err) \
/* Methods */
static int
-dbm_traverse(dbmobject *dp, visitproc visit, void *arg)
+dbm_traverse(PyObject *dp, visitproc visit, void *arg)
{
Py_VISIT(Py_TYPE(dp));
return 0;
}
static void
-dbm_dealloc(dbmobject *dp)
+dbm_dealloc(PyObject *self)
{
+ dbmobject *dp = dbmobject_CAST(self);
PyObject_GC_UnTrack(dp);
if (dp->di_dbm) {
dbm_close(dp->di_dbm);
}
static Py_ssize_t
-dbm_length(dbmobject *dp)
+dbm_length(PyObject *self)
{
+ dbmobject *dp = dbmobject_CAST(self);
_dbm_state *state = PyType_GetModuleState(Py_TYPE(dp));
assert(state != NULL);
if (dp->di_dbm == NULL) {
}
static int
-dbm_bool(dbmobject *dp)
+dbm_bool(PyObject *self)
{
+ dbmobject *dp = dbmobject_CAST(self);
_dbm_state *state = PyType_GetModuleState(Py_TYPE(dp));
assert(state != NULL);
}
static PyObject *
-dbm_subscript(dbmobject *dp, PyObject *key)
+dbm_subscript(PyObject *self, PyObject *key)
{
datum drec, krec;
Py_ssize_t tmp_size;
+ dbmobject *dp = dbmobject_CAST(self);
_dbm_state *state = PyType_GetModuleState(Py_TYPE(dp));
assert(state != NULL);
if (!PyArg_Parse(key, "s#", &krec.dptr, &tmp_size)) {
}
static int
-dbm_ass_sub(dbmobject *dp, PyObject *v, PyObject *w)
+dbm_ass_sub(PyObject *self, PyObject *v, PyObject *w)
{
datum krec, drec;
Py_ssize_t tmp_size;
+ dbmobject *dp = dbmobject_CAST(self);
if ( !PyArg_Parse(v, "s#", &krec.dptr, &tmp_size) ) {
PyErr_SetString(PyExc_TypeError,
static int
dbm_contains(PyObject *self, PyObject *arg)
{
- dbmobject *dp = (dbmobject *)self;
+ dbmobject *dp = dbmobject_CAST(self);
datum key, val;
Py_ssize_t size;
}
static PyObject *
-dbm__enter__(PyObject *self, PyObject *args)
+dbm__enter__(PyObject *self, PyObject *Py_UNUSED(dummy))
{
return Py_NewRef(self);
}
static PyObject *
-dbm__exit__(PyObject *self, PyObject *args)
+dbm__exit__(PyObject *self, PyObject *Py_UNUSED(args))
{
- return _dbm_dbm_close_impl((dbmobject *)self);
+ dbmobject *dp = dbmobject_CAST(self);
+ return _dbm_dbm_close_impl(dp);
}
static PyMethodDef dbm_methods[] = {
static void
_dbm_module_free(void *module)
{
- _dbm_module_clear((PyObject *)module);
+ (void)_dbm_module_clear((PyObject *)module);
}
static PyModuleDef_Slot _dbmmodule_slots[] = {