]> granicus.if.org Git - python/commitdiff
call_commethod was only used in samples/Windows, which no longer exists.
authorEli Bendersky <eliben@gmail.com>
Wed, 6 Mar 2013 14:21:46 +0000 (06:21 -0800)
committerEli Bendersky <eliben@gmail.com>
Wed, 6 Mar 2013 14:21:46 +0000 (06:21 -0800)
This method is dead code - not documented, not tested. As far as we know, it
can be horribly broken.

Misc/NEWS
Modules/_ctypes/callproc.c

index a0dd2f60f077aaa3fdf3bd52e9854594bd237054..adecfe241c6617be0ef5322cbc43949fb71dde5e 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -881,6 +881,9 @@ Library
   `sha3_256`, `sha3_384` and `sha3_512`. As part of the patch some common
   code was moved from _hashopenssl.c to hashlib.h.
 
+- ctypes.call_commethod was removed, since its only usage was in the defunct
+  samples directory.
+
 Extension Modules
 -----------------
 
index 5670fd22e36214c156dda559baf0963288f74ba6..e72f256c40939d6ce986b1e82d2f45bda0be8452 100644 (file)
@@ -1263,62 +1263,6 @@ static PyObject *free_library(PyObject *self, PyObject *args)
     return Py_None;
 }
 
-/* obsolete, should be removed */
-/* Only used by sample code (in samples\Windows\COM.py) */
-static PyObject *
-call_commethod(PyObject *self, PyObject *args)
-{
-    IUnknown *pIunk;
-    int index;
-    PyObject *arguments;
-    PPROC *lpVtbl;
-    PyObject *result;
-    CDataObject *pcom;
-    PyObject *argtypes = NULL;
-
-    if (!PyArg_ParseTuple(args,
-                          "OiO!|O!",
-                          &pcom, &index,
-                          &PyTuple_Type, &arguments,
-                          &PyTuple_Type, &argtypes))
-        return NULL;
-
-    if (argtypes && (PyTuple_GET_SIZE(arguments) != PyTuple_GET_SIZE(argtypes))) {
-        PyErr_Format(PyExc_TypeError,
-                     "Method takes %d arguments (%d given)",
-                     PyTuple_GET_SIZE(argtypes), PyTuple_GET_SIZE(arguments));
-        return NULL;
-    }
-
-    if (!CDataObject_Check(pcom) || (pcom->b_size != sizeof(void *))) {
-        PyErr_Format(PyExc_TypeError,
-                     "COM Pointer expected instead of %s instance",
-                     Py_TYPE(pcom)->tp_name);
-        return NULL;
-    }
-
-    if ((*(void **)(pcom->b_ptr)) == NULL) {
-        PyErr_SetString(PyExc_ValueError,
-                        "The COM 'this' pointer is NULL");
-        return NULL;
-    }
-
-    pIunk = (IUnknown *)(*(void **)(pcom->b_ptr));
-    lpVtbl = (PPROC *)(pIunk->lpVtbl);
-
-    result =  _ctypes_callproc(lpVtbl[index],
-                        arguments,
-#ifdef MS_WIN32
-                        pIunk,
-                        NULL,
-#endif
-                        FUNCFLAG_HRESULT, /* flags */
-                        argtypes, /* self->argtypes */
-                        NULL, /* self->restype */
-                        NULL); /* checker */
-    return result;
-}
-
 static char copy_com_pointer_doc[] =
 "CopyComPointer(src, dst) -> HRESULT value\n";
 
@@ -1813,7 +1757,6 @@ PyMethodDef _ctypes_module_methods[] = {
     {"FormatError", format_error, METH_VARARGS, format_error_doc},
     {"LoadLibrary", load_library, METH_VARARGS, load_library_doc},
     {"FreeLibrary", free_library, METH_VARARGS, free_library_doc},
-    {"call_commethod", call_commethod, METH_VARARGS },
     {"_check_HRESULT", check_hresult, METH_VARARGS},
 #else
     {"dlopen", py_dl_open, METH_VARARGS,