Get rid of more coerce cruft (really check in this time :-)
This commit is contained in:
parent
378b2c9a03
commit
ca810467a4
|
@ -712,10 +712,6 @@ PyNumber_And:PyObject*:o2:0:
|
|||
PyNumber_Check:PyObject*:o:0:
|
||||
PyNumber_Check:int:::
|
||||
|
||||
PyNumber_Coerce:int:::
|
||||
PyNumber_Coerce:PyObject**:p1:+1:
|
||||
PyNumber_Coerce:PyObject**:p2:+1:
|
||||
|
||||
PyNumber_Divide:PyObject*::+1:
|
||||
PyNumber_Divide:PyObject*:o1:0:
|
||||
PyNumber_Divide:PyObject*:o2:0:
|
||||
|
|
|
@ -1228,12 +1228,6 @@ bypass these functions without concerns about missing something important.
|
|||
argument).
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{coerce}{x, y}
|
||||
Return a tuple consisting of the two numeric arguments converted to
|
||||
a common type, using the same rules as used by arithmetic
|
||||
operations. If coercion is not possible, raise \exception{TypeError}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{intern}{string}
|
||||
Enter \var{string} in the table of ``interned'' strings and return
|
||||
the interned string -- which is \var{string} itself or a copy.
|
||||
|
|
|
@ -2696,7 +2696,7 @@ standard module \module{__builtin__}\refbimodindex{__builtin__}:
|
|||
'UserWarning', 'ValueError', 'Warning', 'WindowsError',
|
||||
'ZeroDivisionError', '_', '__debug__', '__doc__', '__import__',
|
||||
'__name__', 'abs', 'basestring', 'bool', 'buffer',
|
||||
'callable', 'chr', 'classmethod', 'cmp', 'coerce', 'compile',
|
||||
'callable', 'chr', 'classmethod', 'cmp', 'compile',
|
||||
'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod',
|
||||
'enumerate', 'eval', 'execfile', 'exit', 'file', 'filter', 'float',
|
||||
'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex',
|
||||
|
|
|
@ -395,7 +395,6 @@ PyAPI_FUNC(long) PyObject_Hash(PyObject *);
|
|||
PyAPI_FUNC(int) PyObject_IsTrue(PyObject *);
|
||||
PyAPI_FUNC(int) PyObject_Not(PyObject *);
|
||||
PyAPI_FUNC(int) PyCallable_Check(PyObject *);
|
||||
PyAPI_FUNC(int) PyNumber_CoerceEx(PyObject **, PyObject **);
|
||||
|
||||
PyAPI_FUNC(void) PyObject_ClearWeakRefs(PyObject *);
|
||||
|
||||
|
|
|
@ -3158,22 +3158,6 @@ long_or(PyObject *v, PyObject *w)
|
|||
return c;
|
||||
}
|
||||
|
||||
static int
|
||||
long_coerce(PyObject **pv, PyObject **pw)
|
||||
{
|
||||
if (PyInt_Check(*pw)) {
|
||||
*pw = PyLong_FromLong(PyInt_AS_LONG(*pw));
|
||||
Py_INCREF(*pv);
|
||||
return 0;
|
||||
}
|
||||
else if (PyLong_Check(*pw)) {
|
||||
Py_INCREF(*pv);
|
||||
Py_INCREF(*pw);
|
||||
return 0;
|
||||
}
|
||||
return 1; /* Can't do it */
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
long_long(PyObject *v)
|
||||
{
|
||||
|
@ -3330,7 +3314,7 @@ static PyNumberMethods long_as_number = {
|
|||
long_and, /*nb_and*/
|
||||
long_xor, /*nb_xor*/
|
||||
long_or, /*nb_or*/
|
||||
long_coerce, /*nb_coerce*/
|
||||
0, /*nb_coerce*/
|
||||
long_int, /*nb_int*/
|
||||
long_long, /*nb_long*/
|
||||
long_float, /*nb_float*/
|
||||
|
|
|
@ -1273,33 +1273,6 @@ PyObject_Not(PyObject *v)
|
|||
return res == 0;
|
||||
}
|
||||
|
||||
/* Coerce two numeric types to the "larger" one.
|
||||
Increment the reference count on each argument.
|
||||
Return value:
|
||||
-1 if an error occurred;
|
||||
0 if the coercion succeeded (and then the reference counts are increased);
|
||||
1 if no coercion is possible (and no error is raised).
|
||||
*/
|
||||
int
|
||||
PyNumber_CoerceEx(PyObject **pv, PyObject **pw)
|
||||
{
|
||||
register PyObject *v = *pv;
|
||||
register PyObject *w = *pw;
|
||||
int res;
|
||||
|
||||
if (v->ob_type->tp_as_number && v->ob_type->tp_as_number->nb_coerce) {
|
||||
res = (*v->ob_type->tp_as_number->nb_coerce)(pv, pw);
|
||||
if (res <= 0)
|
||||
return res;
|
||||
}
|
||||
if (w->ob_type->tp_as_number && w->ob_type->tp_as_number->nb_coerce) {
|
||||
res = (*w->ob_type->tp_as_number->nb_coerce)(pw, pv);
|
||||
if (res <= 0)
|
||||
return res;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Test whether an object can be called */
|
||||
|
||||
int
|
||||
|
|
|
@ -2935,7 +2935,6 @@ inherit_slots(PyTypeObject *type, PyTypeObject *base)
|
|||
COPYNUM(nb_and);
|
||||
COPYNUM(nb_xor);
|
||||
COPYNUM(nb_or);
|
||||
COPYNUM(nb_coerce);
|
||||
COPYNUM(nb_int);
|
||||
COPYNUM(nb_long);
|
||||
COPYNUM(nb_float);
|
||||
|
|
Loading…
Reference in New Issue