@@ -64,6 +64,8 @@ typedef struct {
6464 DBM * di_dbm ;
6565} dbmobject ;
6666
67+ #define dbmobject_CAST (op ) ((dbmobject *)(op))
68+
6769#include "clinic/_dbmmodule.c.h"
6870
6971#define check_dbmobject_open (v , err ) \
@@ -94,15 +96,16 @@ newdbmobject(_dbm_state *state, const char *file, int flags, int mode)
9496
9597/* Methods */
9698static int
97- dbm_traverse (dbmobject * dp , visitproc visit , void * arg )
99+ dbm_traverse (PyObject * dp , visitproc visit , void * arg )
98100{
99101 Py_VISIT (Py_TYPE (dp ));
100102 return 0 ;
101103}
102104
103105static void
104- dbm_dealloc (dbmobject * dp )
106+ dbm_dealloc (PyObject * self )
105107{
108+ dbmobject * dp = dbmobject_CAST (self );
106109 PyObject_GC_UnTrack (dp );
107110 if (dp -> di_dbm ) {
108111 dbm_close (dp -> di_dbm );
@@ -113,8 +116,9 @@ dbm_dealloc(dbmobject *dp)
113116}
114117
115118static Py_ssize_t
116- dbm_length (dbmobject * dp )
119+ dbm_length (PyObject * self )
117120{
121+ dbmobject * dp = dbmobject_CAST (self );
118122 _dbm_state * state = PyType_GetModuleState (Py_TYPE (dp ));
119123 assert (state != NULL );
120124 if (dp -> di_dbm == NULL ) {
@@ -135,8 +139,9 @@ dbm_length(dbmobject *dp)
135139}
136140
137141static int
138- dbm_bool (dbmobject * dp )
142+ dbm_bool (PyObject * self )
139143{
144+ dbmobject * dp = dbmobject_CAST (self );
140145 _dbm_state * state = PyType_GetModuleState (Py_TYPE (dp ));
141146 assert (state != NULL );
142147
@@ -166,10 +171,11 @@ dbm_bool(dbmobject *dp)
166171}
167172
168173static PyObject *
169- dbm_subscript (dbmobject * dp , PyObject * key )
174+ dbm_subscript (PyObject * self , PyObject * key )
170175{
171176 datum drec , krec ;
172177 Py_ssize_t tmp_size ;
178+ dbmobject * dp = dbmobject_CAST (self );
173179 _dbm_state * state = PyType_GetModuleState (Py_TYPE (dp ));
174180 assert (state != NULL );
175181 if (!PyArg_Parse (key , "s#" , & krec .dptr , & tmp_size )) {
@@ -192,10 +198,11 @@ dbm_subscript(dbmobject *dp, PyObject *key)
192198}
193199
194200static int
195- dbm_ass_sub (dbmobject * dp , PyObject * v , PyObject * w )
201+ dbm_ass_sub (PyObject * self , PyObject * v , PyObject * w )
196202{
197203 datum krec , drec ;
198204 Py_ssize_t tmp_size ;
205+ dbmobject * dp = dbmobject_CAST (self );
199206
200207 if ( !PyArg_Parse (v , "s#" , & krec .dptr , & tmp_size ) ) {
201208 PyErr_SetString (PyExc_TypeError ,
@@ -305,7 +312,7 @@ _dbm_dbm_keys_impl(dbmobject *self, PyTypeObject *cls)
305312static int
306313dbm_contains (PyObject * self , PyObject * arg )
307314{
308- dbmobject * dp = ( dbmobject * ) self ;
315+ dbmobject * dp = dbmobject_CAST ( self ) ;
309316 datum key , val ;
310317 Py_ssize_t size ;
311318
@@ -452,15 +459,16 @@ _dbm_dbm_clear_impl(dbmobject *self, PyTypeObject *cls)
452459}
453460
454461static PyObject *
455- dbm__enter__ (PyObject * self , PyObject * args )
462+ dbm__enter__ (PyObject * self , PyObject * Py_UNUSED ( dummy ) )
456463{
457464 return Py_NewRef (self );
458465}
459466
460467static PyObject *
461- dbm__exit__ (PyObject * self , PyObject * args )
468+ dbm__exit__ (PyObject * self , PyObject * Py_UNUSED ( args ) )
462469{
463- return _dbm_dbm_close_impl ((dbmobject * )self );
470+ dbmobject * dp = dbmobject_CAST (self );
471+ return _dbm_dbm_close_impl (dp );
464472}
465473
466474static PyMethodDef dbm_methods [] = {
@@ -610,7 +618,7 @@ _dbm_module_clear(PyObject *module)
610618static void
611619_dbm_module_free (void * module )
612620{
613- _dbm_module_clear ((PyObject * )module );
621+ ( void ) _dbm_module_clear ((PyObject * )module );
614622}
615623
616624static PyModuleDef_Slot _dbmmodule_slots [] = {
0 commit comments