From 4f3a62d9bcc5219cfda370f540e6040a878d3b4f Mon Sep 17 00:00:00 2001
From: Guido van Rossum <guido@python.org>
Date: Tue, 15 Jan 2002 19:21:05 +0000
Subject: 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.
---
 Doc/lib/libnew.tex  |  3 +--
 Modules/newmodule.c | 11 ++---------
 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);
 }
 
-- 
cgit v0.12

