Issue #4910 (1st patch of a series):  fix int() and the corresponding
PyNumber_Int/PyNumber_Long API function so that it no longer attempts
to call the __long__ method for conversion.  Only the __int__ and __trunc__
methods are used.  (This removes a major remaining use of the nb_long
slot from the Python 3.x core.)

Thanks Benjamin for review.
diff --git a/Objects/abstract.c b/Objects/abstract.c
index aee20d6..0a0333c 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -1379,19 +1379,7 @@
 		}
 		return res;
 	}
-	if (m && m->nb_long) { /* This should include subclasses of long */
-		/* Classic classes always take this branch. */
-		PyObject *res = m->nb_long(o);
-		if (res && !PyLong_Check(res)) {
-			PyErr_Format(PyExc_TypeError,
-				     "__long__ returned non-long (type %.200s)",
-				     res->ob_type->tp_name);
-			Py_DECREF(res);
-			return NULL;
-		}
-		return res;
-	}
-	if (PyLong_Check(o)) /* A long subclass without nb_long */
+	if (PyLong_Check(o)) /* An int subclass without nb_int */
 		return _PyLong_Copy((PyLongObject *)o);
 	trunc_func = PyObject_GetAttr(o, trunc_name);
 	if (trunc_func) {