Get rid of more coerce cruft (really check in this time :-)

This commit is contained in:
Neal Norwitz 2006-08-29 07:57:59 +00:00
parent 378b2c9a03
commit ca810467a4
7 changed files with 2 additions and 57 deletions

View File

@ -712,10 +712,6 @@ PyNumber_And:PyObject*:o2:0:
PyNumber_Check:PyObject*:o:0: PyNumber_Check:PyObject*:o:0:
PyNumber_Check:int::: PyNumber_Check:int:::
PyNumber_Coerce:int:::
PyNumber_Coerce:PyObject**:p1:+1:
PyNumber_Coerce:PyObject**:p2:+1:
PyNumber_Divide:PyObject*::+1: PyNumber_Divide:PyObject*::+1:
PyNumber_Divide:PyObject*:o1:0: PyNumber_Divide:PyObject*:o1:0:
PyNumber_Divide:PyObject*:o2:0: PyNumber_Divide:PyObject*:o2:0:

View File

@ -1228,12 +1228,6 @@ bypass these functions without concerns about missing something important.
argument). argument).
\end{funcdesc} \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} \begin{funcdesc}{intern}{string}
Enter \var{string} in the table of ``interned'' strings and return Enter \var{string} in the table of ``interned'' strings and return
the interned string -- which is \var{string} itself or a copy. the interned string -- which is \var{string} itself or a copy.

View File

@ -2696,7 +2696,7 @@ standard module \module{__builtin__}\refbimodindex{__builtin__}:
'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'UserWarning', 'ValueError', 'Warning', 'WindowsError',
'ZeroDivisionError', '_', '__debug__', '__doc__', '__import__', 'ZeroDivisionError', '_', '__debug__', '__doc__', '__import__',
'__name__', 'abs', 'basestring', 'bool', 'buffer', '__name__', 'abs', 'basestring', 'bool', 'buffer',
'callable', 'chr', 'classmethod', 'cmp', 'coerce', 'compile', 'callable', 'chr', 'classmethod', 'cmp', 'compile',
'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod',
'enumerate', 'eval', 'execfile', 'exit', 'file', 'filter', 'float', 'enumerate', 'eval', 'execfile', 'exit', 'file', 'filter', 'float',
'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex',

View File

@ -395,7 +395,6 @@ PyAPI_FUNC(long) PyObject_Hash(PyObject *);
PyAPI_FUNC(int) PyObject_IsTrue(PyObject *); PyAPI_FUNC(int) PyObject_IsTrue(PyObject *);
PyAPI_FUNC(int) PyObject_Not(PyObject *); PyAPI_FUNC(int) PyObject_Not(PyObject *);
PyAPI_FUNC(int) PyCallable_Check(PyObject *); PyAPI_FUNC(int) PyCallable_Check(PyObject *);
PyAPI_FUNC(int) PyNumber_CoerceEx(PyObject **, PyObject **);
PyAPI_FUNC(void) PyObject_ClearWeakRefs(PyObject *); PyAPI_FUNC(void) PyObject_ClearWeakRefs(PyObject *);

View File

@ -3158,22 +3158,6 @@ long_or(PyObject *v, PyObject *w)
return c; 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 * static PyObject *
long_long(PyObject *v) long_long(PyObject *v)
{ {
@ -3330,7 +3314,7 @@ static PyNumberMethods long_as_number = {
long_and, /*nb_and*/ long_and, /*nb_and*/
long_xor, /*nb_xor*/ long_xor, /*nb_xor*/
long_or, /*nb_or*/ long_or, /*nb_or*/
long_coerce, /*nb_coerce*/ 0, /*nb_coerce*/
long_int, /*nb_int*/ long_int, /*nb_int*/
long_long, /*nb_long*/ long_long, /*nb_long*/
long_float, /*nb_float*/ long_float, /*nb_float*/

View File

@ -1273,33 +1273,6 @@ PyObject_Not(PyObject *v)
return res == 0; 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 */ /* Test whether an object can be called */
int int

View File

@ -2935,7 +2935,6 @@ inherit_slots(PyTypeObject *type, PyTypeObject *base)
COPYNUM(nb_and); COPYNUM(nb_and);
COPYNUM(nb_xor); COPYNUM(nb_xor);
COPYNUM(nb_or); COPYNUM(nb_or);
COPYNUM(nb_coerce);
COPYNUM(nb_int); COPYNUM(nb_int);
COPYNUM(nb_long); COPYNUM(nb_long);
COPYNUM(nb_float); COPYNUM(nb_float);