]> granicus.if.org Git - python/commitdiff
Get rid of more coerce cruft (really check in this time :-)
authorNeal Norwitz <nnorwitz@gmail.com>
Tue, 29 Aug 2006 07:57:59 +0000 (07:57 +0000)
committerNeal Norwitz <nnorwitz@gmail.com>
Tue, 29 Aug 2006 07:57:59 +0000 (07:57 +0000)
Doc/api/refcounts.dat
Doc/lib/libfuncs.tex
Doc/tut/tut.tex
Include/object.h
Objects/longobject.c
Objects/object.c
Objects/typeobject.c

index b8aaad543d0e7d6071ec596f605dc14ae95786ce..019bfd4ef8362b27db166922fad8ff5b4162a23a 100644 (file)
@@ -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:
index c9e35b57e7265ba4c92903f2799a8d844b39c02c..f51f0d5808efb83a2bca2382dfa5c4efbf1e471f 100644 (file)
@@ -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.
index 6f6fe6ffaae32175b6ff71ed34db16fa7de3ca99..702d7590287ce208eb15642f1a4bc265e8e3c950 100644 (file)
@@ -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',
index 30f0bec279e8f83c69a4435cf41f3541834b663f..80447a91fab5aaaa32b546d3c6b61c83e82c7426 100644 (file)
@@ -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 *);
 
index ab8a8d7886172cd7c0dc0aee6ba585dd6f8a12b9..87082cbb01407e7a2cd0773979e2123e093bb097 100644 (file)
@@ -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*/
index 4fee2f02feb1e1abee7686183786ee126a050869..e202e9ba0fb3240f2bc071a75bcd6502f542cfcc 100644 (file)
@@ -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
index d16c6b4daecb6a1c8fbe320b30b0364a9ab0d85c..074fad9b2c51caf17d262d8bf706a3bbba1c162d 100644 (file)
@@ -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);