]> granicus.if.org Git - python/commitdiff
Fix various minor errors in passing arguments to
authorMartin v. Löwis <martin@v.loewis.de>
Thu, 19 Oct 2006 11:00:37 +0000 (11:00 +0000)
committerMartin v. Löwis <martin@v.loewis.de>
Thu, 19 Oct 2006 11:00:37 +0000 (11:00 +0000)
PyArg_ParseTuple.

Modules/_ctypes/callproc.c
Modules/_ssl.c
Modules/audioop.c
Modules/dbmmodule.c

index 19c4da4c7ec6fe79f9bb8f2f4c60176483a18968..18e1991e4db9249f2c37c184374878c0f4be73ff 100644 (file)
@@ -1247,11 +1247,11 @@ static PyObject *py_dl_open(PyObject *self, PyObject *args)
 
 static PyObject *py_dl_close(PyObject *self, PyObject *args)
 {
-       void * handle;
+       int handle;
 
        if (!PyArg_ParseTuple(args, "i:dlclose", &handle))
                return NULL;
-       if (dlclose(handle)) {
+       if (dlclose((void*)handle)) {
                PyErr_SetString(PyExc_OSError,
                                       ctypes_dlerror());
                return NULL;
@@ -1263,12 +1263,12 @@ static PyObject *py_dl_close(PyObject *self, PyObject *args)
 static PyObject *py_dl_sym(PyObject *self, PyObject *args)
 {
        char *name;
-       void *handle;
+       int handle;
        void *ptr;
 
        if (!PyArg_ParseTuple(args, "is:dlsym", &handle, &name))
                return NULL;
-       ptr = ctypes_dlsym(handle, name);
+       ptr = ctypes_dlsym((void*)handle, name);
        if (!ptr) {
                PyErr_SetString(PyExc_OSError,
                                       ctypes_dlerror());
@@ -1286,7 +1286,7 @@ static PyObject *py_dl_sym(PyObject *self, PyObject *args)
 static PyObject *
 call_function(PyObject *self, PyObject *args)
 {
-       PPROC func;
+       int func;
        PyObject *arguments;
        PyObject *result;
 
@@ -1296,7 +1296,7 @@ call_function(PyObject *self, PyObject *args)
                              &PyTuple_Type, &arguments))
                return NULL;
 
-       result =  _CallProc(func,
+       result =  _CallProc((PPROC)func,
                            arguments,
 #ifdef MS_WIN32
                            NULL,
@@ -1317,7 +1317,7 @@ call_function(PyObject *self, PyObject *args)
 static PyObject *
 call_cdeclfunction(PyObject *self, PyObject *args)
 {
-       PPROC func;
+       int func;
        PyObject *arguments;
        PyObject *result;
 
@@ -1327,7 +1327,7 @@ call_cdeclfunction(PyObject *self, PyObject *args)
                              &PyTuple_Type, &arguments))
                return NULL;
 
-       result =  _CallProc(func,
+       result =  _CallProc((PPROC)func,
                            arguments,
 #ifdef MS_WIN32
                            NULL,
@@ -1510,7 +1510,7 @@ resize(PyObject *self, PyObject *args)
 #else
                              "On:resize",
 #endif
-                             (PyObject *)&obj, &size))
+                             &obj, &size))
                return NULL;
 
        dict = PyObject_stgdict((PyObject *)obj);
index 3b91b24515f4268d1b9e22a88ed90eee3b9d1377..f1e1092ac7dad9eea6798c4e32db052d80f341b8 100644 (file)
@@ -317,7 +317,7 @@ PySocket_ssl(PyObject *self, PyObject *args)
 
        if (!PyArg_ParseTuple(args, "O!|zz:ssl",
                              PySocketModule.Sock_Type,
-                             (PyObject*)&Sock,
+                             &Sock,
                              &key_file, &cert_file))
                return NULL;
 
index 8f5d30c80585d90ceeb633bbb0117c7f86f5fcc4..ce009758dee4e64787c03aa3a3a52ecbfb98461e 100644 (file)
@@ -472,8 +472,12 @@ audioop_findfit(PyObject *self, PyObject *args)
         double aj_m1, aj_lm1;
         double sum_ri_2, sum_aij_2, sum_aij_ri, result, best_result, factor;
 
+       /* Passing a short** for an 's' argument is correct only
+          if the string contents is aligned for interpretation
+          as short[]. Due to the definition of PyStringObject,
+          this is currently (Python 2.6) the case. */
         if ( !PyArg_ParseTuple(args, "s#s#:findfit",
-                              &cp1, &len1, &cp2, &len2) )
+                              (char**)&cp1, &len1, (char**)&cp2, &len2) )
                 return 0;
         if ( len1 & 1 || len2 & 1 ) {
                 PyErr_SetString(AudioopError, "Strings should be even-sized");
@@ -530,7 +534,7 @@ audioop_findfactor(PyObject *self, PyObject *args)
         double sum_ri_2, sum_aij_ri, result;
 
         if ( !PyArg_ParseTuple(args, "s#s#:findfactor",
-                              &cp1, &len1, &cp2, &len2) )
+                              (char**)&cp1, &len1, (char**)&cp2, &len2) )
                 return 0;
         if ( len1 & 1 || len2 & 1 ) {
                 PyErr_SetString(AudioopError, "Strings should be even-sized");
@@ -562,7 +566,8 @@ audioop_findmax(PyObject *self, PyObject *args)
         double aj_m1, aj_lm1;
         double result, best_result;
 
-        if ( !PyArg_ParseTuple(args, "s#i:findmax", &cp1, &len1, &len2) )
+        if ( !PyArg_ParseTuple(args, "s#i:findmax", 
+                              (char**)&cp1, &len1, &len2) )
                 return 0;
         if ( len1 & 1 ) {
                 PyErr_SetString(AudioopError, "Strings should be even-sized");
index 9086c847702740c363ade3dca4110bd296130cf1..fa1fde2be24c23db73c263a16a5741a8eda00349 100644 (file)
@@ -208,11 +208,13 @@ dbm_keys(register dbmobject *dp, PyObject *unused)
 static PyObject *
 dbm_has_key(register dbmobject *dp, PyObject *args)
 {
+       char *tmp_ptr;
        datum key, val;
        int tmp_size;
        
-       if (!PyArg_ParseTuple(args, "s#:has_key", &key.dptr, &tmp_size))
+       if (!PyArg_ParseTuple(args, "s#:has_key", &tmp_ptr, &tmp_size))
                return NULL;
+       key.dptr = tmp_ptr;
        key.dsize = tmp_size;
         check_dbmobject_open(dp);
        val = dbm_fetch(dp->di_dbm, key);
@@ -224,11 +226,13 @@ dbm_get(register dbmobject *dp, PyObject *args)
 {
        datum key, val;
        PyObject *defvalue = Py_None;
+       char *tmp_ptr;
        int tmp_size;
 
        if (!PyArg_ParseTuple(args, "s#|O:get",
-                              &key.dptr, &tmp_size, &defvalue))
+                              &tmp_ptr, &tmp_size, &defvalue))
                return NULL;
+       key.dptr = tmp_ptr;
        key.dsize = tmp_size;
         check_dbmobject_open(dp);
        val = dbm_fetch(dp->di_dbm, key);
@@ -245,11 +249,13 @@ dbm_setdefault(register dbmobject *dp, PyObject *args)
 {
        datum key, val;
        PyObject *defvalue = NULL;
+       char *tmp_ptr;
        int tmp_size;
 
        if (!PyArg_ParseTuple(args, "s#|S:setdefault",
-                              &key.dptr, &tmp_size, &defvalue))
+                              &tmp_ptr, &tmp_size, &defvalue))
                return NULL;
+       key.dptr = tmp_ptr;
        key.dsize = tmp_size;
         check_dbmobject_open(dp);
        val = dbm_fetch(dp->di_dbm, key);