@@ -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 ( args ) )
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 [] =  {
0 commit comments