]> granicus.if.org Git - python/commitdiff
Get rid of METH_OLDARGS.
authorGeorg Brandl <georg@python.org>
Sat, 1 Sep 2007 13:59:50 +0000 (13:59 +0000)
committerGeorg Brandl <georg@python.org>
Sat, 1 Sep 2007 13:59:50 +0000 (13:59 +0000)
Doc/c-api/newtypes.rst
Include/methodobject.h
Objects/methodobject.c

index f8386b6b2f2fdf66b9145978ea91c264d6e8c404..91efe4b3d329a4f78e7f205a6365db73bab17d54 100644 (file)
@@ -255,16 +255,6 @@ convention flags can be combined with a binding flag.
    :ctype:`PyObject\*` parameter representing the single argument.
 
 
-.. XXX deprecated, should be removed
-.. data:: METH_OLDARGS
-
-   This calling convention is deprecated.  The method must be of type
-   :ctype:`PyCFunction`.  The second argument is *NULL* if no arguments are given,
-   a single object if exactly one argument is given, and a tuple of objects if more
-   than one argument is given.  There is no way for a function using this
-   convention to distinguish between a call with multiple arguments and a call with
-   a tuple as the only argument.
-
 These two constants are not used to indicate the calling convention but the
 binding when use with methods of classes.  These may not be used for functions
 defined for modules.  At most one of these flags may be set for any given
index 7b23fe9941e0dfab17f858e4b7598f37f7776dd1..0068120e744e85520499b2f60c1e8ec1f340adda 100644 (file)
@@ -50,7 +50,7 @@ PyAPI_FUNC(PyObject *) PyCFunction_NewEx(PyMethodDef *, PyObject *,
                                         PyObject *);
 
 /* Flag passed to newmethodobject */
-#define METH_OLDARGS  0x0000
+/* #define METH_OLDARGS  0x0000   -- unsupported now */
 #define METH_VARARGS  0x0001
 #define METH_KEYWORDS 0x0002
 /* METH_NOARGS and METH_O must not be combined with the flags above. */
index d7dc2807f40b8d469cc381b51d4eba96d92b7f33..8a8ca03d8b4264ad0101005e2d7034ded4a55229 100644 (file)
@@ -73,7 +73,6 @@ PyCFunction_Call(PyObject *func, PyObject *arg, PyObject *kw)
                        return (*meth)(self, arg);
                break;
        case METH_VARARGS | METH_KEYWORDS:
-       case METH_OLDARGS | METH_KEYWORDS:
                return (*(PyCFunctionWithKeywords)meth)(self, arg, kw);
        case METH_NOARGS:
                if (kw == NULL || PyDict_Size(kw) == 0) {
@@ -97,19 +96,11 @@ PyCFunction_Call(PyObject *func, PyObject *arg, PyObject *kw)
                        return NULL;
                }
                break;
-       case METH_OLDARGS:
-               /* the really old style */
-               if (kw == NULL || PyDict_Size(kw) == 0) {
-                       size = PyTuple_GET_SIZE(arg);
-                       if (size == 1)
-                               arg = PyTuple_GET_ITEM(arg, 0);
-                       else if (size == 0)
-                               arg = NULL;
-                       return (*meth)(self, arg);
-               }
-               break;
        default:
-               PyErr_BadInternalCall();
+               PyErr_SetString(PyExc_SystemError, "Bad call flags in "
+                               "PyCFunction_Call. METH_OLDARGS is no "
+                               "longer supported!");
+                       
                return NULL;
        }
        PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments",