Kaydet (Commit) 428f0641 authored tarafından Georg Brandl's avatar Georg Brandl

Remove the deprecated and useless "pend" argument from

PyFloat_FromString. (fixes bug #1650903)
üst 9091e3a4
...@@ -430,10 +430,9 @@ booleans. The following macros are available, however. ...@@ -430,10 +430,9 @@ booleans. The following macros are available, however.
\versionadded{2.2} \versionadded{2.2}
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyFloat_FromString}{PyObject *str, char **pend} \begin{cfuncdesc}{PyObject*}{PyFloat_FromString}{PyObject *str}
Create a \ctype{PyFloatObject} object based on the string value in Create a \ctype{PyFloatObject} object based on the string value in
\var{str}, or \NULL{} on failure. The \var{pend} argument is ignored. It \var{str}, or \NULL{} on failure.
remains only for backward compatibility.
\end{cfuncdesc} \end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyFloat_FromDouble}{double v} \begin{cfuncdesc}{PyObject*}{PyFloat_FromDouble}{double v}
......
...@@ -385,7 +385,6 @@ PyFloat_FromDouble:double:v:: ...@@ -385,7 +385,6 @@ PyFloat_FromDouble:double:v::
PyFloat_FromString:PyObject*::+1: PyFloat_FromString:PyObject*::+1:
PyFloat_FromString:PyObject*:str:0: PyFloat_FromString:PyObject*:str:0:
PyFloat_FromString:char**:pend:0:ignored
PyFrozenSet_New:PyObject*::+1: PyFrozenSet_New:PyObject*::+1:
PyFrozenSet_New:PyObject*:iterable:0: PyFrozenSet_New:PyObject*:iterable:0:
......
...@@ -21,10 +21,8 @@ PyAPI_DATA(PyTypeObject) PyFloat_Type; ...@@ -21,10 +21,8 @@ PyAPI_DATA(PyTypeObject) PyFloat_Type;
#define PyFloat_Check(op) PyObject_TypeCheck(op, &PyFloat_Type) #define PyFloat_Check(op) PyObject_TypeCheck(op, &PyFloat_Type)
#define PyFloat_CheckExact(op) ((op)->ob_type == &PyFloat_Type) #define PyFloat_CheckExact(op) ((op)->ob_type == &PyFloat_Type)
/* Return Python float from string PyObject. Second argument ignored on /* Return Python float from string PyObject. */
input, and, if non-NULL, NULL is stored into *junk (this tried to serve a PyAPI_FUNC(PyObject *) PyFloat_FromString(PyObject*);
purpose once but can't be made to work as intended). */
PyAPI_FUNC(PyObject *) PyFloat_FromString(PyObject*, char** junk);
/* Return Python float from C double. */ /* Return Python float from C double. */
PyAPI_FUNC(PyObject *) PyFloat_FromDouble(double); PyAPI_FUNC(PyObject *) PyFloat_FromDouble(double);
......
...@@ -28,6 +28,9 @@ TO DO ...@@ -28,6 +28,9 @@ TO DO
Core and Builtins Core and Builtins
----------------- -----------------
- The long-deprecated argument "pend" of PyFloat_FromString() has been
removed.
- The dir() function has been extended to call the __dir__() method on - The dir() function has been extended to call the __dir__() method on
its argument, if it exists. If not, it will work like before. This allows its argument, if it exists. If not, it will work like before. This allows
customizing the output of dir() in the presence of a __getattr__(). customizing the output of dir() in the presence of a __getattr__().
......
...@@ -968,7 +968,7 @@ PyNumber_Float(PyObject *o) ...@@ -968,7 +968,7 @@ PyNumber_Float(PyObject *o)
PyFloatObject *po = (PyFloatObject *)o; PyFloatObject *po = (PyFloatObject *)o;
return PyFloat_FromDouble(po->ob_fval); return PyFloat_FromDouble(po->ob_fval);
} }
return PyFloat_FromString(o, NULL); return PyFloat_FromString(o);
} }
/* Operations on sequences */ /* Operations on sequences */
......
...@@ -62,24 +62,8 @@ PyFloat_FromDouble(double fval) ...@@ -62,24 +62,8 @@ PyFloat_FromDouble(double fval)
return (PyObject *) op; return (PyObject *) op;
} }
/**************************************************************************
RED_FLAG 22-Sep-2000 tim
PyFloat_FromString's pend argument is braindead. Prior to this RED_FLAG,
1. If v was a regular string, *pend was set to point to its terminating
null byte. That's useless (the caller can find that without any
help from this function!).
2. If v was a Unicode string, or an object convertible to a character
buffer, *pend was set to point into stack trash (the auto temp
vector holding the character buffer). That was downright dangerous.
Since we can't change the interface of a public API function, pend is
still supported but now *officially* useless: if pend is not NULL,
*pend is set to NULL.
**************************************************************************/
PyObject * PyObject *
PyFloat_FromString(PyObject *v, char **pend) PyFloat_FromString(PyObject *v)
{ {
const char *s, *last, *end; const char *s, *last, *end;
double x; double x;
...@@ -89,8 +73,6 @@ PyFloat_FromString(PyObject *v, char **pend) ...@@ -89,8 +73,6 @@ PyFloat_FromString(PyObject *v, char **pend)
#endif #endif
Py_ssize_t len; Py_ssize_t len;
if (pend)
*pend = NULL;
if (PyString_Check(v)) { if (PyString_Check(v)) {
s = PyString_AS_STRING(v); s = PyString_AS_STRING(v);
len = PyString_GET_SIZE(v); len = PyString_GET_SIZE(v);
...@@ -852,7 +834,7 @@ float_new(PyTypeObject *type, PyObject *args, PyObject *kwds) ...@@ -852,7 +834,7 @@ float_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
if (!PyArg_ParseTupleAndKeywords(args, kwds, "|O:float", kwlist, &x)) if (!PyArg_ParseTupleAndKeywords(args, kwds, "|O:float", kwlist, &x))
return NULL; return NULL;
if (PyString_Check(x)) if (PyString_Check(x))
return PyFloat_FromString(x, NULL); return PyFloat_FromString(x);
return PyNumber_Float(x); return PyNumber_Float(x);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment