summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2002-01-15 19:21:05 (GMT)
committerGuido van Rossum <guido@python.org>2002-01-15 19:21:05 (GMT)
commit4f3a62d9bcc5219cfda370f540e6040a878d3b4f (patch)
tree4cc5f0e0b04e24be4360b07c8060500fcb4fb6a6
parent5e99731ab9e4706b4b06a57e3f429d2447071b4d (diff)
downloadcpython-4f3a62d9bcc5219cfda370f540e6040a878d3b4f.zip
cpython-4f3a62d9bcc5219cfda370f540e6040a878d3b4f.tar.gz
cpython-4f3a62d9bcc5219cfda370f540e6040a878d3b4f.tar.bz2
There's no need for typechecks on the second and third argument of
new.instancemethod() -- the instancemethod object is now a perfectly general container. This fixes SF bug ##503091 (Pedro Rodriquez): new.instancemethod fails for new classes This is a 2.2.1 candidate.
-rw-r--r--Doc/lib/libnew.tex3
-rw-r--r--Modules/newmodule.c11
2 files changed, 3 insertions, 11 deletions
diff --git a/Doc/lib/libnew.tex b/Doc/lib/libnew.tex
index 9547b58..67bfb2e 100644
--- a/Doc/lib/libnew.tex
+++ b/Doc/lib/libnew.tex
@@ -25,8 +25,7 @@ the object will be in a consistent state.
\begin{funcdesc}{instancemethod}{function, instance, class}
This function will return a method object, bound to \var{instance}, or
unbound if \var{instance} is \code{None}. \var{function} must be
-callable, and \var{instance} must be an instance object or
-\code{None}.
+callable.
\end{funcdesc}
\begin{funcdesc}{function}{code, globals\optional{, name\optional{, argdefs}}}
diff --git a/Modules/newmodule.c b/Modules/newmodule.c
index 252637a..0a48926 100644
--- a/Modules/newmodule.c
+++ b/Modules/newmodule.c
@@ -40,10 +40,8 @@ new_instancemethod(PyObject* unused, PyObject* args)
PyObject* self;
PyObject* classObj;
- if (!PyArg_ParseTuple(args, "OOO!:instancemethod",
- &func,
- &self,
- &PyClass_Type, &classObj))
+ if (!PyArg_ParseTuple(args, "OOO:instancemethod",
+ &func, &self, &classObj))
return NULL;
if (!PyCallable_Check(func)) {
PyErr_SetString(PyExc_TypeError,
@@ -52,11 +50,6 @@ new_instancemethod(PyObject* unused, PyObject* args)
}
if (self == Py_None)
self = NULL;
- else if (!PyInstance_Check(self)) {
- PyErr_SetString(PyExc_TypeError,
- "second argument must be instance or None");
- return NULL;
- }
return PyMethod_New(func, self, classObj);
}